From 898c7cc84633ea16277a6709c4248d624be22d7d Mon Sep 17 00:00:00 2001 From: Taylor Date: Thu, 12 Feb 2026 13:09:44 -0800 Subject: [PATCH 01/14] =?UTF-8?q?Phase=201:=20LoopInsights=20=E2=80=94=20A?= =?UTF-8?q?I-powered=20therapy=20settings=20analysis?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add LoopInsights feature: an AI-driven therapy settings advisor that analyzes glucose, insulin, and carb data to suggest adjustments to Carb Ratios, Insulin Sensitivity Factors, and Basal Rates. Core components: - Dashboard with therapy settings overview, pattern detection, and AI suggestions - Configurable AI provider (OpenAI, Anthropic, Gemini, Grok, self-hosted) - Data aggregation pipeline with test data fixtures from Tidepool - Suggestion lifecycle: pending → applied/dismissed with full history - AI personality settings (Supportive Coach, Clinical Expert, Dry Wit, Tough Love) - Developer mode with auto-apply and test data toggles - Secure API key storage via Keychain - Safety guardrails: max 20% change per adjustment, one setting at a time - Unit tests for models, data aggregation, and suggestion store 22 new files, 4 modified files across Views, View Models, Models, Services, Managers, Resources, and Tests. --- .../LoopInsights/LoopInsights_README.md | 125 + Loop.xcodeproj/project.pbxproj | 144 + Loop/Localizable.xcstrings | 574 +- .../LoopInsights_Coordinator.swift | 156 + .../LoopInsights/LoopInsights_Models.swift | 674 + .../LoopInsights_SuggestionRecord.swift | 90 + .../LoopInsights_FeatureFlags.swift | 128 + .../TestData/tidepool_carb_entries.json | 803 + .../TestData/tidepool_dose_entries.json | 45511 +++++++++ .../TestData/tidepool_glucose_samples.json | 79697 ++++++++++++++++ .../TestData/tidepool_therapy_settings.json | 44 + .../LoopInsights_AIAnalysis.swift | 263 + .../LoopInsights_AIServiceAdapter.swift | 253 + .../LoopInsights_DataAggregator.swift | 222 + .../LoopInsights_SecureStorage.swift | 79 + .../LoopInsights_SuggestionStore.swift | 127 + .../LoopInsights_TestDataProvider.swift | 289 + .../LoopInsights_DashboardViewModel.swift | 407 + .../LoopInsights_DashboardView.swift | 478 + .../LoopInsights_SettingsView.swift | 942 + .../LoopInsights_SuggestionDetailView.swift | 239 + .../LoopInsights_SuggestionHistoryView.swift | 183 + Loop/Views/SettingsView.swift | 18 + .../LoopInsights_DataAggregatorTests.swift | 166 + .../LoopInsights_ModelsTests.swift | 255 + .../LoopInsights_SuggestionStoreTests.swift | 168 + 26 files changed, 132032 insertions(+), 3 deletions(-) create mode 100644 Documentation/LoopInsights/LoopInsights_README.md create mode 100644 Loop/Managers/LoopInsights/LoopInsights_Coordinator.swift create mode 100644 Loop/Models/LoopInsights/LoopInsights_Models.swift create mode 100644 Loop/Models/LoopInsights/LoopInsights_SuggestionRecord.swift create mode 100644 Loop/Resources/LoopInsights/LoopInsights_FeatureFlags.swift create mode 100644 Loop/Resources/LoopInsights/TestData/tidepool_carb_entries.json create mode 100644 Loop/Resources/LoopInsights/TestData/tidepool_dose_entries.json create mode 100644 Loop/Resources/LoopInsights/TestData/tidepool_glucose_samples.json create mode 100644 Loop/Resources/LoopInsights/TestData/tidepool_therapy_settings.json create mode 100644 Loop/Services/LoopInsights/LoopInsights_AIAnalysis.swift create mode 100644 Loop/Services/LoopInsights/LoopInsights_AIServiceAdapter.swift create mode 100644 Loop/Services/LoopInsights/LoopInsights_DataAggregator.swift create mode 100644 Loop/Services/LoopInsights/LoopInsights_SecureStorage.swift create mode 100644 Loop/Services/LoopInsights/LoopInsights_SuggestionStore.swift create mode 100644 Loop/Services/LoopInsights/LoopInsights_TestDataProvider.swift create mode 100644 Loop/View Models/LoopInsights/LoopInsights_DashboardViewModel.swift create mode 100644 Loop/Views/LoopInsights/LoopInsights_DashboardView.swift create mode 100644 Loop/Views/LoopInsights/LoopInsights_SettingsView.swift create mode 100644 Loop/Views/LoopInsights/LoopInsights_SuggestionDetailView.swift create mode 100644 Loop/Views/LoopInsights/LoopInsights_SuggestionHistoryView.swift create mode 100644 LoopTests/LoopInsights/LoopInsights_DataAggregatorTests.swift create mode 100644 LoopTests/LoopInsights/LoopInsights_ModelsTests.swift create mode 100644 LoopTests/LoopInsights/LoopInsights_SuggestionStoreTests.swift diff --git a/Documentation/LoopInsights/LoopInsights_README.md b/Documentation/LoopInsights/LoopInsights_README.md new file mode 100644 index 0000000000..02bae41ea6 --- /dev/null +++ b/Documentation/LoopInsights/LoopInsights_README.md @@ -0,0 +1,125 @@ +# LoopInsights — AI-Powered Therapy Settings Analysis + +> **Concept & design by Taylor Patterson. Coded & tested by Claude Code in February 2026.** +> Copyright (c) 2025-2026 LoopKit Authors. All rights reserved. + +## Overview + +LoopInsights is an AI-driven therapy settings advisor for Loop. It analyzes glucose, insulin, and carbohydrate data to suggest adjustments to Carb Ratio (CR), Insulin Sensitivity Factor (ISF), and Basal Rate (BR) schedules that can improve Time in Range. + +## Architecture + +### Data Flow + +``` +Loop Core (read-only) + GlucoseStore ─┐ + DoseStore ────┤── DataAggregator → Aggregated Stats + CarbStore ────┤ │ + StoredSettings┘ ▼ + AIAnalysis → AI Provider (BYO) + │ + ▼ + Suggestion Cards → User Reviews + │ + ┌───────────┴────────────┐ + ▼ ▼ + SuggestionStore User Applies (3 modes) + (history log) +``` + +### File Organization + +``` +Loop/ +├── Models/LoopInsights/ +│ ├── LoopInsights_Models.swift # Core types, enums, data structures +│ └── LoopInsights_SuggestionRecord.swift # Persistent suggestion log entry +├── View Models/LoopInsights/ +│ └── LoopInsights_DashboardViewModel.swift # Main observable, orchestrates analysis +├── Views/LoopInsights/ +│ ├── LoopInsights_DashboardView.swift # Primary entry-point view +│ ├── LoopInsights_SettingsView.swift # Feature config (AI provider, apply mode) +│ ├── LoopInsights_SuggestionDetailView.swift # Single suggestion detail +│ └── LoopInsights_SuggestionHistoryView.swift # Scrollable suggestion log +├── Services/LoopInsights/ +│ ├── LoopInsights_DataAggregator.swift # Reads stores, computes TIR/stats +│ ├── LoopInsights_AIAnalysis.swift # Builds prompts, parses responses +│ ├── LoopInsights_AIServiceAdapter.swift # Provider-agnostic HTTP client +│ ├── LoopInsights_SecureStorage.swift # Keychain wrapper for API keys +│ └── LoopInsights_SuggestionStore.swift # UserDefaults persistence for history +├── Resources/LoopInsights/ +│ └── LoopInsights_FeatureFlags.swift # Runtime feature toggles +└── Managers/LoopInsights/ + └── LoopInsights_Coordinator.swift # Service orchestrator, data bridge + +LoopTests/LoopInsights/ +├── LoopInsights_ModelsTests.swift # Model serialization, validation +├── LoopInsights_SuggestionStoreTests.swift # Store persistence, status transitions +└── LoopInsights_DataAggregatorTests.swift # Aggregation logic with mock data +``` + +### Integration Touchpoints + +Only **1 existing Loop file** is modified: + +| File | Change | Lines | +|------|--------|-------| +| `SettingsView.swift` | NavigationLink to LoopInsights | ~8 | + +## Feature Flags + +All flags are runtime (`UserDefaults`), not compile-time: + +- `LoopInsights_FeatureFlags.isEnabled` — Master on/off (default: off) +- `LoopInsights_FeatureFlags.developerModeEnabled` — Hidden developer mode (default: off) +- `LoopInsights_FeatureFlags.applyMode` — How suggestions are applied (default: manual) +- `LoopInsights_FeatureFlags.analysisPeriod` — Default lookback (default: 14 days) +- `LoopInsights_FeatureFlags.aiConfiguration` — API-agnostic AI endpoint config (default: OpenAI) + +### Developer Mode + +Activated by long-pressing the LoopInsights header 5 times. Unlocks: +- Auto-Apply mode (suggestions applied automatically for high-confidence) +- Developer section in settings + +## Apply Modes + +| Mode | Behavior | +|------|----------| +| Manual (default) | Shows values, user navigates to Therapy Settings | +| One-Tap Apply | Writes via SettingsManager with disclaimer confirmation | +| Pre-Fill Editor | Opens editor with proposed value pre-filled | +| Auto-Apply (hidden) | Developer-only, applies high-confidence suggestions | + +## AI Provider Support + +BYO API key model supporting: +- **OpenAI** (GPT-4o default) +- **Anthropic** (Claude Sonnet 4.5 default) +- **Google** (Gemini 2.0 Flash default) + +API key is stored in iOS Keychain and shared with FoodFinder (same Keychain entry). + +## Guided Tuning Flow + +"One thing at a time" approach: +1. **Carb Ratio** — adjust first (most impact on post-meal variability) +2. **ISF** — adjust second (affects correction doses) +3. **Basal Rate** — adjust last (affects entire 24-hour profile) + +## Safety + +- Suggestions are capped at 20% change from current values +- Conservative approach: under-adjust > over-adjust +- All changes logged in suggestion history with before/after snapshots +- User always sees disclaimer when applying changes +- Feature flag defaults to OFF + +## Portability + +- All code in `LoopInsights/` subdirectories with `LoopInsights_` prefix +- No LoopKit modifications — Loop target only +- Runtime feature flags (not compile-time) +- Data access through existing LoopKit protocols +- Merge script viable: copy subdirectories + apply SettingsView patch + run pbxproj script diff --git a/Loop.xcodeproj/project.pbxproj b/Loop.xcodeproj/project.pbxproj index 4767ba3142..68a66b40c8 100644 --- a/Loop.xcodeproj/project.pbxproj +++ b/Loop.xcodeproj/project.pbxproj @@ -588,6 +588,24 @@ E9C58A7E24DB529A00487A17 /* dynamic_glucose_effect_partially_observed.json in Resources */ = {isa = PBXBuildFile; fileRef = E9C58A7924DB529A00487A17 /* dynamic_glucose_effect_partially_observed.json */; }; E9C58A7F24DB529A00487A17 /* counteraction_effect_falling_glucose.json in Resources */ = {isa = PBXBuildFile; fileRef = E9C58A7A24DB529A00487A17 /* counteraction_effect_falling_glucose.json */; }; E9C58A8024DB529A00487A17 /* insulin_effect.json in Resources */ = {isa = PBXBuildFile; fileRef = E9C58A7B24DB529A00487A17 /* insulin_effect.json */; }; + 7BA48343293E11001AB1CAD2 /* LoopInsights_Models.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B34C595DAA79BB6836BA60C /* LoopInsights_Models.swift */; }; + FC5E93D39794E71B0FA5C2FD /* LoopInsights_SuggestionRecord.swift in Sources */ = {isa = PBXBuildFile; fileRef = 20EB0E3DF88A1303EA105423 /* LoopInsights_SuggestionRecord.swift */; }; + AAE5993C1E1A822BFCD8D5A9 /* LoopInsights_DashboardViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 76F7734CE5F39086ACDF05E4 /* LoopInsights_DashboardViewModel.swift */; }; + 5B58FD84606E28D455284224 /* LoopInsights_DashboardView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2797FE7C4BD311CFD6130EE6 /* LoopInsights_DashboardView.swift */; }; + 6985216D28A1B2ADE17B40A0 /* LoopInsights_SettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 298B9D3C1F836418FB49F5A4 /* LoopInsights_SettingsView.swift */; }; + D062E93B8CA1AFF98CCB804D /* LoopInsights_SuggestionDetailView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6FF964C8C711F6D2BC5ABADF /* LoopInsights_SuggestionDetailView.swift */; }; + C55289DE70B96F1DDAD60001 /* LoopInsights_SuggestionHistoryView.swift in Sources */ = {isa = PBXBuildFile; fileRef = F30BE128F5152CCEFCE77A91 /* LoopInsights_SuggestionHistoryView.swift */; }; + 88B26E5EBD790388B811AA73 /* LoopInsights_DataAggregator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 38E1A1D32871794C3B3D3627 /* LoopInsights_DataAggregator.swift */; }; + 9B67835D9437872514B959ED /* LoopInsights_AIAnalysis.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0D9C7D82541170EF3C66E380 /* LoopInsights_AIAnalysis.swift */; }; + BB812EF3B85C5D20E4663846 /* LoopInsights_AIServiceAdapter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 330B944B4E606429228D8936 /* LoopInsights_AIServiceAdapter.swift */; }; + 26721D288EAABC6270DB048C /* LoopInsights_TestDataProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = E8F875E984C8C1A149E4242E /* LoopInsights_TestDataProvider.swift */; }; + 014EFF54B2555BF06508F782 /* LoopInsights_SecureStorage.swift in Sources */ = {isa = PBXBuildFile; fileRef = EF3390DD6BCC87E617CF9C4E /* LoopInsights_SecureStorage.swift */; }; + 9C14D255A2CA94966BAD7667 /* LoopInsights_SuggestionStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 186598BBCF20AF6BFDA7C65E /* LoopInsights_SuggestionStore.swift */; }; + 17EAECD5386B86C1F7968394 /* LoopInsights_FeatureFlags.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6339ED478F8AEB8DBDDD9324 /* LoopInsights_FeatureFlags.swift */; }; + 6C78970231AAF9CC3E477BCB /* LoopInsights_Coordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = DD1A8C2568AD3C055D53CABA /* LoopInsights_Coordinator.swift */; }; + 51E08775179BF0C6D3C4468A /* LoopInsights_ModelsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9807F50B2A84D11791A7C992 /* LoopInsights_ModelsTests.swift */; }; + 84F08AFCA333AFD961F8B037 /* LoopInsights_SuggestionStoreTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8E9EE7EF28AC643A5A61BA90 /* LoopInsights_SuggestionStoreTests.swift */; }; + 11D448D84F8B6FDE43A9DC77 /* LoopInsights_DataAggregatorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1DF3371B113CDE1971B80A91 /* LoopInsights_DataAggregatorTests.swift */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -1409,6 +1427,24 @@ F5E0BDD827E1D71E0033557E /* he */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = he; path = he.lproj/Main.strings; sourceTree = ""; }; F5E0BDDA27E1D71F0033557E /* he */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = he; path = he.lproj/Localizable.strings; sourceTree = ""; }; F5E0BDE327E1D7230033557E /* he */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = he; path = he.lproj/Localizable.strings; sourceTree = ""; }; + 1B34C595DAA79BB6836BA60C /* LoopInsights_Models.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoopInsights_Models.swift; sourceTree = ""; }; + 20EB0E3DF88A1303EA105423 /* LoopInsights_SuggestionRecord.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoopInsights_SuggestionRecord.swift; sourceTree = ""; }; + 76F7734CE5F39086ACDF05E4 /* LoopInsights_DashboardViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoopInsights_DashboardViewModel.swift; sourceTree = ""; }; + 2797FE7C4BD311CFD6130EE6 /* LoopInsights_DashboardView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoopInsights_DashboardView.swift; sourceTree = ""; }; + 298B9D3C1F836418FB49F5A4 /* LoopInsights_SettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoopInsights_SettingsView.swift; sourceTree = ""; }; + 6FF964C8C711F6D2BC5ABADF /* LoopInsights_SuggestionDetailView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoopInsights_SuggestionDetailView.swift; sourceTree = ""; }; + F30BE128F5152CCEFCE77A91 /* LoopInsights_SuggestionHistoryView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoopInsights_SuggestionHistoryView.swift; sourceTree = ""; }; + 38E1A1D32871794C3B3D3627 /* LoopInsights_DataAggregator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoopInsights_DataAggregator.swift; sourceTree = ""; }; + 0D9C7D82541170EF3C66E380 /* LoopInsights_AIAnalysis.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoopInsights_AIAnalysis.swift; sourceTree = ""; }; + 330B944B4E606429228D8936 /* LoopInsights_AIServiceAdapter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoopInsights_AIServiceAdapter.swift; sourceTree = ""; }; + E8F875E984C8C1A149E4242E /* LoopInsights_TestDataProvider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoopInsights_TestDataProvider.swift; sourceTree = ""; }; + EF3390DD6BCC87E617CF9C4E /* LoopInsights_SecureStorage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoopInsights_SecureStorage.swift; sourceTree = ""; }; + 186598BBCF20AF6BFDA7C65E /* LoopInsights_SuggestionStore.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoopInsights_SuggestionStore.swift; sourceTree = ""; }; + 6339ED478F8AEB8DBDDD9324 /* LoopInsights_FeatureFlags.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoopInsights_FeatureFlags.swift; sourceTree = ""; }; + DD1A8C2568AD3C055D53CABA /* LoopInsights_Coordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoopInsights_Coordinator.swift; sourceTree = ""; }; + 9807F50B2A84D11791A7C992 /* LoopInsights_ModelsTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoopInsights_ModelsTests.swift; sourceTree = ""; }; + 8E9EE7EF28AC643A5A61BA90 /* LoopInsights_SuggestionStoreTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoopInsights_SuggestionStoreTests.swift; sourceTree = ""; }; + 1DF3371B113CDE1971B80A91 /* LoopInsights_DataAggregatorTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoopInsights_DataAggregatorTests.swift; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -1675,6 +1711,7 @@ C1E3862428247B7100F561A4 /* StoredLoopNotRunningNotification.swift */, 4328E0311CFC068900E199AA /* WatchContext+LoopKit.swift */, A987CD4824A58A0100439ADC /* ZipArchive.swift */, + 45118D66CCF482E662F7DAC5 /* LoopInsights */, ); path = Models; sourceTree = ""; @@ -1741,6 +1778,8 @@ 43F5C2CE1B92A2A0003EB13D /* View Controllers */, 43F5C2CF1B92A2ED003EB13D /* Views */, 897A5A9724C22DCE00C4E71D /* View Models */, + 30A7BA28AD6B99C005058D2B /* Services */, + 64E225E5D16AAC4F29EDC1FA /* Resources */, ); path = Loop; sourceTree = ""; @@ -1994,6 +2033,7 @@ C1AF062229426300002C1B19 /* ManualGlucoseEntryRow.swift */, DDC389FD2A2C4C830066E2E8 /* GlucoseBasedApplicationFactorSelectionView.swift */, DD3DBD282A33AFE9000F8B5B /* IntegralRetrospectiveCorrectionSelectionView.swift */, + 3EE1B928CEC88845E1F639EA /* LoopInsights */, ); path = Views; sourceTree = ""; @@ -2038,6 +2078,7 @@ A96DAC2B2838F31200D94E38 /* SharedLogging.swift */, 7E69CFFB2A16A77E00203CBD /* ResetLoopManager.swift */, 84AA81E42A4A3981000B658B /* DeeplinkManager.swift */, + 0CCABD3F947EB320F1E71E1A /* LoopInsights */, ); path = Managers; sourceTree = ""; @@ -2056,6 +2097,7 @@ A9DAE7CF2332D77F006AE942 /* LoopTests.swift */, 8968B113240C55F10074BB48 /* LoopSettingsTests.swift */, E93E86AC24DDE02C00FF40C8 /* Mock Stores */, + 8B8260200F8E2C87C406E665 /* LoopInsights */, ); path = LoopTests; sourceTree = ""; @@ -2350,6 +2392,7 @@ C174233B259BEB0F00399C9D /* ManualEntryDoseViewModel.swift */, 1DB619AB270BAD3D006C9D07 /* VersionUpdateViewModel.swift */, 3ED319952EB65A5C00820BCF /* LiveActivityManagementViewModel.swift */, + 28AF6BC126CFBFAA4E6A2F5C /* LoopInsights */, ); path = "View Models"; sourceTree = ""; @@ -2660,6 +2703,89 @@ path = Fixtures; sourceTree = ""; }; + 45118D66CCF482E662F7DAC5 /* LoopInsights */ = { + isa = PBXGroup; + children = ( + 1B34C595DAA79BB6836BA60C /* LoopInsights_Models.swift */, + 20EB0E3DF88A1303EA105423 /* LoopInsights_SuggestionRecord.swift */, + ); + path = LoopInsights; + sourceTree = ""; + }; + 28AF6BC126CFBFAA4E6A2F5C /* LoopInsights */ = { + isa = PBXGroup; + children = ( + 76F7734CE5F39086ACDF05E4 /* LoopInsights_DashboardViewModel.swift */, + ); + path = LoopInsights; + sourceTree = ""; + }; + 3EE1B928CEC88845E1F639EA /* LoopInsights */ = { + isa = PBXGroup; + children = ( + 2797FE7C4BD311CFD6130EE6 /* LoopInsights_DashboardView.swift */, + 298B9D3C1F836418FB49F5A4 /* LoopInsights_SettingsView.swift */, + 6FF964C8C711F6D2BC5ABADF /* LoopInsights_SuggestionDetailView.swift */, + F30BE128F5152CCEFCE77A91 /* LoopInsights_SuggestionHistoryView.swift */, + ); + path = LoopInsights; + sourceTree = ""; + }; + 30A7BA28AD6B99C005058D2B /* Services */ = { + isa = PBXGroup; + children = ( + E2B183EAECD6393B2AE7F724 /* LoopInsights */, + ); + path = Services; + sourceTree = ""; + }; + E2B183EAECD6393B2AE7F724 /* LoopInsights */ = { + isa = PBXGroup; + children = ( + 38E1A1D32871794C3B3D3627 /* LoopInsights_DataAggregator.swift */, + 0D9C7D82541170EF3C66E380 /* LoopInsights_AIAnalysis.swift */, + 330B944B4E606429228D8936 /* LoopInsights_AIServiceAdapter.swift */, + E8F875E984C8C1A149E4242E /* LoopInsights_TestDataProvider.swift */, + EF3390DD6BCC87E617CF9C4E /* LoopInsights_SecureStorage.swift */, + 186598BBCF20AF6BFDA7C65E /* LoopInsights_SuggestionStore.swift */, + ); + path = LoopInsights; + sourceTree = ""; + }; + 64E225E5D16AAC4F29EDC1FA /* Resources */ = { + isa = PBXGroup; + children = ( + D039CC9018413633A20943E1 /* LoopInsights */, + ); + path = Resources; + sourceTree = ""; + }; + D039CC9018413633A20943E1 /* LoopInsights */ = { + isa = PBXGroup; + children = ( + 6339ED478F8AEB8DBDDD9324 /* LoopInsights_FeatureFlags.swift */, + ); + path = LoopInsights; + sourceTree = ""; + }; + 0CCABD3F947EB320F1E71E1A /* LoopInsights */ = { + isa = PBXGroup; + children = ( + DD1A8C2568AD3C055D53CABA /* LoopInsights_Coordinator.swift */, + ); + path = LoopInsights; + sourceTree = ""; + }; + 8B8260200F8E2C87C406E665 /* LoopInsights */ = { + isa = PBXGroup; + children = ( + 9807F50B2A84D11791A7C992 /* LoopInsights_ModelsTests.swift */, + 8E9EE7EF28AC643A5A61BA90 /* LoopInsights_SuggestionStoreTests.swift */, + 1DF3371B113CDE1971B80A91 /* LoopInsights_DataAggregatorTests.swift */, + ); + path = LoopInsights; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXHeadersBuildPhase section */ @@ -3576,6 +3702,21 @@ 7E69CFFC2A16A77E00203CBD /* ResetLoopManager.swift in Sources */, B40D07C7251A89D500C1C6D7 /* GlucoseDisplay.swift in Sources */, 43C2FAE11EB656A500364AFF /* GlucoseEffectVelocity.swift in Sources */, + 7BA48343293E11001AB1CAD2 /* LoopInsights_Models.swift in Sources */, + FC5E93D39794E71B0FA5C2FD /* LoopInsights_SuggestionRecord.swift in Sources */, + AAE5993C1E1A822BFCD8D5A9 /* LoopInsights_DashboardViewModel.swift in Sources */, + 5B58FD84606E28D455284224 /* LoopInsights_DashboardView.swift in Sources */, + 6985216D28A1B2ADE17B40A0 /* LoopInsights_SettingsView.swift in Sources */, + D062E93B8CA1AFF98CCB804D /* LoopInsights_SuggestionDetailView.swift in Sources */, + C55289DE70B96F1DDAD60001 /* LoopInsights_SuggestionHistoryView.swift in Sources */, + 88B26E5EBD790388B811AA73 /* LoopInsights_DataAggregator.swift in Sources */, + 9B67835D9437872514B959ED /* LoopInsights_AIAnalysis.swift in Sources */, + BB812EF3B85C5D20E4663846 /* LoopInsights_AIServiceAdapter.swift in Sources */, + 26721D288EAABC6270DB048C /* LoopInsights_TestDataProvider.swift in Sources */, + 014EFF54B2555BF06508F782 /* LoopInsights_SecureStorage.swift in Sources */, + 9C14D255A2CA94966BAD7667 /* LoopInsights_SuggestionStore.swift in Sources */, + 17EAECD5386B86C1F7968394 /* LoopInsights_FeatureFlags.swift in Sources */, + 6C78970231AAF9CC3E477BCB /* LoopInsights_Coordinator.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -3758,6 +3899,9 @@ C1900900252271BB00721625 /* SimpleBolusCalculatorTests.swift in Sources */, A9C1719725366F780053BCBD /* WatchHistoricalGlucoseTest.swift in Sources */, E93E86B224DDE21D00FF40C8 /* MockCarbStore.swift in Sources */, + 51E08775179BF0C6D3C4468A /* LoopInsights_ModelsTests.swift in Sources */, + 84F08AFCA333AFD961F8B037 /* LoopInsights_SuggestionStoreTests.swift in Sources */, + 11D448D84F8B6FDE43A9DC77 /* LoopInsights_DataAggregatorTests.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/Loop/Localizable.xcstrings b/Loop/Localizable.xcstrings index fb33d3a80f..b3435231a2 100644 --- a/Loop/Localizable.xcstrings +++ b/Loop/Localizable.xcstrings @@ -587,6 +587,44 @@ } } }, + "(%@%%)" : { + "comment" : "A small label that shows the percentage change in a time block's value. The argument is the string “%+.0f”.", + "isCommentAutoGenerated" : true + }, + "%.1f%% time above range in %@" : { + "comment" : "LoopInsights pattern detail: consistent highs\nLoopInsights pattern detail: consistent highs moderate", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "%1$.1f%% time above range in %2$@" + } + } + } + }, + "%.1f%% time below range in %@" : { + "comment" : "LoopInsights pattern detail: frequent lows\nLoopInsights pattern detail: frequent lows moderate", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "%1$.1f%% time below range in %2$@" + } + } + } + }, + "%@ — %@" : { + "comment" : "A text displaying the date range of the loaded fixtures.", + "isCommentAutoGenerated" : true, + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "%1$@ — %2$@" + } + } + } + }, "%@ %@" : { "comment" : "The format for an active custom preset. (1: preset symbol)(2: preset name)", "localizations" : { @@ -718,6 +756,18 @@ } } }, + "%@ → %@" : { + "comment" : "A text field showing the current and proposed values for a specific time block, along with a percentage change indicator. The first argument is the string “%.1f”. The second argument is the string “%.1f”. The third argument is the change percentage, formatted to the nearest whole number.", + "isCommentAutoGenerated" : true, + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "%1$@ → %2$@" + } + } + } + }, "%@ absorbed" : { "comment" : "Formats absorbed carb value", "localizations" : { @@ -3136,6 +3186,16 @@ } } }, + "%d suggestions" : { + "comment" : "LoopInsights suggestion count" + }, + "%d time blocks" : { + "comment" : "LoopInsights time block count" + }, + "%lld" : { + "comment" : "The text that appears next to the \"Suggestion History\" label in the LoopInsights settings view, showing the number of suggestion records stored.", + "isCommentAutoGenerated" : true + }, "⚠️" : { "localizations" : { "da" : { @@ -3194,6 +3254,15 @@ } } }, + "3 Days" : { + "comment" : "LoopInsights analysis period: 3 days" + }, + "7 Days" : { + "comment" : "LoopInsights analysis period: 7 days" + }, + "14 Days" : { + "comment" : "LoopInsights analysis period: 14 days" + }, "15 min glucose regression coefficient (b₁), continued with decay over 30 min" : { "comment" : "Description of the prediction input effect for glucose momentum", "localizations" : { @@ -3319,6 +3388,9 @@ } } }, + "30 Days" : { + "comment" : "LoopInsights analysis period: 30 days" + }, "30 min comparison of glucose prediction vs actual, continued with decay over 60 min" : { "comment" : "Description of the prediction input effect for retrospective correction", "localizations" : { @@ -3438,6 +3510,9 @@ } } }, + "90 Days" : { + "comment" : "LoopInsights analysis period: 90 days" + }, "A few seconds remaining" : { "comment" : "Estimated remaining duration with a few seconds", "localizations" : { @@ -4373,6 +4448,9 @@ } } }, + "Active" : { + "comment" : "LoopInsights developer mode active" + }, "Active Carbohydrates" : { "comment" : "The title of the Carbs On-Board graph", "localizations" : { @@ -5693,6 +5771,17 @@ } } }, + "Adjust %@ across %d time blocks" : { + "comment" : "LoopInsights: multi-block suggestion summary", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Adjust %1$@ across %2$d time blocks" + } + } + } + }, "Adjusted for" : { "localizations" : { "da" : { @@ -5775,6 +5864,30 @@ } } }, + "Advanced API Settings" : { + "comment" : "LoopInsights advanced settings toggle" + }, + "AI Assessment" : { + "comment" : "LoopInsights assessment header" + }, + "AI CONFIGURATION" : { + "comment" : "LoopInsights AI config header" + }, + "AI PERSONALITY" : { + "comment" : "LoopInsights AI personality header" + }, + "AI Provider Error: %@" : { + "comment" : "LoopInsights error: AI provider" + }, + "AI Reasoning" : { + "comment" : "LoopInsights reasoning header" + }, + "AI therapy suggestions are advisory only. You are responsible for reviewing all changes. Consult your healthcare provider for significant therapy adjustments." : { + "comment" : "LoopInsights medical disclaimer" + }, + "AI-powered therapy settings analysis" : { + "comment" : "LoopInsights settings descriptive text" + }, "Alert Management" : { "comment" : "Alert Permissions button text\nTitle of alert management screen", "localizations" : { @@ -6379,6 +6492,9 @@ } } }, + "All past AI suggestions, including applied, dismissed, and expired records." : { + "comment" : "LoopInsights history description" + }, "Amount Consumed" : { "comment" : "Label for carb quantity entry row on carb entry screen", "localizations" : { @@ -6973,6 +7089,18 @@ } } }, + "ANALYSIS OPTIONS" : { + "comment" : "LoopInsights analysis options header" + }, + "Analysis Period" : { + "comment" : "LoopInsights period picker label" + }, + "Analyze %@" : { + "comment" : "LoopInsights analyze button" + }, + "Analyzing..." : { + "comment" : "LoopInsights analyzing" + }, "API Key" : { "comment" : "The title of the amplitude API key credential", "extractionState" : "manual", @@ -7249,6 +7377,9 @@ } } }, + "API Version" : { + "comment" : "LoopInsights API version label" + }, "App Profile" : { "comment" : "Settings app profile section", "localizations" : { @@ -7385,6 +7516,21 @@ } } }, + "Applied" : { + "comment" : "LoopInsights suggestion status: user applied" + }, + "Applied via" : { + "comment" : "LoopInsights applied via label" + }, + "Apply" : { + "comment" : "LoopInsights apply\nLoopInsights apply button" + }, + "Apply Suggestion" : { + "comment" : "LoopInsights apply confirmation title\nLoopInsights apply suggestion button" + }, + "Apply suggestions with a single tap. You'll see a confirmation with a responsibility disclaimer." : { + "comment" : "LoopInsights apply mode description: one-tap" + }, "Are you sure you want to delete all history entries?" : { "comment" : "Action sheet confirmation message for pump history deletion", "localizations" : { @@ -8419,6 +8565,49 @@ } } }, + "Auto-Applied" : { + "comment" : "LoopInsights suggestion status: automatically applied" + }, + "Auto-Apply" : { + "comment" : "LoopInsights apply mode: automatically apply suggestions (developer only)" + }, + "Auto-Apply is enabled. High-confidence suggestions will be applied automatically." : { + "comment" : "LoopInsights auto-apply warning" + }, + "Auto-detected:" : { + "comment" : "LoopInsights auto-detected format label" + }, + "Average Glucose" : { + "comment" : "LoopInsights avg glucose label" + }, + "Average glucose %.0f mg/dL with %.1f%% below range" : { + "comment" : "LoopInsights pattern detail: consistent lows", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Average glucose %1$.0f mg/dL with %2$.1f%% below range" + } + } + } + }, + "Average overnight glucose %.0f mg/dL in %@" : { + "comment" : "LoopInsights pattern detail: overnight highs\nLoopInsights pattern detail: overnight highs moderate\nLoopInsights pattern detail: overnight lows\nLoopInsights pattern detail: overnight lows moderate", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Average overnight glucose %1$.0f mg/dL in %2$@" + } + } + } + }, + "Average rise of %.0f mg/dL between 3 AM–7 AM" : { + "comment" : "LoopInsights pattern detail: dawn phenomenon\nLoopInsights pattern detail: dawn phenomenon moderate" + }, + "Basal Rate" : { + "comment" : "LoopInsights setting type: Basal Rate" + }, "Basal Rate Schedule" : { "comment" : "Details for configuration error when basal rate schedule is missing", "localizations" : { @@ -8682,6 +8871,9 @@ } } }, + "Base URL" : { + "comment" : "LoopInsights base URL label" + }, "Based on your predicted glucose, no bolus is recommended." : { "comment" : "Caption for bolus screen notice when no bolus is recommended for the predicted glucose", "localizations" : { @@ -9895,7 +10087,7 @@ } }, "Cancel" : { - "comment" : "Button label for cancel\nButton text to cancel\nCancel button for reset loop alert\nCancel export button title\nThe title of the cancel action in an action sheet", + "comment" : "Button label for cancel\nButton text to cancel\nCancel button\nCancel button for reset loop alert\nCancel export button title\nThe title of the cancel action in an action sheet", "localizations" : { "ar" : { "stringUnit" : { @@ -10423,6 +10615,9 @@ } } }, + "Carb Ratio" : { + "comment" : "LoopInsights setting type: Carb Ratio" + }, "Carb Ratio Schedule" : { "comment" : "Details for configuration error when carb ratio schedule is missing", "localizations" : { @@ -12003,6 +12198,18 @@ } } }, + "Clear All" : { + "comment" : "LoopInsights clear all button" + }, + "Clear History" : { + "comment" : "LoopInsights clear history alert title" + }, + "Clear Suggestion History" : { + "comment" : "LoopInsights clear history button" + }, + "Clinical Expert" : { + "comment" : "LoopInsights personality: clinical expert" + }, "Close" : { "comment" : "Button title to close view\nThe button label of the action used to dismiss the unsafe notification permission alert", "localizations" : { @@ -12466,6 +12673,9 @@ } } }, + "Coefficient of variation %.1f%% (target <36%%)" : { + "comment" : "LoopInsights pattern detail: high variability\nLoopInsights pattern detail: high variability moderate" + }, "com.loudnate.InsulinKit.IOBDateLabel" : { "comment" : "The format string describing the date of an IOB value. The first format argument is the localized date.", "extractionState" : "extracted_with_value", @@ -12909,6 +13119,9 @@ } } }, + "Confidence Level:" : { + "comment" : "LoopInsights confidence legend label" + }, "Configuration" : { "comment" : "The title of the Configuration section in settings", "localizations" : { @@ -13166,6 +13379,18 @@ "comment" : "A link that takes the user to a view where they can configure the display of the live activity screen on their lock screen and in CarPlay.", "isCommentAutoGenerated" : true }, + "Configure your AI API key in LoopInsights Settings to begin analysis." : { + "comment" : "LoopInsights no API key message" + }, + "Connected" : { + "comment" : "LoopInsights connection success" + }, + "Consistent Highs" : { + "comment" : "LoopInsights pattern: consistent highs" + }, + "Consistent Lows" : { + "comment" : "LoopInsights pattern: consistent lows" + }, "Continue" : { "comment" : "Button label for continue\nDefault alert dismissal", "localizations" : { @@ -13921,6 +14146,9 @@ } } }, + "Current" : { + "comment" : "LoopInsights current value label" + }, "Current Glucose" : { "comment" : "Label for glucose entry row on simple bolus screen", "localizations" : { @@ -14367,6 +14595,9 @@ } } }, + "CV" : { + "comment" : "LoopInsights CV label" + }, "Date" : { "comment" : "Date picker label", "localizations" : { @@ -14492,6 +14723,9 @@ } } }, + "Dawn Phenomenon" : { + "comment" : "LoopInsights pattern: dawn phenomenon" + }, "dB" : { "comment" : "The short unit display string for decibles", "localizations" : { @@ -14611,6 +14845,9 @@ } } }, + "Decrease" : { + "comment" : "LoopInsights: decrease direction" + }, "Delete" : { "localizations" : { "ar" : { @@ -15826,6 +16063,18 @@ } } }, + "Detected Patterns" : { + "comment" : "LoopInsights detected patterns header" + }, + "DEVELOPER" : { + "comment" : "LoopInsights developer section header" + }, + "Developer Mode" : { + "comment" : "LoopInsights developer mode alert title\nLoopInsights developer mode label" + }, + "Developer mode has been enabled. You now have access to test data fixtures and auto-apply mode." : { + "comment" : "LoopInsights developer mode unlocked message" + }, "Diabetes Treatment" : { "comment" : "Descriptive text for Therapy Settings", "localizations" : { @@ -15986,6 +16235,12 @@ } } }, + "Direct and no-nonsense. Holds you accountable and tells it like it is." : { + "comment" : "LoopInsights personality desc: tough love" + }, + "Disable Developer Mode" : { + "comment" : "LoopInsights disable developer button" + }, "Disables" : { "comment" : "The action hint of the workout mode toggle button when enabled", "localizations" : { @@ -16106,7 +16361,7 @@ } }, "Dismiss" : { - "comment" : "Default alert dismissal\nThe button label of the action used to dismiss an error alert", + "comment" : "Default alert dismissal\nLoopInsights dismiss\nThe button label of the action used to dismiss an error alert", "localizations" : { "ar" : { "stringUnit" : { @@ -16224,6 +16479,15 @@ } } }, + "Dismiss All" : { + "comment" : "LoopInsights dismiss all button" + }, + "Dismiss Suggestion" : { + "comment" : "LoopInsights dismiss suggestion button" + }, + "Dismissed" : { + "comment" : "LoopInsights suggestion status: user dismissed" + }, "Display colors for glucose" : { "comment" : "Title for glucose coloring" }, @@ -16237,7 +16501,12 @@ "Display up to 4 items. Display label is in parentheses." : { "comment" : "Indicates the maximum number of items that can be displayed and how the label for each item is shortened." }, + "Documents path: %@" : { + "comment" : "A text label displaying the path to the directory containing the test data files.", + "isCommentAutoGenerated" : true + }, "Done" : { + "comment" : "Done button", "localizations" : { "cs" : { "stringUnit" : { @@ -16515,6 +16784,9 @@ } } }, + "Dry Wit" : { + "comment" : "LoopInsights personality: dry wit" + }, "Duration exceeds: %1$.1f hours" : { "comment" : "Override error description: duration exceed max (1: max duration in hours).", "localizations" : { @@ -16586,6 +16858,24 @@ } } }, + "e.g. /chat/completions" : { + "comment" : "A placeholder text for the endpoint path in the LoopInsights settings view.", + "isCommentAutoGenerated" : true + }, + "e.g. 2024-06-01 (Azure only)" : { + "comment" : "A hint explaining that the API version for Azure is \"e.g. 2024-06-01\".", + "isCommentAutoGenerated" : true + }, + "e.g. gpt-4o, claude-sonnet-4-5-20250514, gemini-2.0-flash" : { + + }, + "e.g. https://api.openai.com/v1" : { + + }, + "e.g. org-... (OpenAI, Azure)" : { + "comment" : "A placeholder text for the user to enter their OpenAI or Azure organization ID.", + "isCommentAutoGenerated" : true + }, "Enable\nBluetooth" : { "comment" : "Message to the user to enable bluetooth", "localizations" : { @@ -16681,6 +16971,9 @@ } } }, + "Enable AI-powered therapy settings analysis and suggestions. When disabled, the feature is hidden but settings are preserved." : { + "comment" : "LoopInsights feature toggle description" + }, "Enable Glucose Based Partial Application" : { "comment" : "Title for Glucose Based Partial Application toggle", "localizations" : { @@ -16763,6 +17056,9 @@ } } }, + "Enable LoopInsights" : { + "comment" : "LoopInsights enable toggle" + }, "Enabled" : { "comment" : "Title for enable live activity toggle", "localizations" : { @@ -16899,6 +17195,12 @@ } } }, + "Encouraging and positive. Celebrates your wins and gently explains areas for improvement." : { + "comment" : "LoopInsights personality desc: supportive coach" + }, + "Endpoint Path" : { + "comment" : "LoopInsights endpoint path label" + }, "Enter a blood glucose from a meter for a recommended bolus amount." : { "comment" : "Caption for bolus screen notice when glucose data is missing or stale", "localizations" : { @@ -17399,6 +17701,12 @@ } } }, + "Enter your API key" : { + "comment" : "LoopInsights API key placeholder" + }, + "Enter your preferred AI API connection details. Any provider that supports chat completions will work." : { + "comment" : "LoopInsights AI config description" + }, "Error Canceling Bolus" : { "comment" : "The alert title for an error while canceling a bolus", "localizations" : { @@ -18404,6 +18712,12 @@ } } }, + "Failed to apply settings: %@" : { + "comment" : "LoopInsights error: settings write" + }, + "Failed to parse AI response: %@" : { + "comment" : "LoopInsights error: parse" + }, "Failed to Resume Insulin Delivery" : { "comment" : "The alert title for a resume error", "localizations" : { @@ -18719,6 +19033,9 @@ } } }, + "Filter" : { + "comment" : "LoopInsights filter picker" + }, "Fingerstick Glucose" : { "comment" : "Label for manual glucose entry row on bolus screen", "localizations" : { @@ -18891,6 +19208,9 @@ } } }, + "Fixtures loaded" : { + "comment" : "LoopInsights fixtures loaded" + }, "Food Type" : { "comment" : "Label for food type entry on add favorite food screen", "localizations" : { @@ -19335,6 +19655,13 @@ } } }, + "Format" : { + "comment" : "A label for a segmented control in the LoopInsights settings view.", + "isCommentAutoGenerated" : true + }, + "Frequent Lows" : { + "comment" : "LoopInsights pattern: frequent lows" + }, "Frequently asked questions about alerts" : { "comment" : "Label for link to see frequently asked questions", "localizations" : { @@ -19388,6 +19715,9 @@ } } }, + "Full endpoint URL:" : { + "comment" : "LoopInsights endpoint preview label" + }, "g" : { "comment" : "The short unit display string for grams", "localizations" : { @@ -19513,6 +19843,12 @@ } } }, + "g/U" : { + "comment" : "LoopInsights unit: grams per unit of insulin" + }, + "Get an API key from a provider:" : { + "comment" : "LoopInsights API key links header" + }, "Get help with Alert Permissions" : { "comment" : "Get help with Alert Permissions support button text", "localizations" : { @@ -20415,6 +20751,9 @@ } } }, + "GMI (est. A1C)" : { + "comment" : "LoopInsights GMI label" + }, "HARDWARE SOUNDS" : { "localizations" : { "da" : { @@ -20467,6 +20806,9 @@ } } }, + "High" : { + "comment" : "LoopInsights confidence: high\nLoopInsights legend: high" + }, "High Glucose" : { "localizations" : { "da" : { @@ -20519,6 +20861,9 @@ } } }, + "High Variability" : { + "comment" : "LoopInsights pattern: high variability" + }, "How can I silence non-Critical Alerts?" : { "localizations" : { "da" : { @@ -20936,6 +21281,9 @@ } } }, + "Increase" : { + "comment" : "LoopInsights: increase direction" + }, "Indefinitely" : { "comment" : "The title of a target alert action specifying an indefinitely long workout targets duration", "extractionState" : "manual", @@ -21090,6 +21438,9 @@ } } }, + "Insufficient data for analysis: %@" : { + "comment" : "LoopInsights error: insufficient data" + }, "Insulin" : { "comment" : "Title of the prediction input effect for insulin", "localizations" : { @@ -21996,6 +22347,9 @@ } } }, + "Insulin Sensitivity" : { + "comment" : "LoopInsights setting type: Insulin Sensitivity Factor" + }, "Insulin Sensitivity Schedule" : { "comment" : "Details for configuration error when insulin sensitivity schedule is missing", "localizations" : { @@ -23185,6 +23539,9 @@ } } }, + "Keychain Error: %@" : { + "comment" : "LoopInsights error: keychain" + }, "Large Meal Entered" : { "comment" : "Title of the warning shown when a large meal was entered", "localizations" : { @@ -23268,6 +23625,9 @@ } } }, + "Last analysis: %@" : { + "comment" : "LoopInsights last analysis date" + }, "Launches CGM app" : { "comment" : "Glucose HUD accessibility hint", "extractionState" : "manual", @@ -23483,6 +23843,9 @@ } } }, + "Leave blank to use the default for your chosen format." : { + "comment" : "LoopInsights endpoint path hint" + }, "Less than a minute remaining" : { "comment" : "Estimated remaining duration with less than a minute", "localizations" : { @@ -23589,6 +23952,15 @@ } } }, + "Load JSON fixtures from Documents/LoopInsights/ instead of real Loop data. Use pull_tidepool_data.py to generate fixtures from your Tidepool account." : { + "comment" : "LoopInsights test data description" + }, + "Loading test data..." : { + "comment" : "LoopInsights loading test data" + }, + "Loading therapy settings..." : { + "comment" : "LoopInsights loading settings" + }, "Loading..." : { "comment" : "The loading message for the diagnostic report screen", "localizations" : { @@ -24010,6 +24382,9 @@ } } }, + "Lookback Period" : { + "comment" : "LoopInsights period picker" + }, "Loop Crashed" : { "comment" : "Title for crash recovery alert", "localizations" : { @@ -24787,6 +25162,22 @@ } } }, + "LoopInsights" : { + "comment" : "LoopInsights dashboard title\nLoopInsights header\nLoopInsights settings button" + }, + "LOOPINSIGHTS" : { + "comment" : "The uppercase name of the feature.", + "isCommentAutoGenerated" : true + }, + "LoopInsights analyzes your glucose, insulin, and carb data to suggest adjustments to your Basal Rates, Carb Ratios, and Insulin Sensitivity factors. Tap one of the settings, choose a lookback period, and tap Analyze to get AI-generated suggestions. All changes require your review and approval." : { + "comment" : "LoopInsights subtitle" + }, + "LoopInsights Settings" : { + "comment" : "LoopInsights settings title" + }, + "Low" : { + "comment" : "LoopInsights confidence: low\nLoopInsights legend: low" + }, "Low Glucose" : { "comment" : "Title for bolus screen warning when glucose is below glucose warning limit.\nTitle for bolus screen warning when glucose is below suspend threshold, but a bolus is recommended", "localizations" : { @@ -25006,6 +25397,9 @@ } } }, + "Manual" : { + "comment" : "LoopInsights apply mode: navigate to settings manually" + }, "Manual Dose: %1$@ %2$@" : { "comment" : "Description of a bolus dose entry (1: value (? if no value) in bold, 2: unit)", "localizations" : { @@ -25463,6 +25857,12 @@ } } }, + "MEDICAL DISCLAIMER" : { + "comment" : "LoopInsights medical disclaimer header" + }, + "Medium" : { + "comment" : "LoopInsights confidence: medium\nLoopInsights legend: medium" + }, "mg/dL" : { "comment" : "The short unit display string for milligrams of glucose per decilter", "localizations" : { @@ -25588,6 +25988,9 @@ } } }, + "mg/dL per U" : { + "comment" : "LoopInsights unit: mg/dL per unit of insulin" + }, "Missed Meal Notifications" : { "comment" : "Title for missed meal notifications toggle", "localizations" : { @@ -26003,6 +26406,9 @@ } } }, + "Model" : { + "comment" : "LoopInsights model label" + }, "Momentum effects" : { "comment" : "Details for missing data error when momentum effects are missing", "localizations" : { @@ -26235,6 +26641,9 @@ } } }, + "Most providers use OpenAI Compatible. Only change this if auto-detection is wrong." : { + "comment" : "LoopInsights format override hint" + }, "Mute All Alerts" : { "comment" : "Label for button to mute all alerts", "localizations" : { @@ -26693,6 +27102,9 @@ } } }, + "Network Error: %@" : { + "comment" : "LoopInsights error: network" + }, "New Favorite Food" : { "comment" : "Title of new favorite food screen", "localizations" : { @@ -26895,6 +27307,9 @@ } } }, + "No API key configured. Please add your API key in LoopInsights Settings." : { + "comment" : "LoopInsights error: no API key" + }, "No Bolus Recommended" : { "comment" : "Title for bolus screen notice when no bolus is recommended\nTitle for bolus screen warning when glucose is below suspend threshold, and a bolus is not recommended\nTitle for bolus screen warning when no bolus is recommended", "localizations" : { @@ -26984,6 +27399,12 @@ } } }, + "No changes" : { + "comment" : "LoopInsights legend: OK" + }, + "No changes suggested" : { + "comment" : "LoopInsights: no suggestion" + }, "No connected devices, or failure during device connection" : { "comment" : "The error message displayed for device connection errors.", "localizations" : { @@ -27103,6 +27524,9 @@ } } }, + "No fixtures found" : { + "comment" : "LoopInsights no fixtures" + }, "No Maximum Bolus Configured" : { "comment" : "Alert title for a missing maximum bolus setting error", "localizations" : { @@ -27578,6 +28002,9 @@ } } }, + "No suggestions yet" : { + "comment" : "LoopInsights empty history title" + }, "No, edit amount" : { "comment" : "The title of the action used when rejecting the the amount of carbohydrates entered.", "localizations" : { @@ -27792,6 +28219,9 @@ } } }, + "Not analyzed" : { + "comment" : "LoopInsights legend: not analyzed" + }, "Notification Delivery" : { "comment" : "Notification Delivery Status text", "localizations" : { @@ -28457,7 +28887,7 @@ } }, "OK" : { - "comment" : "Alert acknowledgment OK button\nCritical Alert permissions disabled alert button\nDefault action for alert when alert acknowledgment fails\nNotifications permissions disabled alert button\nText for ok action on notification of upcoming TestFlight expiration\nText for ok action on notification of upcoming profile expiration\nThe title of the notification action to acknowledge a device alert", + "comment" : "Alert acknowledgment OK button\nCritical Alert permissions disabled alert button\nDefault action for alert when alert acknowledgment fails\nNotifications permissions disabled alert button\nOK button\nText for ok action on notification of upcoming TestFlight expiration\nText for ok action on notification of upcoming profile expiration\nThe title of the notification action to acknowledge a device alert", "localizations" : { "ar" : { "stringUnit" : { @@ -28718,6 +29148,24 @@ } } }, + "One-Tap Apply" : { + "comment" : "LoopInsights apply mode: apply with confirmation" + }, + "Open Dashboard" : { + "comment" : "LoopInsights open dashboard button" + }, + "Opens the Therapy Settings editor with the suggested value pre-filled. You confirm by tapping Save." : { + "comment" : "LoopInsights apply mode description: pre-fill" + }, + "Organization ID" : { + "comment" : "LoopInsights org ID label" + }, + "Overnight Highs" : { + "comment" : "LoopInsights pattern: overnight highs" + }, + "Overnight Lows" : { + "comment" : "LoopInsights pattern: overnight lows" + }, "Override Presets" : { "comment" : "The title text for the override presets", "extractionState" : "manual", @@ -28844,6 +29292,15 @@ } } }, + "Pending" : { + "comment" : "LoopInsights suggestion status: pending review" + }, + "Pick from your Current Therapy Settings" : { + "comment" : "LoopInsights current settings header" + }, + "Place fixture files in Documents/LoopInsights/ or rebuild with bundled test data." : { + "comment" : "LoopInsights no fixtures hint" + }, "Possible Missed Meal" : { "comment" : "The notification title for a meal that was possibly not logged in Loop.", "localizations" : { @@ -28921,6 +29378,15 @@ } } }, + "Post-meal glucose spikes detected at %d of 3 meal windows" : { + "comment" : "LoopInsights pattern detail: post-meal spikes" + }, + "Post-Meal Spikes" : { + "comment" : "LoopInsights pattern: post-meal spikes" + }, + "Pre-Fill Editor" : { + "comment" : "LoopInsights apply mode: navigate to editor with value pre-filled" + }, "Pre-Meal Targets" : { "comment" : "The label of the pre-meal mode toggle button", "localizations" : { @@ -29862,6 +30328,9 @@ } } }, + "Professional and evidence-based. Precise medical terminology with clear clinical reasoning." : { + "comment" : "LoopInsights personality desc: clinical expert" + }, "Profile Expiration" : { "comment" : "Settings App Profile expiration view", "localizations" : { @@ -30111,6 +30580,12 @@ } } }, + "Proposed" : { + "comment" : "LoopInsights proposed value label" + }, + "Proposed Changes" : { + "comment" : "LoopInsights proposed changes header" + }, "Pump" : { "comment" : "The title of the pump section in settings", "extractionState" : "manual", @@ -31682,6 +32157,12 @@ } } }, + "Reasoning" : { + "comment" : "LoopInsight's detailed reasoning" + }, + "Rebound Highs" : { + "comment" : "LoopInsights pattern: rebound highs" + }, "Recommendation expired: %1$@ old" : { "comment" : "The error message when a recommendation has expired. (1: age of recommendation in minutes)", "localizations" : { @@ -32397,6 +32878,9 @@ } } }, + "Request Format Override" : { + "comment" : "LoopInsights format override label" + }, "Reservoir" : { "comment" : "Segmented button title for insulin delivery log reservoir history", "localizations" : { @@ -32574,6 +33058,12 @@ } } }, + "Reset" : { + "comment" : "LoopInsights reset format button" + }, + "Response Style" : { + "comment" : "LoopInsights personality picker label" + }, "Retrospective Correction" : { "comment" : "Title of the prediction input effect for retrospective correction", "localizations" : { @@ -32824,6 +33314,15 @@ } } }, + "Review" : { + "comment" : "LoopInsights legend: review" + }, + "Rolling lookback period for automated AI-based suggestions - how far back do you want LoopInsights to look when analyzing your glucose, insulin, and carb data?" : { + "comment" : "LoopInsights analysis period description" + }, + "Run an analysis from the LoopInsights Dashboard to generate your first suggestions." : { + "comment" : "LoopInsights empty history message" + }, "Save" : { "localizations" : { "da" : { @@ -34505,6 +35004,27 @@ } } }, + "Status" : { + "comment" : "LoopInsights status header" + }, + "Stored securely in Keychain" : { + "comment" : "LoopInsights keychain confirmation" + }, + "Stored Suggestions" : { + "comment" : "LoopInsights stored suggestions label" + }, + "Suggestion History" : { + "comment" : "LoopInsights history button\nLoopInsights history title" + }, + "SUGGESTION HISTORY" : { + "comment" : "LoopInsights history header" + }, + "Suggestions are applied automatically when confidence is high. All changes are logged." : { + "comment" : "LoopInsights apply mode description: auto-apply" + }, + "Suggestions for Fine Tuning" : { + "comment" : "LoopInsights suggestions header" + }, "Support" : { "comment" : "Section title for Support\nThe title of the support section in settings", "localizations" : { @@ -34594,6 +35114,9 @@ } } }, + "Supportive Coach" : { + "comment" : "LoopInsights personality: supportive coach" + }, "Suspend Threshold" : { "comment" : "The title text in settings", "extractionState" : "manual", @@ -35449,6 +35972,9 @@ } } }, + "Test Connection" : { + "comment" : "LoopInsights test connection button" + }, "TestFlight" : { "comment" : "Settings app TestFlight section", "localizations" : { @@ -35673,6 +36199,9 @@ } } }, + "Testing..." : { + "comment" : "LoopInsights testing connection" + }, "The bolus amount entered is smaller than the minimum deliverable." : { "comment" : "Alert message for a bolus too small validation error", "localizations" : { @@ -36690,6 +37219,18 @@ } } }, + "This section is for self-hosted, Azure, or non-standard API endpoints. Most users can ignore these." : { + "comment" : "LoopInsights advanced settings description" + }, + "This will modify your therapy settings. You are responsible for reviewing and verifying all changes. AI suggestions are advisory and may not be appropriate for your situation. Consult your healthcare provider for significant therapy adjustments." : { + "comment" : "LoopInsights apply disclaimer" + }, + "This will permanently delete all suggestion history. This cannot be undone." : { + "comment" : "LoopInsights clear history warning" + }, + "Time in Range" : { + "comment" : "LoopInsights TIR label" + }, "Time Sensitive Alerts" : { "localizations" : { "da" : { @@ -36825,6 +37366,12 @@ } } }, + "Total Daily Dose" : { + "comment" : "LoopInsights TDD label" + }, + "Tough Love" : { + "comment" : "LoopInsights personality: tough love" + }, "Transmitter Low Battery" : { "localizations" : { "da" : { @@ -37239,6 +37786,9 @@ } } }, + "U/hr" : { + "comment" : "LoopInsights unit: units per hour" + }, "Unable To Clear Alert" : { "comment" : "Title for alert shown when alert acknowledgement fails", "localizations" : { @@ -37803,6 +38353,9 @@ } } }, + "Unknown error" : { + "comment" : "LoopInsights unknown error" + }, "Unknown Error: %1$@" : { "comment" : "The error message displayed for unknown errors. (1: unknown error)", "localizations" : { @@ -38744,6 +39297,9 @@ } } }, + "Use Test Data Fixtures" : { + "comment" : "LoopInsights test data toggle" + }, "Use the Mute Alerts feature. It allows you to temporarily silence all of your alerts and alarms via the %1$@ app, including Critical Alerts and Time Sensitive Alerts." : { "comment" : "Description text for temporarily silencing all sounds (1: app name)", "localizations" : { @@ -39012,6 +39568,12 @@ } } }, + "View the suggested values, then navigate to Therapy Settings to make changes yourself." : { + "comment" : "LoopInsights apply mode description: manual" + }, + "View therapy settings, run AI analysis, and manage suggestions" : { + "comment" : "LoopInsights dashboard description" + }, "Walsh" : { "comment" : "Title of insulin model setting", "extractionState" : "manual", @@ -39267,6 +39829,9 @@ } } }, + "When applying suggestions" : { + "comment" : "LoopInsights apply mode picker" + }, "When current or forecasted glucose is below the glucose safety limit, Loop will not recommend a bolus, and will always recommend a temporary basal rate of 0 units per hour." : { "comment" : "Explanation of glucose safety limit", "localizations" : { @@ -39811,6 +40376,9 @@ } } }, + "Witty and clever. No sugar-coating (pun intended) — helpful advice with a side of humor." : { + "comment" : "LoopInsights personality desc: dry wit" + }, "Workout Targets" : { "comment" : "The label of the workout mode toggle button", "localizations" : { diff --git a/Loop/Managers/LoopInsights/LoopInsights_Coordinator.swift b/Loop/Managers/LoopInsights/LoopInsights_Coordinator.swift new file mode 100644 index 0000000000..10b1ff4354 --- /dev/null +++ b/Loop/Managers/LoopInsights/LoopInsights_Coordinator.swift @@ -0,0 +1,156 @@ +// +// LoopInsights_Coordinator.swift +// Loop +// +// Concept & design by Taylor Patterson. Coded & tested by Claude Code in February 2026. +// Copyright (c) 2025-2026 LoopKit Authors. All rights reserved. +// + +import Foundation +import LoopKit +import HealthKit + +/// Orchestrates all LoopInsights services and manages the feature lifecycle. +/// Created when LoopInsights is accessed from Settings. Owns the DataAggregator, +/// SuggestionStore, and AIAnalysis service, and provides the data access bridge +/// between Loop's stores and LoopInsights' analysis engine. +final class LoopInsights_Coordinator: ObservableObject { + + // MARK: - Services + + let dataAggregator: LoopInsights_DataAggregator + let aiAnalysis: LoopInsights_AIAnalysis + let suggestionStore: LoopInsights_SuggestionStore + + // MARK: - Data Provider Bridge + + private var dataProviderBridge: DataProviderBridge? + + /// Retained reference to test data provider (when using fixtures). + private var testDataProvider: LoopInsights_TestDataProvider? + + // MARK: - Initialization + + /// Initialize with Loop's existing store references. + /// The coordinator only reads from these stores — it never writes glucose, dose, or carb data. + init( + glucoseStore: GlucoseStoreProtocol, + doseStore: DoseStoreProtocol, + carbStore: CarbStoreProtocol, + settingsProvider: LatestStoredSettingsProvider + ) { + let bridge = DataProviderBridge( + glucoseStore: glucoseStore, + doseStore: doseStore, + carbStore: carbStore, + settingsProvider: settingsProvider + ) + self.dataProviderBridge = bridge + self.dataAggregator = LoopInsights_DataAggregator(dataProvider: bridge) + self.aiAnalysis = LoopInsights_AIAnalysis() + self.suggestionStore = LoopInsights_SuggestionStore.shared + } + + /// Initialize with test data fixtures (for simulator/developer mode). + /// Loads JSON fixtures from Documents/LoopInsights/ or the app bundle. + init(testDataProvider: LoopInsights_TestDataProvider) { + self.testDataProvider = testDataProvider + self.dataProviderBridge = nil + self.dataAggregator = LoopInsights_DataAggregator(dataProvider: testDataProvider) + self.aiAnalysis = LoopInsights_AIAnalysis() + self.suggestionStore = LoopInsights_SuggestionStore.shared + } + + /// Factory method: creates a Coordinator with test data if available and enabled, + /// otherwise returns nil (caller should fall back to real stores). + static func withTestDataIfAvailable() -> LoopInsights_Coordinator? { + guard LoopInsights_FeatureFlags.useTestData else { return nil } + + let provider = LoopInsights_TestDataProvider() + guard provider.hasTestData else { + print("[LoopInsights] Test data mode enabled but no fixtures found") + return nil + } + + print("[LoopInsights] Using test data: \(provider.dataSummary)") + return LoopInsights_Coordinator(testDataProvider: provider) + } + + // MARK: - Therapy Settings Write Access + + /// Reference to settings provider for write operations (one-tap apply) + private var settingsProvider: LatestStoredSettingsProvider? { + return dataProviderBridge?.settingsProvider + } + + /// Capture a snapshot of the current therapy settings + func captureCurrentSnapshot() throws -> LoopInsightsTherapySnapshot { + return try dataAggregator.captureTherapySnapshot() + } +} + +// MARK: - Data Provider Bridge + +/// Bridges Loop's concrete store types to the LoopInsightsDataProviderProtocol. +/// This keeps LoopInsights decoupled from the specific store implementations. +private final class DataProviderBridge: LoopInsightsDataProviderProtocol { + + private let glucoseStore: GlucoseStoreProtocol + private let doseStore: DoseStoreProtocol + private let carbStore: CarbStoreProtocol + fileprivate let settingsProvider: LatestStoredSettingsProvider + + init( + glucoseStore: GlucoseStoreProtocol, + doseStore: DoseStoreProtocol, + carbStore: CarbStoreProtocol, + settingsProvider: LatestStoredSettingsProvider + ) { + self.glucoseStore = glucoseStore + self.doseStore = doseStore + self.carbStore = carbStore + self.settingsProvider = settingsProvider + } + + func getGlucoseSamples(start: Date, end: Date) async throws -> [StoredGlucoseSample] { + return try await withCheckedThrowingContinuation { continuation in + glucoseStore.getGlucoseSamples(start: start, end: end) { result in + continuation.resume(with: result) + } + } + } + + func getCarbEntries(start: Date, end: Date) async throws -> [StoredCarbEntry] { + // CarbStoreProtocol doesn't expose getCarbEntries; cast to concrete CarbStore + guard let store = carbStore as? CarbStore else { + throw LoopInsightsError.insufficientData("CarbStore not available") + } + return try await withCheckedThrowingContinuation { continuation in + store.getCarbEntries(start: start, end: end) { result in + switch result { + case .success(let entries): + continuation.resume(returning: entries) + case .failure(let error): + continuation.resume(throwing: error) + } + } + } + } + + func getNormalizedDoseEntries(start: Date, end: Date) async throws -> [DoseEntry] { + return try await withCheckedThrowingContinuation { continuation in + doseStore.getNormalizedDoseEntries(start: start, end: end) { result in + switch result { + case .success(let entries): + continuation.resume(returning: entries) + case .failure(let error): + continuation.resume(throwing: error) + } + } + } + } + + func getLatestStoredSettings() -> StoredSettings { + return settingsProvider.latestSettings + } +} diff --git a/Loop/Models/LoopInsights/LoopInsights_Models.swift b/Loop/Models/LoopInsights/LoopInsights_Models.swift new file mode 100644 index 0000000000..7ece698423 --- /dev/null +++ b/Loop/Models/LoopInsights/LoopInsights_Models.swift @@ -0,0 +1,674 @@ +// +// LoopInsights_Models.swift +// Loop +// +// Concept & design by Taylor Patterson. Coded & tested by Claude Code in February 2026. +// Copyright (c) 2025-2026 LoopKit Authors. All rights reserved. +// + +import Foundation +import LoopKit +import HealthKit + +// MARK: - Setting Type + +/// The three therapy settings LoopInsights can analyze and suggest changes for +enum LoopInsightsSettingType: String, Codable, CaseIterable, Identifiable { + case carbRatio = "carb_ratio" + case insulinSensitivity = "insulin_sensitivity" + case basalRate = "basal_rate" + + var id: String { rawValue } + + var displayName: String { + switch self { + case .carbRatio: + return NSLocalizedString("Carb Ratio", comment: "LoopInsights setting type: Carb Ratio") + case .insulinSensitivity: + return NSLocalizedString("Insulin Sensitivity", comment: "LoopInsights setting type: Insulin Sensitivity Factor") + case .basalRate: + return NSLocalizedString("Basal Rate", comment: "LoopInsights setting type: Basal Rate") + } + } + + var abbreviation: String { + switch self { + case .carbRatio: return "CR" + case .insulinSensitivity: return "ISF" + case .basalRate: return "BR" + } + } + + var unitDescription: String { + switch self { + case .carbRatio: + return NSLocalizedString("g/U", comment: "LoopInsights unit: grams per unit of insulin") + case .insulinSensitivity: + return NSLocalizedString("mg/dL per U", comment: "LoopInsights unit: mg/dL per unit of insulin") + case .basalRate: + return NSLocalizedString("U/hr", comment: "LoopInsights unit: units per hour") + } + } + + var systemImage: String { + switch self { + case .carbRatio: return "fork.knife" + case .insulinSensitivity: return "arrow.up.arrow.down" + case .basalRate: return "drop.fill" + } + } +} + +// MARK: - Setting Analysis Status + +/// Status of an individual therapy setting after analysis +enum LoopInsightsSettingStatus { + case notAnalyzed // Gray — hasn't been analyzed yet + case analyzedOK // Green — analyzed, no changes needed + case hasSuggestions // Orange — has pending suggestions +} + +// MARK: - Detected Pattern + +/// A glucose/insulin pattern detected from aggregated data +struct LoopInsightsDetectedPattern: Identifiable { + let id = UUID() + let type: LoopInsightsPatternType + let detail: String + let severity: LoopInsightsConfidence +} + +/// Types of patterns LoopInsights can detect from glucose/insulin/carb data +enum LoopInsightsPatternType: String, CaseIterable { + case overnightLows + case frequentLows + case overnightHighs + case dawnPhenomenon + case postMealSpikes + case reboundHighs + case highVariability + case consistentHighs + case consistentLows + + var displayName: String { + switch self { + case .overnightLows: + return NSLocalizedString("Overnight Lows", comment: "LoopInsights pattern: overnight lows") + case .frequentLows: + return NSLocalizedString("Frequent Lows", comment: "LoopInsights pattern: frequent lows") + case .overnightHighs: + return NSLocalizedString("Overnight Highs", comment: "LoopInsights pattern: overnight highs") + case .dawnPhenomenon: + return NSLocalizedString("Dawn Phenomenon", comment: "LoopInsights pattern: dawn phenomenon") + case .postMealSpikes: + return NSLocalizedString("Post-Meal Spikes", comment: "LoopInsights pattern: post-meal spikes") + case .reboundHighs: + return NSLocalizedString("Rebound Highs", comment: "LoopInsights pattern: rebound highs") + case .highVariability: + return NSLocalizedString("High Variability", comment: "LoopInsights pattern: high variability") + case .consistentHighs: + return NSLocalizedString("Consistent Highs", comment: "LoopInsights pattern: consistent highs") + case .consistentLows: + return NSLocalizedString("Consistent Lows", comment: "LoopInsights pattern: consistent lows") + } + } + + var systemImage: String { + switch self { + case .overnightLows: return "moon.zzz" + case .frequentLows: return "arrow.down.circle" + case .overnightHighs: return "moon.stars" + case .dawnPhenomenon: return "sunrise" + case .postMealSpikes: return "fork.knife" + case .reboundHighs: return "arrow.turn.up.right" + case .highVariability: return "waveform.path.ecg" + case .consistentHighs: return "arrow.up.circle" + case .consistentLows: return "arrow.down.to.line" + } + } +} + +// MARK: - Analysis Period + +/// How far back LoopInsights looks when aggregating data +enum LoopInsightsAnalysisPeriod: Int, Codable, CaseIterable, Identifiable { + case threeDays = 3 + case sevenDays = 7 + case fourteenDays = 14 + case thirtyDays = 30 + case ninetyDays = 90 + + var id: Int { rawValue } + + var displayName: String { + switch self { + case .threeDays: + return NSLocalizedString("3 Days", comment: "LoopInsights analysis period: 3 days") + case .sevenDays: + return NSLocalizedString("7 Days", comment: "LoopInsights analysis period: 7 days") + case .fourteenDays: + return NSLocalizedString("14 Days", comment: "LoopInsights analysis period: 14 days") + case .thirtyDays: + return NSLocalizedString("30 Days", comment: "LoopInsights analysis period: 30 days") + case .ninetyDays: + return NSLocalizedString("90 Days", comment: "LoopInsights analysis period: 90 days") + } + } + + var timeInterval: TimeInterval { + return TimeInterval(rawValue) * 24 * 60 * 60 + } +} + +// MARK: - AI Personality + +/// Personality style for AI responses — changes the tone of assessments and reasoning +enum LoopInsightsAIPersonality: String, Codable, CaseIterable, Identifiable { + case supportiveCoach = "supportive_coach" + case clinicalExpert = "clinical_expert" + case dryWit = "dry_wit" + case toughLove = "tough_love" + + var id: String { rawValue } + + var displayName: String { + switch self { + case .supportiveCoach: + return NSLocalizedString("Supportive Coach", comment: "LoopInsights personality: supportive coach") + case .clinicalExpert: + return NSLocalizedString("Clinical Expert", comment: "LoopInsights personality: clinical expert") + case .dryWit: + return NSLocalizedString("Dry Wit", comment: "LoopInsights personality: dry wit") + case .toughLove: + return NSLocalizedString("Tough Love", comment: "LoopInsights personality: tough love") + } + } + + var description: String { + switch self { + case .supportiveCoach: + return NSLocalizedString("Encouraging and positive. Celebrates your wins and gently explains areas for improvement.", comment: "LoopInsights personality desc: supportive coach") + case .clinicalExpert: + return NSLocalizedString("Professional and evidence-based. Precise medical terminology with clear clinical reasoning.", comment: "LoopInsights personality desc: clinical expert") + case .dryWit: + return NSLocalizedString("Witty and clever. No sugar-coating (pun intended) — helpful advice with a side of humor.", comment: "LoopInsights personality desc: dry wit") + case .toughLove: + return NSLocalizedString("Direct and no-nonsense. Holds you accountable and tells it like it is.", comment: "LoopInsights personality desc: tough love") + } + } + + /// Prompt instructions injected into the AI system prompt + var promptInstruction: String { + switch self { + case .supportiveCoach: + return """ + PERSONALITY: You are a warm, encouraging diabetes coach. Celebrate what's going well before \ + discussing changes. Use phrases like "Great job on...", "Let's work together to...", and \ + "You're making real progress with...". Be optimistic and supportive while still being honest \ + about areas that need attention. Use simple, accessible language. + """ + case .clinicalExpert: + return """ + PERSONALITY: You are a board-certified endocrinologist reviewing pump settings. Use precise \ + medical terminology (TIR, CV, GMI, basal/bolus ratio). Reference clinical guidelines (ADA, \ + consensus targets) when making recommendations. Be thorough, methodical, and evidence-based. \ + Maintain a professional, measured tone throughout. + """ + case .dryWit: + return """ + PERSONALITY: You are a witty diabetes advisor with a dry sense of humor. Deliver helpful, \ + accurate advice but make it entertaining. Use clever wordplay, diabetes-related puns, and \ + wry observations. You might say things like "Your overnight basals are throwing a party \ + your glucose wasn't invited to" or "That dawn phenomenon is more reliable than your alarm \ + clock." Always be helpful underneath the humor. + """ + case .toughLove: + return """ + PERSONALITY: You are a brutally honest drill-sergeant-style diabetes coach. You do NOT \ + hand out participation trophies. Lead with what's wrong — skip the pleasantries. Use \ + blunt, punchy language: "These numbers are unacceptable", "You're leaving 20% TIR on \ + the table and that's on your settings", "Stop ignoring this — your overnights are a \ + mess." If a pattern is dangerous, say so plainly: "This is putting you at risk. Full \ + stop." Be relentless about accountability — if the data shows a problem, hammer it home. \ + Every statement should hit hard, but always end with a concrete fix. You're tough because \ + you care, not because you're cruel. + """ + } + } +} + +// MARK: - Apply Mode + +/// How suggestions are applied to therapy settings +enum LoopInsightsApplyMode: String, Codable, CaseIterable, Identifiable { + case manual = "manual" + case oneTap = "one_tap" + case preFill = "pre_fill" + case autoApply = "auto_apply" + + var id: String { rawValue } + + var displayName: String { + switch self { + case .manual: + return NSLocalizedString("Manual", comment: "LoopInsights apply mode: navigate to settings manually") + case .oneTap: + return NSLocalizedString("One-Tap Apply", comment: "LoopInsights apply mode: apply with confirmation") + case .preFill: + return NSLocalizedString("Pre-Fill Editor", comment: "LoopInsights apply mode: navigate to editor with value pre-filled") + case .autoApply: + return NSLocalizedString("Auto-Apply", comment: "LoopInsights apply mode: automatically apply suggestions (developer only)") + } + } + + var description: String { + switch self { + case .manual: + return NSLocalizedString("View the suggested values, then navigate to Therapy Settings to make changes yourself.", comment: "LoopInsights apply mode description: manual") + case .oneTap: + return NSLocalizedString("Apply suggestions with a single tap. You'll see a confirmation with a responsibility disclaimer.", comment: "LoopInsights apply mode description: one-tap") + case .preFill: + return NSLocalizedString("Opens the Therapy Settings editor with the suggested value pre-filled. You confirm by tapping Save.", comment: "LoopInsights apply mode description: pre-fill") + case .autoApply: + return NSLocalizedString("Suggestions are applied automatically when confidence is high. All changes are logged.", comment: "LoopInsights apply mode description: auto-apply") + } + } + + /// Modes visible to all users (auto-apply is developer-only) + static var publicModes: [LoopInsightsApplyMode] { + return [.manual, .oneTap, .preFill] + } +} + +// MARK: - Request Format + +/// Determines how the HTTP request body is built and how the response is parsed. +/// Supports OpenAI-compatible endpoints (OpenAI, Azure, Groq, Together, Ollama, etc.), +/// Anthropic Messages API, and Google Generative AI (Gemini). +enum LoopInsightsRequestFormat: String, Codable, CaseIterable, Equatable { + case openAICompatible + case anthropicMessages + case googleGenerativeAI + + var displayName: String { + switch self { + case .openAICompatible: return "OpenAI Compatible" + case .anthropicMessages: return "Anthropic Messages" + case .googleGenerativeAI: return "Google Generative AI" + } + } + + /// Default response JSON path for extracting text content. + var defaultResponseKeyPath: String { + switch self { + case .openAICompatible: return "choices.0.message.content" + case .anthropicMessages: return "content.0.text" + case .googleGenerativeAI: return "candidates.0.content.parts.0.text" + } + } + + /// Default API key header name. + var defaultAPIKeyHeader: String { + switch self { + case .openAICompatible: return "Authorization" + case .anthropicMessages: return "x-api-key" + case .googleGenerativeAI: return "x-goog-api-key" + } + } + + /// Default API key prefix (e.g., "Bearer " for OpenAI). + var defaultAPIKeyPrefix: String { + switch self { + case .openAICompatible: return "Bearer " + case .anthropicMessages: return "" + case .googleGenerativeAI: return "" + } + } + + /// Default endpoint path. + var defaultEndpoint: String { + switch self { + case .openAICompatible: return "/chat/completions" + case .anthropicMessages: return "/messages" + case .googleGenerativeAI: return "/models/{MODEL}:generateContent" + } + } + + /// Auto-detect request format from a base URL. + /// Falls back to `.openAICompatible` for any unrecognized URL. + static func detect(from baseURL: String) -> LoopInsightsRequestFormat { + let lower = baseURL.lowercased() + if lower.contains("anthropic.com") { + return .anthropicMessages + } else if lower.contains("googleapis.com") || lower.contains("generativelanguage") { + return .googleGenerativeAI + } + return .openAICompatible + } +} + +// MARK: - AI Provider Configuration + +/// User-configurable AI endpoint configuration for LoopInsights. +/// +/// The `apiKey` field is populated at runtime from the Keychain and is NOT +/// persisted to UserDefaults. Use `LoopInsights_SecureStorage` to read/write keys. +struct LoopInsightsAIProviderConfiguration: Codable, Equatable { + var baseURL: String + var model: String + var endpointPath: String + var requestFormat: LoopInsightsRequestFormat + var apiKeyHeader: String + var apiKeyPrefix: String + var maxTokens: Int + var temperature: Double + var apiVersion: String? + var organizationID: String? + + /// Transient — populated from Keychain at load time, NOT stored in UserDefaults. + var apiKey: String + + init( + baseURL: String = "https://api.openai.com/v1", + model: String = "gpt-4o", + endpointPath: String? = nil, + requestFormat: LoopInsightsRequestFormat = .openAICompatible, + apiKeyHeader: String? = nil, + apiKeyPrefix: String? = nil, + maxTokens: Int = 4096, + temperature: Double = 0.3, + apiVersion: String? = nil, + organizationID: String? = nil, + apiKey: String = "" + ) { + self.baseURL = baseURL + self.model = model + self.endpointPath = endpointPath ?? requestFormat.defaultEndpoint + self.requestFormat = requestFormat + self.apiKeyHeader = apiKeyHeader ?? requestFormat.defaultAPIKeyHeader + self.apiKeyPrefix = apiKeyPrefix ?? requestFormat.defaultAPIKeyPrefix + self.maxTokens = maxTokens + self.temperature = temperature + self.apiVersion = apiVersion + self.organizationID = organizationID + self.apiKey = apiKey + } + + /// Returns a copy with the API key loaded from Keychain. + func withKeychainAPIKey() -> LoopInsightsAIProviderConfiguration { + var copy = self + copy.apiKey = LoopInsights_SecureStorage.loadAPIKey() ?? "" + return copy + } + + // MARK: - Codable (exclude apiKey from persistence) + + enum CodingKeys: String, CodingKey { + case baseURL, model, endpointPath, requestFormat + case apiKeyHeader, apiKeyPrefix, maxTokens, temperature + case apiVersion, organizationID + } + + init(from decoder: Decoder) throws { + let c = try decoder.container(keyedBy: CodingKeys.self) + baseURL = try c.decode(String.self, forKey: .baseURL) + model = try c.decode(String.self, forKey: .model) + endpointPath = try c.decode(String.self, forKey: .endpointPath) + requestFormat = try c.decode(LoopInsightsRequestFormat.self, forKey: .requestFormat) + apiKeyHeader = try c.decode(String.self, forKey: .apiKeyHeader) + apiKeyPrefix = try c.decode(String.self, forKey: .apiKeyPrefix) + maxTokens = try c.decode(Int.self, forKey: .maxTokens) + temperature = try c.decode(Double.self, forKey: .temperature) + apiVersion = try c.decodeIfPresent(String.self, forKey: .apiVersion) + organizationID = try c.decodeIfPresent(String.self, forKey: .organizationID) + apiKey = "" // Never decoded — loaded from Keychain + } + + func encode(to encoder: Encoder) throws { + var c = encoder.container(keyedBy: CodingKeys.self) + try c.encode(baseURL, forKey: .baseURL) + try c.encode(model, forKey: .model) + try c.encode(endpointPath, forKey: .endpointPath) + try c.encode(requestFormat, forKey: .requestFormat) + try c.encode(apiKeyHeader, forKey: .apiKeyHeader) + try c.encode(apiKeyPrefix, forKey: .apiKeyPrefix) + try c.encode(maxTokens, forKey: .maxTokens) + try c.encode(temperature, forKey: .temperature) + try c.encodeIfPresent(apiVersion, forKey: .apiVersion) + try c.encodeIfPresent(organizationID, forKey: .organizationID) + // apiKey intentionally omitted — stored in Keychain only + } +} + +// MARK: - Confidence Level + +/// How confident the AI is in a suggestion +enum LoopInsightsConfidence: String, Codable, Comparable { + case low = "low" + case medium = "medium" + case high = "high" + + var displayName: String { + switch self { + case .low: + return NSLocalizedString("Low", comment: "LoopInsights confidence: low") + case .medium: + return NSLocalizedString("Medium", comment: "LoopInsights confidence: medium") + case .high: + return NSLocalizedString("High", comment: "LoopInsights confidence: high") + } + } + + var color: String { + switch self { + case .low: return "yellow" + case .medium: return "orange" + case .high: return "blue" + } + } + + private var sortOrder: Int { + switch self { + case .low: return 0 + case .medium: return 1 + case .high: return 2 + } + } + + static func < (lhs: LoopInsightsConfidence, rhs: LoopInsightsConfidence) -> Bool { + return lhs.sortOrder < rhs.sortOrder + } +} + +// MARK: - Time Block + +/// A specific time block within a schedule (e.g., 12pm-3pm) +struct LoopInsightsTimeBlock: Codable, Identifiable, Equatable { + let id: UUID + let startTime: TimeInterval // Seconds since midnight + let endTime: TimeInterval // Seconds since midnight + let currentValue: Double + let proposedValue: Double + + init(startTime: TimeInterval, endTime: TimeInterval, currentValue: Double, proposedValue: Double) { + self.id = UUID() + self.startTime = startTime + self.endTime = endTime + self.currentValue = currentValue + self.proposedValue = proposedValue + } + + var startTimeFormatted: String { + return Self.formatTime(startTime) + } + + var endTimeFormatted: String { + return Self.formatTime(endTime) + } + + var timeRangeFormatted: String { + return "\(startTimeFormatted) – \(endTimeFormatted)" + } + + var changePercent: Double { + guard currentValue != 0 else { return 0 } + return ((proposedValue - currentValue) / currentValue) * 100 + } + + private static func formatTime(_ seconds: TimeInterval) -> String { + let hours = Int(seconds) / 3600 + let minutes = (Int(seconds) % 3600) / 60 + let formatter = DateFormatter() + formatter.dateFormat = hours >= 12 ? "h:mm a" : "h:mm a" + var calendar = Calendar.current + calendar.timeZone = TimeZone.current + let date = calendar.startOfDay(for: Date()).addingTimeInterval(seconds) + return formatter.string(from: date) + } +} + +// MARK: - Suggestion + +/// A single AI-generated therapy setting suggestion +struct LoopInsightsSuggestion: Codable, Identifiable, Equatable { + let id: UUID + let settingType: LoopInsightsSettingType + let timeBlocks: [LoopInsightsTimeBlock] + let reasoning: String + let confidence: LoopInsightsConfidence + let analysisPeriod: LoopInsightsAnalysisPeriod + let createdAt: Date + + /// Summary of the overall change direction + var summaryDescription: String { + guard let first = timeBlocks.first else { + return NSLocalizedString("No changes suggested", comment: "LoopInsights: no suggestion") + } + + if timeBlocks.count == 1 { + let direction = first.proposedValue > first.currentValue + ? NSLocalizedString("Increase", comment: "LoopInsights: increase direction") + : NSLocalizedString("Decrease", comment: "LoopInsights: decrease direction") + return "\(direction) \(settingType.abbreviation) at \(first.timeRangeFormatted)" + } else { + return String( + format: NSLocalizedString("Adjust %@ across %d time blocks", comment: "LoopInsights: multi-block suggestion summary"), + settingType.abbreviation, + timeBlocks.count + ) + } + } + + static func == (lhs: LoopInsightsSuggestion, rhs: LoopInsightsSuggestion) -> Bool { + return lhs.id == rhs.id + } +} + +// MARK: - Therapy Snapshot + +/// A point-in-time capture of all therapy settings, used for before/after comparison +struct LoopInsightsTherapySnapshot: Codable { + let basalRateItems: [LoopInsightsScheduleItem] + let insulinSensitivityItems: [LoopInsightsScheduleItem] + let carbRatioItems: [LoopInsightsScheduleItem] + let capturedAt: Date + + struct LoopInsightsScheduleItem: Codable, Identifiable { + let id: UUID + let startTime: TimeInterval // Seconds since midnight + let value: Double + + init(startTime: TimeInterval, value: Double) { + self.id = UUID() + self.startTime = startTime + self.value = value + } + } +} + +// MARK: - Aggregated Stats + +/// Aggregated statistics from Loop's data stores, used as input to AI analysis +struct LoopInsightsAggregatedStats: Codable { + let period: LoopInsightsAnalysisPeriod + let glucoseStats: GlucoseStats + let insulinStats: InsulinStats + let carbStats: CarbStats + let generatedAt: Date + + struct GlucoseStats: Codable { + let averageGlucose: Double // mg/dL + let standardDeviation: Double // mg/dL + let coefficientOfVariation: Double // percentage + let timeInRange: Double // percentage (70-180 mg/dL) + let timeBelowRange: Double // percentage (<70 mg/dL) + let timeAboveRange: Double // percentage (>180 mg/dL) + let gmi: Double // Glucose Management Indicator (estimated A1C) + let sampleCount: Int + let hourlyAverages: [Int: Double] // hour (0-23) → average glucose + } + + struct InsulinStats: Codable { + let totalDailyDose: Double // Average total units/day + let basalPercentage: Double // percentage of TDD from basal + let bolusPercentage: Double // percentage of TDD from bolus + let hourlyBasalAverages: [Int: Double] // hour → average basal rate delivered + let correctionBolusCount: Int // number of correction boluses in period + } + + struct CarbStats: Codable { + let averageDailyCarbs: Double // grams/day + let mealCount: Int // total meals logged + let averageCarbsPerMeal: Double // grams/meal + let hourlyMealFrequency: [Int: Int] // hour → number of meals at that hour + } +} + +// MARK: - AI Analysis Request/Response + +/// The structured request sent to the AI provider +struct LoopInsightsAnalysisRequest: Codable { + let currentSettings: LoopInsightsTherapySnapshot + let aggregatedStats: LoopInsightsAggregatedStats + let focusSettingType: LoopInsightsSettingType + let userNotes: String? +} + +/// The structured response parsed from the AI provider +struct LoopInsightsAnalysisResponse: Codable { + let suggestions: [LoopInsightsSuggestion] + let overallAssessment: String + let nextRecommendedFocus: LoopInsightsSettingType? + let rawResponse: String? +} + +// MARK: - Error Types + +enum LoopInsightsError: Error, LocalizedError { + case noAPIKeyConfigured + case aiProviderError(String) + case networkError(Error) + case parseError(String) + case insufficientData(String) + case settingsWriteError(String) + case keychainError(String) + + var errorDescription: String? { + switch self { + case .noAPIKeyConfigured: + return NSLocalizedString("No API key configured. Please add your API key in LoopInsights Settings.", comment: "LoopInsights error: no API key") + case .aiProviderError(let message): + return String(format: NSLocalizedString("AI Provider Error: %@", comment: "LoopInsights error: AI provider"), message) + case .networkError(let error): + return String(format: NSLocalizedString("Network Error: %@", comment: "LoopInsights error: network"), error.localizedDescription) + case .parseError(let message): + return String(format: NSLocalizedString("Failed to parse AI response: %@", comment: "LoopInsights error: parse"), message) + case .insufficientData(let message): + return String(format: NSLocalizedString("Insufficient data for analysis: %@", comment: "LoopInsights error: insufficient data"), message) + case .settingsWriteError(let message): + return String(format: NSLocalizedString("Failed to apply settings: %@", comment: "LoopInsights error: settings write"), message) + case .keychainError(let message): + return String(format: NSLocalizedString("Keychain Error: %@", comment: "LoopInsights error: keychain"), message) + } + } +} diff --git a/Loop/Models/LoopInsights/LoopInsights_SuggestionRecord.swift b/Loop/Models/LoopInsights/LoopInsights_SuggestionRecord.swift new file mode 100644 index 0000000000..c7f9f05962 --- /dev/null +++ b/Loop/Models/LoopInsights/LoopInsights_SuggestionRecord.swift @@ -0,0 +1,90 @@ +// +// LoopInsights_SuggestionRecord.swift +// Loop +// +// Concept & design by Taylor Patterson. Coded & tested by Claude Code in February 2026. +// Copyright (c) 2025-2026 LoopKit Authors. All rights reserved. +// + +import Foundation + +// MARK: - Suggestion Status + +/// The lifecycle status of a suggestion +enum LoopInsightsSuggestionStatus: String, Codable { + case pending = "pending" + case applied = "applied" + case dismissed = "dismissed" + case autoApplied = "auto_applied" + + var displayName: String { + switch self { + case .pending: + return NSLocalizedString("Pending", comment: "LoopInsights suggestion status: pending review") + case .applied: + return NSLocalizedString("Applied", comment: "LoopInsights suggestion status: user applied") + case .dismissed: + return NSLocalizedString("Dismissed", comment: "LoopInsights suggestion status: user dismissed") + case .autoApplied: + return NSLocalizedString("Auto-Applied", comment: "LoopInsights suggestion status: automatically applied") + } + } + + var systemImage: String { + switch self { + case .pending: return "clock" + case .applied: return "checkmark.circle.fill" + case .dismissed: return "xmark.circle" + case .autoApplied: return "bolt.circle.fill" + } + } + + var isResolved: Bool { + switch self { + case .pending: return false + case .applied, .dismissed, .autoApplied: return true + } + } +} + +// MARK: - Suggestion Record + +/// A persistent record of a suggestion, including its status and any actions taken +struct LoopInsightsSuggestionRecord: Codable, Identifiable, Equatable { + let id: UUID + let suggestion: LoopInsightsSuggestion + var status: LoopInsightsSuggestionStatus + let createdAt: Date + var resolvedAt: Date? + var applyMode: LoopInsightsApplyMode? + var settingsSnapshotBefore: LoopInsightsTherapySnapshot? + var settingsSnapshotAfter: LoopInsightsTherapySnapshot? + + init(suggestion: LoopInsightsSuggestion) { + self.id = UUID() + self.suggestion = suggestion + self.status = .pending + self.createdAt = Date() + self.resolvedAt = nil + self.applyMode = nil + self.settingsSnapshotBefore = nil + self.settingsSnapshotAfter = nil + } + + mutating func markApplied(mode: LoopInsightsApplyMode, snapshotBefore: LoopInsightsTherapySnapshot?, snapshotAfter: LoopInsightsTherapySnapshot?) { + self.status = mode == .autoApply ? .autoApplied : .applied + self.resolvedAt = Date() + self.applyMode = mode + self.settingsSnapshotBefore = snapshotBefore + self.settingsSnapshotAfter = snapshotAfter + } + + mutating func markDismissed() { + self.status = .dismissed + self.resolvedAt = Date() + } + + static func == (lhs: LoopInsightsSuggestionRecord, rhs: LoopInsightsSuggestionRecord) -> Bool { + return lhs.id == rhs.id + } +} diff --git a/Loop/Resources/LoopInsights/LoopInsights_FeatureFlags.swift b/Loop/Resources/LoopInsights/LoopInsights_FeatureFlags.swift new file mode 100644 index 0000000000..dafbf4d27d --- /dev/null +++ b/Loop/Resources/LoopInsights/LoopInsights_FeatureFlags.swift @@ -0,0 +1,128 @@ +// +// LoopInsights_FeatureFlags.swift +// Loop +// +// Concept & design by Taylor Patterson. Coded & tested by Claude Code in February 2026. +// Copyright (c) 2025-2026 LoopKit Authors. All rights reserved. +// + +import Foundation + +/// Runtime feature flags for LoopInsights. All flags are UserDefaults-backed +/// so they can be toggled without recompilation. +struct LoopInsights_FeatureFlags { + + private enum Keys { + static let isEnabled = "LoopInsights_isEnabled" + static let developerModeEnabled = "LoopInsights_developerModeEnabled" + static let applyMode = "LoopInsights_applyMode" + static let analysisPeriod = "LoopInsights_analysisPeriod" + static let aiConfiguration = "LoopInsights_aiConfiguration" + static let developerUnlockCount = "LoopInsights_developerUnlockCount" + static let useTestData = "LoopInsights_useTestData" + static let aiPersonality = "LoopInsights_aiPersonality" + } + + private static let defaults = UserDefaults.standard + + // MARK: - Primary Feature Toggle + + /// Master on/off switch for LoopInsights. Defaults to false. + static var isEnabled: Bool { + get { defaults.bool(forKey: Keys.isEnabled) } + set { defaults.set(newValue, forKey: Keys.isEnabled) } + } + + // MARK: - Developer Mode (Hidden) + + /// Developer-only mode that unlocks auto-apply and advanced testing options. + /// Activated by long-pressing the LoopInsights header 5 times. + /// Not visible in the public settings UI. + static var developerModeEnabled: Bool { + get { defaults.bool(forKey: Keys.developerModeEnabled) } + set { defaults.set(newValue, forKey: Keys.developerModeEnabled) } + } + + /// Tracks long-press count toward developer mode activation + static var developerUnlockCount: Int { + get { defaults.integer(forKey: Keys.developerUnlockCount) } + set { defaults.set(newValue, forKey: Keys.developerUnlockCount) } + } + + /// Number of long-presses required to unlock developer mode + static let developerUnlockThreshold = 3 + + /// Use test data fixtures instead of real Loop data stores (developer mode only). + /// When enabled, LoopInsights loads JSON fixtures from Documents/LoopInsights/ or the app bundle. + static var useTestData: Bool { + get { developerModeEnabled && defaults.bool(forKey: Keys.useTestData) } + set { defaults.set(newValue, forKey: Keys.useTestData) } + } + + // MARK: - Apply Mode + + /// How suggestions are applied. Defaults to manual. + static var applyMode: LoopInsightsApplyMode { + get { + guard let raw = defaults.string(forKey: Keys.applyMode), + let mode = LoopInsightsApplyMode(rawValue: raw) else { + return .manual + } + // Auto-apply only available in developer mode + if mode == .autoApply && !developerModeEnabled { + return .manual + } + return mode + } + set { + defaults.set(newValue.rawValue, forKey: Keys.applyMode) + } + } + + // MARK: - Analysis Period + + /// Default analysis lookback period. Defaults to 14 days. + static var analysisPeriod: LoopInsightsAnalysisPeriod { + get { + let raw = defaults.integer(forKey: Keys.analysisPeriod) + return LoopInsightsAnalysisPeriod(rawValue: raw) ?? .fourteenDays + } + set { + defaults.set(newValue.rawValue, forKey: Keys.analysisPeriod) + } + } + + // MARK: - AI Personality + + /// Personality style for AI responses. Defaults to supportive coach. + static var aiPersonality: LoopInsightsAIPersonality { + get { + guard let raw = defaults.string(forKey: Keys.aiPersonality), + let personality = LoopInsightsAIPersonality(rawValue: raw) else { + return .supportiveCoach + } + return personality + } + set { + defaults.set(newValue.rawValue, forKey: Keys.aiPersonality) + } + } + + // MARK: - AI Configuration + + /// User-configurable AI provider configuration. Persisted to UserDefaults (excluding API key). + static var aiConfiguration: LoopInsightsAIProviderConfiguration { + get { + guard let data = defaults.data(forKey: Keys.aiConfiguration), + let config = try? JSONDecoder().decode(LoopInsightsAIProviderConfiguration.self, from: data) else { + return LoopInsightsAIProviderConfiguration() + } + return config + } + set { + if let data = try? JSONEncoder().encode(newValue) { + defaults.set(data, forKey: Keys.aiConfiguration) + } + } + } +} diff --git a/Loop/Resources/LoopInsights/TestData/tidepool_carb_entries.json b/Loop/Resources/LoopInsights/TestData/tidepool_carb_entries.json new file mode 100644 index 0000000000..b915dbbf67 --- /dev/null +++ b/Loop/Resources/LoopInsights/TestData/tidepool_carb_entries.json @@ -0,0 +1,803 @@ +[ + { + "startDate": "2026-01-13T19:53:42.589Z", + "quantity": 55, + "absorptionTime": 10800, + "syncIdentifier": "0426133705ecd612cb1c9efaf29b8495", + "syncVersion": 1, + "createdByCurrentApp": false, + "foodType": "\ud83c\udf2e" + }, + { + "startDate": "2026-01-14T01:40:20.663Z", + "quantity": 30, + "absorptionTime": 10800, + "syncIdentifier": "6901267e663c42e6f7eb654a853bfa4a", + "syncVersion": 1, + "createdByCurrentApp": false, + "foodType": "Cheeseburger" + }, + { + "startDate": "2026-01-14T17:48:58.533Z", + "quantity": 12, + "absorptionTime": 10800, + "syncIdentifier": "7ccf997304a642f36ae06c5ac3865add", + "syncVersion": 1, + "createdByCurrentApp": false, + "foodType": "\ud83c\udf2e" + }, + { + "startDate": "2026-01-14T23:23:27.773Z", + "quantity": 12, + "absorptionTime": 10800, + "syncIdentifier": "6444e10aa09c27615c515c5630929cd3", + "syncVersion": 1, + "createdByCurrentApp": false, + "foodType": "\ud83c\udf7a" + }, + { + "startDate": "2026-01-15T00:31:53.479Z", + "quantity": 40, + "absorptionTime": 10800, + "syncIdentifier": "2859b169b07214e76ebe8acc0551129a", + "syncVersion": 1, + "createdByCurrentApp": false, + "foodType": "Grilled chicken bre\u2026" + }, + { + "startDate": "2026-01-15T19:40:30.859Z", + "quantity": 30, + "absorptionTime": 10800, + "syncIdentifier": "75cd27ff45a3af959f752c5ee110ec98", + "syncVersion": 1, + "createdByCurrentApp": false, + "foodType": "\ud83e\udd6a" + }, + { + "startDate": "2026-01-15T23:26:48.202Z", + "quantity": 16, + "absorptionTime": 10800, + "syncIdentifier": "17a7b873bbece0be60dc1c9a337b96b0", + "syncVersion": 1, + "createdByCurrentApp": false, + "foodType": "Potato Crisps" + }, + { + "startDate": "2026-01-16T20:07:19.096Z", + "quantity": 60, + "absorptionTime": 10800, + "syncIdentifier": "f1d472af83cc3f1b6a853d16ee5d3fa6", + "syncVersion": 1, + "createdByCurrentApp": false, + "foodType": "Roasted sweet potat\u2026" + }, + { + "startDate": "2026-01-17T01:58:53.229Z", + "quantity": 45, + "absorptionTime": 10800, + "syncIdentifier": "30a65f0181177631c9ef123b53ec55dc", + "syncVersion": 1, + "createdByCurrentApp": false, + "foodType": "Brown rice" + }, + { + "startDate": "2026-01-17T17:38:30.964Z", + "quantity": 12, + "absorptionTime": 10800, + "syncIdentifier": "274897ef22f6812443361052bebfbbf7", + "syncVersion": 1, + "createdByCurrentApp": false, + "foodType": "\ud83c\udf2e" + }, + { + "startDate": "2026-01-17T19:47:43.603Z", + "quantity": 16, + "absorptionTime": 10800, + "syncIdentifier": "dbe523e650d30f7b395e0d4c034eb7f3", + "syncVersion": 1, + "createdByCurrentApp": false, + "foodType": "Potato Crisps" + }, + { + "startDate": "2026-01-17T22:09:01.199Z", + "quantity": 53, + "absorptionTime": 10800, + "syncIdentifier": "f17bbc9182b411404ad52b85d811587c", + "syncVersion": 1, + "createdByCurrentApp": false, + "foodType": "\ud83c\udf2e" + }, + { + "startDate": "2026-01-18T20:02:18.518Z", + "quantity": 16, + "absorptionTime": 10800, + "syncIdentifier": "acee2deab729d174ccb47857f60efc34", + "syncVersion": 1, + "createdByCurrentApp": false, + "foodType": "\ud83c\udf7a" + }, + { + "startDate": "2026-01-18T20:06:28.261Z", + "quantity": 40, + "absorptionTime": 10800, + "syncIdentifier": "a11dfd36352f694cf13626af45c04430", + "syncVersion": 1, + "createdByCurrentApp": false, + "foodType": "Grilled beef steak" + }, + { + "startDate": "2026-01-18T22:47:50.138Z", + "quantity": 16, + "absorptionTime": 10800, + "syncIdentifier": "fc2fafec58fed6f35513cad473622794", + "syncVersion": 1, + "createdByCurrentApp": false, + "foodType": "Potato Crisps" + }, + { + "startDate": "2026-01-19T01:19:40.445Z", + "quantity": 23, + "absorptionTime": 10800, + "syncIdentifier": "9c78587fcf5a3909dbbae2f1aa776ce8", + "syncVersion": 1, + "createdByCurrentApp": false, + "foodType": "\ud83c\udf2e" + }, + { + "startDate": "2026-01-19T19:26:53.731Z", + "quantity": 5, + "absorptionTime": 10800, + "syncIdentifier": "2fa476ff16758df641cbb7f46f5c38c2", + "syncVersion": 1, + "createdByCurrentApp": false, + "foodType": "Cottage Cheese" + }, + { + "startDate": "2026-01-20T01:34:39.863Z", + "quantity": 20, + "absorptionTime": 10800, + "syncIdentifier": "4e19eb42875628492f77d0b6716e2a89", + "syncVersion": 1, + "createdByCurrentApp": false, + "foodType": "\ud83c\udf2e" + }, + { + "startDate": "2026-01-20T19:34:05.724Z", + "quantity": 30, + "absorptionTime": 10800, + "syncIdentifier": "a030b3ff14fc12cbe93f273e8c248520", + "syncVersion": 1, + "createdByCurrentApp": false, + "foodType": "MEDIUM HOT COCKTAIL\u2026" + }, + { + "startDate": "2026-01-21T00:51:55.57Z", + "quantity": 15, + "absorptionTime": 10800, + "syncIdentifier": "1144947bd35731b2630316b83767b583", + "syncVersion": 1, + "createdByCurrentApp": false, + "foodType": "\ud83c\udf2e" + }, + { + "startDate": "2026-01-21T01:40:14.873Z", + "quantity": 10, + "absorptionTime": 10800, + "syncIdentifier": "3857442c5dba51248a393e165fefa235", + "syncVersion": 1, + "createdByCurrentApp": false, + "foodType": "\ud83c\udf2e" + }, + { + "startDate": "2026-01-21T01:52:26.854Z", + "quantity": 25, + "absorptionTime": 10800, + "syncIdentifier": "b5fdff7729483ffb6dbc2a38290934da", + "syncVersion": 1, + "createdByCurrentApp": false, + "foodType": "M&M'S, CHOCOLATE CA\u2026" + }, + { + "startDate": "2026-01-21T02:05:17.083Z", + "quantity": 20, + "absorptionTime": 10800, + "syncIdentifier": "47dbd4e2a2764f45a956395cee622d60", + "syncVersion": 1, + "createdByCurrentApp": false, + "foodType": "\ud83c\udf2e" + }, + { + "startDate": "2026-01-21T22:37:03.796Z", + "quantity": 5, + "absorptionTime": 10800, + "syncIdentifier": "10cf55a7ebe737f1293e8ac7af05b380", + "syncVersion": 1, + "createdByCurrentApp": false, + "foodType": "\ud83c\udf2e" + }, + { + "startDate": "2026-01-22T01:14:21.84Z", + "quantity": 10, + "absorptionTime": 10800, + "syncIdentifier": "4cb61965b6614b3fd47fc167f729fb2d", + "syncVersion": 1, + "createdByCurrentApp": false, + "foodType": "\ud83c\udf2e" + }, + { + "startDate": "2026-01-22T01:43:41.865Z", + "quantity": 50, + "absorptionTime": 10800, + "syncIdentifier": "0aaa700f89a8bbc096ad689ba3cbc03f", + "syncVersion": 1, + "createdByCurrentApp": false, + "foodType": "\ud83c\udf2e" + }, + { + "startDate": "2026-01-22T19:51:00.288Z", + "quantity": 42.5, + "absorptionTime": 10800, + "syncIdentifier": "3f9726092160ecff645ec5da12f57820", + "syncVersion": 1, + "createdByCurrentApp": false, + "foodType": "Wegmans Shrimp Gyoza" + }, + { + "startDate": "2026-01-23T00:59:52.041Z", + "quantity": 10, + "absorptionTime": 10800, + "syncIdentifier": "d59634b9c49b5a22eb030b3d1e55783c", + "syncVersion": 1, + "createdByCurrentApp": false, + "foodType": "\ud83c\udf2e" + }, + { + "startDate": "2026-01-23T01:59:20.4Z", + "quantity": 45, + "absorptionTime": 10800, + "syncIdentifier": "289e67d0c686242bdeaaa9a1dfb4731b", + "syncVersion": 1, + "createdByCurrentApp": false, + "foodType": "Chicken Vindaloo" + }, + { + "startDate": "2026-01-23T14:55:29.584Z", + "quantity": 12, + "absorptionTime": 10800, + "syncIdentifier": "8af67c89de807be5951fc2ec99d1efc5", + "syncVersion": 1, + "createdByCurrentApp": false, + "foodType": "\ud83c\udf2e" + }, + { + "startDate": "2026-01-23T22:27:05.482Z", + "quantity": 15, + "absorptionTime": 10800, + "syncIdentifier": "3e890554c307d80eed3753bd9ae131bc", + "syncVersion": 1, + "createdByCurrentApp": false, + "foodType": "\ud83c\udf2e" + }, + { + "startDate": "2026-01-23T22:32:17.195Z", + "quantity": 10, + "absorptionTime": 10800, + "syncIdentifier": "00fa89860fa32086ab481d1264677325", + "syncVersion": 1, + "createdByCurrentApp": false, + "foodType": "\ud83c\udf2e" + }, + { + "startDate": "2026-01-23T22:59:49.356Z", + "quantity": 25, + "absorptionTime": 10800, + "syncIdentifier": "02525baf1f06e985f94128daa0783558", + "syncVersion": 1, + "createdByCurrentApp": false, + "foodType": "Chewy Fruity Candy!" + }, + { + "startDate": "2026-01-24T02:40:39.575Z", + "quantity": 25, + "absorptionTime": 10800, + "syncIdentifier": "480e1ed48efa5f4adde347c101644987", + "syncVersion": 1, + "createdByCurrentApp": false, + "foodType": "\ud83c\udf2e" + }, + { + "startDate": "2026-01-24T03:08:02.862Z", + "quantity": 30, + "absorptionTime": 10800, + "syncIdentifier": "9efc26fc96deba1802e8e9643a0dbc96", + "syncVersion": 1, + "createdByCurrentApp": false, + "foodType": "\ud83c\udf2e" + }, + { + "startDate": "2026-01-24T17:53:39.607Z", + "quantity": 21, + "absorptionTime": 10800, + "syncIdentifier": "7bd31505a1552bb9f853a4fe33d3f3cb", + "syncVersion": 1, + "createdByCurrentApp": false, + "foodType": "Vanilla Greek Yogur\u2026" + }, + { + "startDate": "2026-01-24T20:11:04.963Z", + "quantity": 21, + "absorptionTime": 10800, + "syncIdentifier": "4f70bb3133d0b157c6e1172e8d508be9", + "syncVersion": 1, + "createdByCurrentApp": false, + "foodType": "\ud83c\udf2e" + }, + { + "startDate": "2026-01-25T17:29:25.672Z", + "quantity": 21, + "absorptionTime": 10800, + "syncIdentifier": "a2aab830dfd66299846d6e43933e100a", + "syncVersion": 1, + "createdByCurrentApp": false, + "foodType": "\ud83c\udf2e" + }, + { + "startDate": "2026-01-25T20:25:04.961Z", + "quantity": 12, + "absorptionTime": 10800, + "syncIdentifier": "1705e4e58fe81976ee94daed4d43649b", + "syncVersion": 1, + "createdByCurrentApp": false, + "foodType": "\ud83c\udf2e" + }, + { + "startDate": "2026-01-25T20:27:49.064Z", + "quantity": 9, + "absorptionTime": 10800, + "syncIdentifier": "5ee44052d5870ffbc4e3953102e6f5be", + "syncVersion": 1, + "createdByCurrentApp": false, + "foodType": "Chopped salad with \u2026" + }, + { + "startDate": "2026-01-25T20:42:50.966Z", + "quantity": 34, + "absorptionTime": 10800, + "syncIdentifier": "982958bedb90aac8ad32f018a8417ca2", + "syncVersion": 1, + "createdByCurrentApp": false, + "foodType": "Stir-fried pork" + }, + { + "startDate": "2026-01-25T21:45:35.435Z", + "quantity": 15, + "absorptionTime": 10800, + "syncIdentifier": "aa4c78b91f911626c1bc10b34fa5247b", + "syncVersion": 1, + "createdByCurrentApp": false, + "foodType": "peanut butter patti\u2026" + }, + { + "startDate": "2026-01-25T22:59:13.467Z", + "quantity": 15, + "absorptionTime": 10800, + "syncIdentifier": "dfd019d70710eea3b8b78efd9ceff7d1", + "syncVersion": 1, + "createdByCurrentApp": false, + "foodType": "\ud83c\udf2e" + }, + { + "startDate": "2026-01-26T00:14:14.189Z", + "quantity": 7.5, + "absorptionTime": 10800, + "syncIdentifier": "bd835ee199709aca9343d71baeffef93", + "syncVersion": 1, + "createdByCurrentApp": false, + "foodType": "\ud83c\udf2e" + }, + { + "startDate": "2026-01-26T02:43:52.974Z", + "quantity": 40.2, + "absorptionTime": 10800, + "syncIdentifier": "9a5ca427ba0d8f26cb89d8477432464b", + "syncVersion": 1, + "createdByCurrentApp": false, + "foodType": "Sliced Porridge Bre\u2026" + }, + { + "startDate": "2026-01-26T19:38:59.512Z", + "quantity": 44.5, + "absorptionTime": 10800, + "syncIdentifier": "cc4ed6d6e1c7e1cbc66a81ef7c5a1969", + "syncVersion": 1, + "createdByCurrentApp": false, + "foodType": "Stir-fried beef wit\u2026" + }, + { + "startDate": "2026-01-26T19:52:47.898Z", + "quantity": 30, + "absorptionTime": 10800, + "syncIdentifier": "0494e7e8fcf89ddfd8ca8713d320ca89", + "syncVersion": 1, + "createdByCurrentApp": false, + "foodType": "\ud83c\udf2e" + }, + { + "startDate": "2026-01-26T23:44:33.868Z", + "quantity": 22, + "absorptionTime": 10800, + "syncIdentifier": "3c9f6e0b7411d9a3bd43bd4046cee304", + "syncVersion": 1, + "createdByCurrentApp": false, + "foodType": "\ud83c\udf2e" + }, + { + "startDate": "2026-01-27T02:16:40.488Z", + "quantity": 18, + "absorptionTime": 10800, + "syncIdentifier": "990b27c7666aef263ec4e58b1f553482", + "syncVersion": 1, + "createdByCurrentApp": false, + "foodType": "\ud83c\udf2e" + }, + { + "startDate": "2026-01-27T18:04:45.24Z", + "quantity": 33, + "absorptionTime": 10800, + "syncIdentifier": "53462149b22aef19ff23fe6378e6c1c9", + "syncVersion": 1, + "createdByCurrentApp": false, + "foodType": "\ud83c\udf2e" + }, + { + "startDate": "2026-01-27T18:37:15.995Z", + "quantity": 21, + "absorptionTime": 10800, + "syncIdentifier": "60bcfd46ecf83d389dcef58229fdb3f7", + "syncVersion": 1, + "createdByCurrentApp": false, + "foodType": "\ud83c\udf2e" + }, + { + "startDate": "2026-01-27T20:50:41.856Z", + "quantity": 5, + "absorptionTime": 10800, + "syncIdentifier": "5140d1d136a2c8a0829e48135f3d42d5", + "syncVersion": 1, + "createdByCurrentApp": false, + "foodType": "\ud83c\udf2e" + }, + { + "startDate": "2026-01-27T21:03:23.17Z", + "quantity": 22, + "absorptionTime": 10800, + "syncIdentifier": "cb748f2d245a981095a5bf69712a80ae", + "syncVersion": 1, + "createdByCurrentApp": false, + "foodType": "\ud83c\udf2e" + }, + { + "startDate": "2026-02-02T19:45:08.531Z", + "quantity": 40, + "absorptionTime": 10800, + "syncIdentifier": "bc3277a192d6df25695906f1985a6b68", + "syncVersion": 1, + "createdByCurrentApp": false, + "foodType": "\ud83c\udf2e" + }, + { + "startDate": "2026-02-03T02:44:28.561Z", + "quantity": 25, + "absorptionTime": 10800, + "syncIdentifier": "fd29720d21996e722c44cf4b1613be73", + "syncVersion": 1, + "createdByCurrentApp": false, + "foodType": "\ud83c\udf2e" + }, + { + "startDate": "2026-02-03T21:15:18.375Z", + "quantity": 15, + "absorptionTime": 10800, + "syncIdentifier": "91663cb532106f5440a6077892d2bc64", + "syncVersion": 1, + "createdByCurrentApp": false, + "foodType": "Peanut Cocoa Crunch" + }, + { + "startDate": "2026-02-04T01:51:28.87Z", + "quantity": 6, + "absorptionTime": 10800, + "syncIdentifier": "3d04f1cfcd0d44cbf774c5801e474f23", + "syncVersion": 1, + "createdByCurrentApp": false, + "foodType": "Beetroot with cream\u2026" + }, + { + "startDate": "2026-02-04T02:20:19.492Z", + "quantity": 40, + "absorptionTime": 10800, + "syncIdentifier": "f9d55b509a61b6888c7e0154b4af146c", + "syncVersion": 1, + "createdByCurrentApp": false, + "foodType": "Grilled shrimp" + }, + { + "startDate": "2026-02-04T03:01:14.626Z", + "quantity": 5, + "absorptionTime": 10800, + "syncIdentifier": "732054e93b86a3cae616b9ec581a242a", + "syncVersion": 1, + "createdByCurrentApp": false, + "foodType": "Tuna Tartare" + }, + { + "startDate": "2026-02-04T04:03:02.976Z", + "quantity": 10, + "absorptionTime": 10800, + "syncIdentifier": "5f317fb650b6b67f9d8bc9334d71be3a", + "syncVersion": 1, + "createdByCurrentApp": false, + "foodType": "\ud83c\udf2e" + }, + { + "startDate": "2026-02-04T18:28:51.391Z", + "quantity": 15, + "absorptionTime": 10800, + "syncIdentifier": "dd7e315e90e02d46c88db70fa9709b4c", + "syncVersion": 1, + "createdByCurrentApp": false, + "foodType": "Low Fat Cottage Che\u2026" + }, + { + "startDate": "2026-02-05T01:38:49.729Z", + "quantity": 30, + "absorptionTime": 10800, + "syncIdentifier": "f83c1c3e5798cd6bd4de4fade07c7166", + "syncVersion": 1, + "createdByCurrentApp": false, + "foodType": "Cheeseburger" + }, + { + "startDate": "2026-02-05T15:30:26.253Z", + "quantity": 27, + "absorptionTime": 10800, + "syncIdentifier": "9acbc436941faf1fef9fabd8f237312a", + "syncVersion": 1, + "createdByCurrentApp": false, + "foodType": "BANANA" + }, + { + "startDate": "2026-02-05T20:49:13.1Z", + "quantity": 25, + "absorptionTime": 10800, + "syncIdentifier": "b0c5b4206bdf62ce451593aab06edfb2", + "syncVersion": 1, + "createdByCurrentApp": false, + "foodType": "Peanut Butter Dark \u2026" + }, + { + "startDate": "2026-02-06T00:56:11.485Z", + "quantity": 8, + "absorptionTime": 10800, + "syncIdentifier": "c17aced8b6ce62facb8653c146d356db", + "syncVersion": 1, + "createdByCurrentApp": false, + "foodType": "Low Fat Cottage Che\u2026" + }, + { + "startDate": "2026-02-06T02:28:37.174Z", + "quantity": 30, + "absorptionTime": 10800, + "syncIdentifier": "ffa903c7fefe2766c0230625f5641206", + "syncVersion": 1, + "createdByCurrentApp": false, + "foodType": "\ud83c\udf2e" + }, + { + "startDate": "2026-02-06T15:06:26.464Z", + "quantity": 27, + "absorptionTime": 10800, + "syncIdentifier": "1370951f76697ee3ea5c70c337c9d1c2", + "syncVersion": 1, + "createdByCurrentApp": false, + "foodType": "\ud83c\udf2e" + }, + { + "startDate": "2026-02-06T20:26:22.125Z", + "quantity": 10, + "absorptionTime": 10800, + "syncIdentifier": "b5f0f18f7592129f0502d7a018512ed6", + "syncVersion": 1, + "createdByCurrentApp": false, + "foodType": "\ud83c\udf2e" + }, + { + "startDate": "2026-02-06T20:30:49.972Z", + "quantity": 1, + "absorptionTime": 10800, + "syncIdentifier": "33974b54190a5f22e4e223a3f6edfea0", + "syncVersion": 1, + "createdByCurrentApp": false, + "foodType": "Albacore Wild Tuna" + }, + { + "startDate": "2026-02-06T23:55:49.278Z", + "quantity": 12, + "absorptionTime": 10800, + "syncIdentifier": "076c934454413154f3ac7e230a0439d4", + "syncVersion": 1, + "createdByCurrentApp": false, + "foodType": "\ud83c\udf7a" + }, + { + "startDate": "2026-02-07T00:57:05.202Z", + "quantity": 45, + "absorptionTime": 10800, + "syncIdentifier": "1b51202e8ab5487eb8c57e9e064a13b5", + "syncVersion": 1, + "createdByCurrentApp": false, + "foodType": "Chocolate mousse ca\u2026" + }, + { + "startDate": "2026-02-07T04:01:10.7Z", + "quantity": 10, + "absorptionTime": 10800, + "syncIdentifier": "a8be1ee2ec713cf7dd7ebd7c623e5d8a", + "syncVersion": 1, + "createdByCurrentApp": false, + "foodType": "\ud83c\udf2e" + }, + { + "startDate": "2026-02-07T17:21:53.536Z", + "quantity": 20, + "absorptionTime": 10800, + "syncIdentifier": "76f419a9dc49256cf38b5693c8c3e10d", + "syncVersion": 1, + "createdByCurrentApp": false, + "foodType": "\ud83c\udf2e" + }, + { + "startDate": "2026-02-07T21:22:20.181Z", + "quantity": 31, + "absorptionTime": 10800, + "syncIdentifier": "da8fadab348cf8b2bb81a8c0015bddcf", + "syncVersion": 1, + "createdByCurrentApp": false, + "foodType": "\ud83c\udf2e" + }, + { + "startDate": "2026-02-08T00:48:02.862Z", + "quantity": 25, + "absorptionTime": 10800, + "syncIdentifier": "3994586f98fbd00f0b45d5ac76e8bf75", + "syncVersion": 1, + "createdByCurrentApp": false, + "foodType": "\ud83c\udf2e" + }, + { + "startDate": "2026-02-08T03:09:23.026Z", + "quantity": 45, + "absorptionTime": 10800, + "syncIdentifier": "74447b9d3c61f18d19c88ef4a3650c28", + "syncVersion": 1, + "createdByCurrentApp": false, + "foodType": "Seafood paella with\u2026" + }, + { + "startDate": "2026-02-08T03:30:06.299Z", + "quantity": 20, + "absorptionTime": 10800, + "syncIdentifier": "c5412e9c367b6ccd49552243b4c9decb", + "syncVersion": 1, + "createdByCurrentApp": false, + "foodType": "\ud83c\udf2e" + }, + { + "startDate": "2026-02-08T19:13:56.276Z", + "quantity": 22, + "absorptionTime": 10800, + "syncIdentifier": "f4f081d53596a67e771a6390ff0772dd", + "syncVersion": 1, + "createdByCurrentApp": false, + "foodType": "\ud83c\udf2e" + }, + { + "startDate": "2026-02-09T00:40:05.606Z", + "quantity": 12, + "absorptionTime": 10800, + "syncIdentifier": "0086012feaebdf0237ab2aad5a3b9e4d", + "syncVersion": 1, + "createdByCurrentApp": false, + "foodType": "\ud83c\udf2e" + }, + { + "startDate": "2026-02-09T01:56:06.849Z", + "quantity": 40, + "absorptionTime": 10800, + "syncIdentifier": "2b7ebd23d121bd7dba7d8d0694c65b1e", + "syncVersion": 1, + "createdByCurrentApp": false, + "foodType": "Twice-baked potato \u2026" + }, + { + "startDate": "2026-02-09T18:47:59.105Z", + "quantity": 16, + "absorptionTime": 10800, + "syncIdentifier": "64547b1800d614515a19d79c7f6ee2da", + "syncVersion": 1, + "createdByCurrentApp": false, + "foodType": "\ud83c\udf2e" + }, + { + "startDate": "2026-02-09T20:33:32.309Z", + "quantity": 20, + "absorptionTime": 10800, + "syncIdentifier": "c6868d4efbfb03f7b2bbb251eaeeae46", + "syncVersion": 1, + "createdByCurrentApp": false, + "foodType": "\ud83c\udf2e" + }, + { + "startDate": "2026-02-10T01:19:16.768Z", + "quantity": 25, + "absorptionTime": 10800, + "syncIdentifier": "470c80513b267c1244aaf9f17c6d241e", + "syncVersion": 1, + "createdByCurrentApp": false, + "foodType": "\ud83c\udf2e" + }, + { + "startDate": "2026-02-10T15:54:30.175Z", + "quantity": 18, + "absorptionTime": 10800, + "syncIdentifier": "a608dc45c0c957a929c32e491d4bbce8", + "syncVersion": 1, + "createdByCurrentApp": false, + "foodType": "\ud83c\udf2e" + }, + { + "startDate": "2026-02-10T16:35:29.931Z", + "quantity": 7.5, + "absorptionTime": 10800, + "syncIdentifier": "465905bff56ff27c45c76c39a867d05d", + "syncVersion": 1, + "createdByCurrentApp": false, + "foodType": "\ud83c\udf2e" + }, + { + "startDate": "2026-02-10T19:46:56.912Z", + "quantity": 12, + "absorptionTime": 10800, + "syncIdentifier": "23d883058c3318a2d61da5d79e893b9e", + "syncVersion": 1, + "createdByCurrentApp": false, + "foodType": "\ud83c\udf7a" + }, + { + "startDate": "2026-02-10T19:47:35.71Z", + "quantity": 12, + "absorptionTime": 10800, + "syncIdentifier": "0df809961ed49f2e0c0271eec1c5a477", + "syncVersion": 1, + "createdByCurrentApp": false, + "foodType": "\ud83c\udf7a" + }, + { + "startDate": "2026-02-10T19:51:17.315Z", + "quantity": 60, + "absorptionTime": 10800, + "syncIdentifier": "d7c915f12a8dba1d1ef7bcbf3ea9ea62", + "syncVersion": 1, + "createdByCurrentApp": false, + "foodType": "\ud83c\udf2e" + }, + { + "startDate": "2026-02-10T22:05:55.627Z", + "quantity": 25, + "absorptionTime": 10800, + "syncIdentifier": "09a33c693308a664d9d16369e47bc16b", + "syncVersion": 1, + "createdByCurrentApp": false, + "foodType": "\ud83c\udf2e" + } +] \ No newline at end of file diff --git a/Loop/Resources/LoopInsights/TestData/tidepool_dose_entries.json b/Loop/Resources/LoopInsights/TestData/tidepool_dose_entries.json new file mode 100644 index 0000000000..5211f610d1 --- /dev/null +++ b/Loop/Resources/LoopInsights/TestData/tidepool_dose_entries.json @@ -0,0 +1,45511 @@ +[ + { + "type": "tempBasal", + "startDate": "2026-01-13T18:59:46.446Z", + "endDate": "2026-01-13T19:00:00.000Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-13T19:00:00Z", + "endDate": "2026-01-13T19:14:50.354Z", + "value": 0.95, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-13T19:14:50.354Z", + "endDate": "2026-01-13T19:29:45.313Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-13T19:29:45.313Z", + "endDate": "2026-01-13T19:39:45.608Z", + "value": 0.95, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-13T19:39:45.609Z", + "endDate": "2026-01-13T19:54:44.510Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-13T19:53:47.164Z", + "endDate": "2026-01-13T19:56:56.164Z", + "value": 6.3, + "unit": "U", + "isMutable": false + }, + { + "type": "tempBasal", + "startDate": "2026-01-13T19:54:44.51Z", + "endDate": "2026-01-13T21:04:44.421Z", + "value": 0.95, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-13T20:24:44.475Z", + "endDate": "2026-01-13T20:25:42.975Z", + "value": 1.95, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-13T20:29:45.527Z", + "endDate": "2026-01-13T20:30:21.527Z", + "value": 1.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-13T20:34:46.298Z", + "endDate": "2026-01-13T20:35:13.298Z", + "value": 0.9, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-13T20:39:44.188Z", + "endDate": "2026-01-13T20:40:03.688Z", + "value": 0.65, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-13T20:44:44.838Z", + "endDate": "2026-01-13T20:44:53.838Z", + "value": 0.3, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-13T20:49:45.484Z", + "endDate": "2026-01-13T20:49:50.484Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-13T20:54:46.902Z", + "endDate": "2026-01-13T20:54:51.902Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-13T21:04:44.422Z", + "endDate": "2026-01-13T21:09:46.634Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-13T21:09:46.635Z", + "endDate": "2026-01-13T21:09:46.638Z", + "value": 0.95, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-13T21:09:46.638Z", + "endDate": "2026-01-13T21:14:44.524Z", + "value": 0.3, + "unit": "U/hour", + "scheduledBasalRate": 0.3, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-13T21:14:44.525Z", + "endDate": "2026-01-13T21:39:45.535Z", + "value": 0.95, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-13T21:14:45.275Z", + "endDate": "2026-01-13T21:14:50.275Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-13T21:19:47.051Z", + "endDate": "2026-01-13T21:19:52.051Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-13T21:39:45.536Z", + "endDate": "2026-01-13T21:44:47.299Z", + "value": 0.65, + "unit": "U/hour", + "scheduledBasalRate": 0.65, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-13T21:44:47.3Z", + "endDate": "2026-01-13T21:54:45.263Z", + "value": 0.95, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-13T21:49:45.16Z", + "endDate": "2026-01-13T21:49:50.160Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-13T21:54:45.263Z", + "endDate": "2026-01-13T21:59:44.496Z", + "value": 0.5, + "unit": "U/hour", + "scheduledBasalRate": 0.5, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-13T21:59:44.497Z", + "endDate": "2026-01-13T21:59:44.503Z", + "value": 0.95, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-13T21:59:44.503Z", + "endDate": "2026-01-13T22:04:44.393Z", + "value": 0.35, + "unit": "U/hour", + "scheduledBasalRate": 0.35, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-13T22:04:44.394Z", + "endDate": "2026-01-13T22:04:44.397Z", + "value": 0.95, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-13T22:04:44.397Z", + "endDate": "2026-01-13T22:24:46.056Z", + "value": 0.95, + "unit": "U/hour", + "scheduledBasalRate": 0.95, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-13T22:04:45.758Z", + "endDate": "2026-01-13T22:04:50.758Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-13T22:09:47.58Z", + "endDate": "2026-01-13T22:09:58.080Z", + "value": 0.35, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-13T22:19:45.192Z", + "endDate": "2026-01-13T22:19:52.692Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-13T22:24:46.056Z", + "endDate": "2026-01-13T22:24:46.061Z", + "value": 0.95, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-13T22:24:46.061Z", + "endDate": "2026-01-13T22:44:45.481Z", + "value": 0.95, + "unit": "U/hour", + "scheduledBasalRate": 0.95, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-13T22:24:47.316Z", + "endDate": "2026-01-13T22:25:05.316Z", + "value": 0.6, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-13T22:29:46.664Z", + "endDate": "2026-01-13T22:30:06.164Z", + "value": 0.65, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-13T22:34:44.418Z", + "endDate": "2026-01-13T22:34:56.418Z", + "value": 0.4, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-13T22:39:44.11Z", + "endDate": "2026-01-13T22:40:02.110Z", + "value": 0.6, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-13T22:44:45.482Z", + "endDate": "2026-01-13T22:44:45.485Z", + "value": 0.95, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-13T22:44:45.485Z", + "endDate": "2026-01-13T23:04:46.546Z", + "value": 0.95, + "unit": "U/hour", + "scheduledBasalRate": 0.95, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-13T22:44:46.669Z", + "endDate": "2026-01-13T22:44:54.169Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-13T22:49:46.899Z", + "endDate": "2026-01-13T22:49:58.899Z", + "value": 0.4, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-13T22:54:44.37Z", + "endDate": "2026-01-13T22:54:57.870Z", + "value": 0.45, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-13T22:59:44.255Z", + "endDate": "2026-01-13T22:59:50.255Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-13T23:04:46.546Z", + "endDate": "2026-01-13T23:04:46.547Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-13T23:04:46.548Z", + "endDate": "2026-01-13T23:14:44.264Z", + "value": 0.9, + "unit": "U/hour", + "scheduledBasalRate": 0.9, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-13T23:04:47.672Z", + "endDate": "2026-01-13T23:04:52.672Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-13T23:09:45.756Z", + "endDate": "2026-01-13T23:09:50.756Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-13T23:14:44.265Z", + "endDate": "2026-01-13T23:14:44.266Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-13T23:14:44.266Z", + "endDate": "2026-01-13T23:34:47.459Z", + "value": 0.9, + "unit": "U/hour", + "scheduledBasalRate": 0.9, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-13T23:19:44.973Z", + "endDate": "2026-01-13T23:19:49.973Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-13T23:24:45.293Z", + "endDate": "2026-01-13T23:24:50.293Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-13T23:29:45.806Z", + "endDate": "2026-01-13T23:29:51.806Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-13T23:34:47.463Z", + "endDate": "2026-01-13T23:44:49.874Z", + "value": 0.9, + "unit": "U/hour", + "scheduledBasalRate": 0.9, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-13T23:34:47.46Z", + "endDate": "2026-01-13T23:34:47.463Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-13T23:34:48.901Z", + "endDate": "2026-01-13T23:34:53.901Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-13T23:44:49.875Z", + "endDate": "2026-01-13T23:44:49.877Z", + "value": 0.45, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-13T23:44:49.878Z", + "endDate": "2026-01-13T23:49:47.405Z", + "value": 0.05, + "unit": "U/hour", + "scheduledBasalRate": 0.05, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-13T23:49:47.405Z", + "endDate": "2026-01-13T23:49:47.406Z", + "value": 0.45, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-13T23:49:47.406Z", + "endDate": "2026-01-14T00:09:50.910Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T00:09:50.911Z", + "endDate": "2026-01-14T00:09:50.917Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T00:09:50.917Z", + "endDate": "2026-01-14T00:29:45.853Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T00:29:45.853Z", + "endDate": "2026-01-14T00:29:45.855Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T00:29:45.855Z", + "endDate": "2026-01-14T00:49:46.506Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T00:49:46.507Z", + "endDate": "2026-01-14T00:49:46.509Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T00:49:46.51Z", + "endDate": "2026-01-14T01:09:59.438Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T01:09:59.438Z", + "endDate": "2026-01-14T01:09:59.441Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T01:09:59.441Z", + "endDate": "2026-01-14T01:29:59.448Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T01:29:59.449Z", + "endDate": "2026-01-14T01:29:59.450Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T01:29:59.45Z", + "endDate": "2026-01-14T01:49:47.097Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T01:49:47.097Z", + "endDate": "2026-01-14T02:54:46.148Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-14T02:14:49.203Z", + "endDate": "2026-01-14T02:16:08.703Z", + "value": 2.65, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-14T02:19:48.018Z", + "endDate": "2026-01-14T02:20:36.018Z", + "value": 1.6, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-14T02:24:45.439Z", + "endDate": "2026-01-14T02:25:12.439Z", + "value": 0.9, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-14T02:29:48.935Z", + "endDate": "2026-01-14T02:30:05.435Z", + "value": 0.55, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-14T02:34:53.104Z", + "endDate": "2026-01-14T02:35:06.604Z", + "value": 0.45, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-14T02:39:45.467Z", + "endDate": "2026-01-14T02:39:54.467Z", + "value": 0.3, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-14T02:44:48.436Z", + "endDate": "2026-01-14T02:44:53.436Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T02:54:46.149Z", + "endDate": "2026-01-14T02:59:51.405Z", + "value": 0.9, + "unit": "U/hour", + "scheduledBasalRate": 0.9, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T02:59:51.405Z", + "endDate": "2026-01-14T02:59:51.407Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T02:59:51.408Z", + "endDate": "2026-01-14T03:04:52.499Z", + "value": 0.9, + "unit": "U/hour", + "scheduledBasalRate": 0.9, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T03:04:52.499Z", + "endDate": "2026-01-14T03:04:52.501Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T03:04:52.502Z", + "endDate": "2026-01-14T03:14:47.683Z", + "value": 0.8, + "unit": "U/hour", + "scheduledBasalRate": 0.8, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-14T03:04:53.746Z", + "endDate": "2026-01-14T03:05:01.246Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T03:14:47.683Z", + "endDate": "2026-01-14T03:14:47.685Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T03:14:47.686Z", + "endDate": "2026-01-14T03:34:47.455Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T03:34:47.455Z", + "endDate": "2026-01-14T03:34:47.457Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T03:34:47.458Z", + "endDate": "2026-01-14T03:54:45.339Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T03:54:45.339Z", + "endDate": "2026-01-14T03:54:45.341Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T03:54:45.341Z", + "endDate": "2026-01-14T03:59:46.102Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T03:59:46.103Z", + "endDate": "2026-01-14T03:59:46.105Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T03:59:46.105Z", + "endDate": "2026-01-14T04:04:47.151Z", + "value": 0.1, + "unit": "U/hour", + "scheduledBasalRate": 0.1, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T04:04:47.152Z", + "endDate": "2026-01-14T04:04:47.154Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T04:04:47.155Z", + "endDate": "2026-01-14T04:14:47.630Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T04:14:47.63Z", + "endDate": "2026-01-14T04:44:45.519Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-14T04:14:48.378Z", + "endDate": "2026-01-14T04:14:53.378Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-14T04:19:45.545Z", + "endDate": "2026-01-14T04:19:50.545Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-14T04:24:44.62Z", + "endDate": "2026-01-14T04:24:49.620Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-14T04:29:46.575Z", + "endDate": "2026-01-14T04:29:51.575Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-14T04:34:47.628Z", + "endDate": "2026-01-14T04:34:52.628Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-14T04:39:47.89Z", + "endDate": "2026-01-14T04:39:52.890Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T04:44:45.52Z", + "endDate": "2026-01-14T04:49:56.245Z", + "value": 0.45, + "unit": "U/hour", + "scheduledBasalRate": 0.45, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T04:49:56.245Z", + "endDate": "2026-01-14T05:09:45.684Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-14T04:49:56.994Z", + "endDate": "2026-01-14T04:50:05.994Z", + "value": 0.3, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-14T04:54:45.656Z", + "endDate": "2026-01-14T04:54:54.656Z", + "value": 0.3, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-14T04:59:47.369Z", + "endDate": "2026-01-14T04:59:52.369Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T05:09:45.685Z", + "endDate": "2026-01-14T05:14:47.890Z", + "value": 0.55, + "unit": "U/hour", + "scheduledBasalRate": 0.55, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T05:14:47.892Z", + "endDate": "2026-01-14T05:19:47.462Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T05:14:47.89Z", + "endDate": "2026-01-14T05:14:47.891Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T05:19:47.463Z", + "endDate": "2026-01-14T05:19:47.466Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T05:19:47.466Z", + "endDate": "2026-01-14T05:24:44.918Z", + "value": 0.6, + "unit": "U/hour", + "scheduledBasalRate": 0.6, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T05:24:44.918Z", + "endDate": "2026-01-14T05:44:48.127Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-14T05:24:45.76Z", + "endDate": "2026-01-14T05:24:50.760Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-14T05:29:45.329Z", + "endDate": "2026-01-14T05:29:55.829Z", + "value": 0.35, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-14T05:34:45.699Z", + "endDate": "2026-01-14T05:34:57.699Z", + "value": 0.4, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-14T05:39:44.969Z", + "endDate": "2026-01-14T05:39:49.969Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T05:44:48.127Z", + "endDate": "2026-01-14T05:49:44.732Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T05:49:44.733Z", + "endDate": "2026-01-14T06:59:45.498Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-14T05:49:45.602Z", + "endDate": "2026-01-14T05:49:50.602Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-14T05:54:46.309Z", + "endDate": "2026-01-14T05:54:56.809Z", + "value": 0.35, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-14T05:59:45.519Z", + "endDate": "2026-01-14T05:59:53.019Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-14T06:04:45.955Z", + "endDate": "2026-01-14T06:04:50.955Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-14T06:09:46.244Z", + "endDate": "2026-01-14T06:09:51.244Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-14T06:14:45.137Z", + "endDate": "2026-01-14T06:14:50.137Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-14T06:19:44.915Z", + "endDate": "2026-01-14T06:19:49.915Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-14T06:24:47.558Z", + "endDate": "2026-01-14T06:24:52.558Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-14T06:29:44.817Z", + "endDate": "2026-01-14T06:29:49.817Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-14T06:34:45.631Z", + "endDate": "2026-01-14T06:34:50.631Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-14T06:39:47.854Z", + "endDate": "2026-01-14T06:39:55.354Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-14T06:44:45.888Z", + "endDate": "2026-01-14T06:44:50.888Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-14T06:54:44.75Z", + "endDate": "2026-01-14T06:54:49.750Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T06:59:45.498Z", + "endDate": "2026-01-14T07:04:46.284Z", + "value": 0.2, + "unit": "U/hour", + "scheduledBasalRate": 0.2, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T07:04:46.285Z", + "endDate": "2026-01-14T07:04:46.289Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T07:04:46.289Z", + "endDate": "2026-01-14T07:09:47.634Z", + "value": 0.1, + "unit": "U/hour", + "scheduledBasalRate": 0.1, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T07:09:47.634Z", + "endDate": "2026-01-14T07:24:46.503Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-14T07:09:48.49Z", + "endDate": "2026-01-14T07:09:53.490Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-14T07:14:46.558Z", + "endDate": "2026-01-14T07:14:51.558Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T07:24:46.504Z", + "endDate": "2026-01-14T07:29:45.824Z", + "value": 0.6, + "unit": "U/hour", + "scheduledBasalRate": 0.6, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T07:29:45.824Z", + "endDate": "2026-01-14T07:29:45.826Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T07:29:45.827Z", + "endDate": "2026-01-14T07:34:46.156Z", + "value": 0.5, + "unit": "U/hour", + "scheduledBasalRate": 0.5, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T07:34:46.157Z", + "endDate": "2026-01-14T07:44:46.279Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-14T07:34:47.537Z", + "endDate": "2026-01-14T07:34:56.537Z", + "value": 0.3, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-14T07:39:53.272Z", + "endDate": "2026-01-14T07:39:58.272Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T07:44:46.279Z", + "endDate": "2026-01-14T07:54:48.550Z", + "value": 0.05, + "unit": "U/hour", + "scheduledBasalRate": 0.05, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T07:54:48.551Z", + "endDate": "2026-01-14T07:59:59.999Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-14T07:54:51.64Z", + "endDate": "2026-01-14T07:54:56.640Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T08:00:00Z", + "endDate": "2026-01-14T08:49:46.651Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-14T08:04:45.553Z", + "endDate": "2026-01-14T08:04:50.553Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-14T08:09:48.87Z", + "endDate": "2026-01-14T08:09:53.870Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-14T08:14:45.364Z", + "endDate": "2026-01-14T08:14:50.364Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-14T08:19:46.013Z", + "endDate": "2026-01-14T08:19:51.013Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-14T08:34:44.895Z", + "endDate": "2026-01-14T08:34:49.895Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-14T08:39:47.821Z", + "endDate": "2026-01-14T08:39:52.821Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-14T08:44:47.881Z", + "endDate": "2026-01-14T08:44:52.881Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T08:49:46.652Z", + "endDate": "2026-01-14T08:54:46.707Z", + "value": 0.4, + "unit": "U/hour", + "scheduledBasalRate": 0.4, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T08:54:46.707Z", + "endDate": "2026-01-14T08:54:46.709Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T08:54:46.709Z", + "endDate": "2026-01-14T08:59:46.317Z", + "value": 0.65, + "unit": "U/hour", + "scheduledBasalRate": 0.65, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T08:59:46.318Z", + "endDate": "2026-01-14T09:14:44.495Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-14T08:59:47.068Z", + "endDate": "2026-01-14T08:59:52.068Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-14T09:04:46.56Z", + "endDate": "2026-01-14T09:04:51.560Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-14T09:09:45.946Z", + "endDate": "2026-01-14T09:09:51.946Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T09:14:44.496Z", + "endDate": "2026-01-14T09:34:45.924Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T09:34:45.924Z", + "endDate": "2026-01-14T09:34:45.925Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T09:34:45.926Z", + "endDate": "2026-01-14T09:39:46.600Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T09:39:46.601Z", + "endDate": "2026-01-14T09:39:46.604Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T09:39:46.604Z", + "endDate": "2026-01-14T09:44:47.152Z", + "value": 0.4, + "unit": "U/hour", + "scheduledBasalRate": 0.4, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T09:44:47.152Z", + "endDate": "2026-01-14T09:44:47.154Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T09:44:47.155Z", + "endDate": "2026-01-14T09:49:47.092Z", + "value": 0.55, + "unit": "U/hour", + "scheduledBasalRate": 0.55, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T09:49:47.092Z", + "endDate": "2026-01-14T09:49:47.094Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T09:49:47.095Z", + "endDate": "2026-01-14T09:54:45.726Z", + "value": 0.45, + "unit": "U/hour", + "scheduledBasalRate": 0.45, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T09:54:45.727Z", + "endDate": "2026-01-14T10:19:45.909Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-14T09:54:46.372Z", + "endDate": "2026-01-14T09:54:51.372Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-14T09:59:46.583Z", + "endDate": "2026-01-14T09:59:51.583Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-14T10:09:46.272Z", + "endDate": "2026-01-14T10:09:51.272Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T10:19:45.909Z", + "endDate": "2026-01-14T10:24:47.251Z", + "value": 0.6, + "unit": "U/hour", + "scheduledBasalRate": 0.6, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T10:24:47.251Z", + "endDate": "2026-01-14T10:24:47.252Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T10:24:47.253Z", + "endDate": "2026-01-14T10:29:47.419Z", + "value": 0.7, + "unit": "U/hour", + "scheduledBasalRate": 0.7, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T10:29:47.419Z", + "endDate": "2026-01-14T10:29:47.423Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T10:29:47.423Z", + "endDate": "2026-01-14T10:34:45.007Z", + "value": 0.5, + "unit": "U/hour", + "scheduledBasalRate": 0.5, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T10:34:45.008Z", + "endDate": "2026-01-14T10:34:45.010Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T10:34:45.01Z", + "endDate": "2026-01-14T10:39:47.486Z", + "value": 0.35, + "unit": "U/hour", + "scheduledBasalRate": 0.35, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T10:39:47.487Z", + "endDate": "2026-01-14T10:59:44.623Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-14T10:49:47.538Z", + "endDate": "2026-01-14T10:49:52.538Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T10:59:44.623Z", + "endDate": "2026-01-14T11:04:46.312Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T11:04:46.313Z", + "endDate": "2026-01-14T11:09:47.328Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T11:09:47.329Z", + "endDate": "2026-01-14T11:19:46.969Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T11:19:46.969Z", + "endDate": "2026-01-14T11:24:46.318Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T11:24:46.318Z", + "endDate": "2026-01-14T11:29:47.092Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T11:29:47.093Z", + "endDate": "2026-01-14T11:44:45.676Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T11:44:45.677Z", + "endDate": "2026-01-14T11:54:46.233Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T11:54:46.233Z", + "endDate": "2026-01-14T12:29:45.830Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-14T12:14:45.08Z", + "endDate": "2026-01-14T12:14:52.580Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-14T12:19:46.011Z", + "endDate": "2026-01-14T12:19:51.011Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T12:29:45.831Z", + "endDate": "2026-01-14T12:34:45.542Z", + "value": 0.6, + "unit": "U/hour", + "scheduledBasalRate": 0.6, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T12:34:45.542Z", + "endDate": "2026-01-14T12:34:45.545Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T12:34:45.546Z", + "endDate": "2026-01-14T12:39:47.117Z", + "value": 0.15, + "unit": "U/hour", + "scheduledBasalRate": 0.15, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T12:39:47.118Z", + "endDate": "2026-01-14T12:39:47.121Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T12:39:47.121Z", + "endDate": "2026-01-14T12:49:47.648Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T12:49:47.649Z", + "endDate": "2026-01-14T12:59:47.241Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T12:59:47.242Z", + "endDate": "2026-01-14T13:14:45.437Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T13:14:45.437Z", + "endDate": "2026-01-14T14:24:50.491Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-14T13:49:45.19Z", + "endDate": "2026-01-14T13:49:50.190Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-14T13:54:49.108Z", + "endDate": "2026-01-14T13:54:55.108Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-14T13:59:45.696Z", + "endDate": "2026-01-14T13:59:53.196Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-14T14:04:46.586Z", + "endDate": "2026-01-14T14:04:52.586Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-14T14:14:49.649Z", + "endDate": "2026-01-14T14:14:55.649Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-14T14:19:48.378Z", + "endDate": "2026-01-14T14:19:53.378Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T14:24:50.492Z", + "endDate": "2026-01-14T14:34:48.406Z", + "value": 0.65, + "unit": "U/hour", + "scheduledBasalRate": 0.65, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T14:34:48.407Z", + "endDate": "2026-01-14T14:34:48.409Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T14:34:48.41Z", + "endDate": "2026-01-14T14:39:47.287Z", + "value": 0.45, + "unit": "U/hour", + "scheduledBasalRate": 0.45, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T14:39:47.288Z", + "endDate": "2026-01-14T14:39:47.292Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T14:39:47.293Z", + "endDate": "2026-01-14T14:44:47.698Z", + "value": 0.25, + "unit": "U/hour", + "scheduledBasalRate": 0.25, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T14:44:47.698Z", + "endDate": "2026-01-14T14:49:47.033Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T14:49:47.033Z", + "endDate": "2026-01-14T14:54:46.130Z", + "value": 0.6, + "unit": "U/hour", + "scheduledBasalRate": 0.6, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T14:54:46.13Z", + "endDate": "2026-01-14T14:59:59.999Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-14T14:59:45.703Z", + "endDate": "2026-01-14T14:59:50.703Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T15:00:00Z", + "endDate": "2026-01-14T15:34:46.412Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-14T15:04:45.921Z", + "endDate": "2026-01-14T15:04:50.921Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-14T15:09:48.596Z", + "endDate": "2026-01-14T15:09:53.596Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-14T15:14:47.835Z", + "endDate": "2026-01-14T15:14:52.835Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-14T15:19:45.977Z", + "endDate": "2026-01-14T15:19:50.977Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-14T15:24:48.454Z", + "endDate": "2026-01-14T15:24:53.454Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T15:34:46.413Z", + "endDate": "2026-01-14T15:39:48.338Z", + "value": 0.7, + "unit": "U/hour", + "scheduledBasalRate": 0.7, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T15:39:48.338Z", + "endDate": "2026-01-14T15:39:48.340Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T15:39:48.34Z", + "endDate": "2026-01-14T15:44:47.934Z", + "value": 0.55, + "unit": "U/hour", + "scheduledBasalRate": 0.55, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T15:44:47.935Z", + "endDate": "2026-01-14T15:44:47.938Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T15:44:47.938Z", + "endDate": "2026-01-14T15:49:47.559Z", + "value": 0.9, + "unit": "U/hour", + "scheduledBasalRate": 0.9, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T15:49:47.56Z", + "endDate": "2026-01-14T16:00:00.000Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-14T15:49:48.369Z", + "endDate": "2026-01-14T15:49:53.369Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-14T15:54:46.629Z", + "endDate": "2026-01-14T15:54:51.629Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-14T15:59:49.374Z", + "endDate": "2026-01-14T15:59:54.374Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T16:00:00Z", + "endDate": "2026-01-14T16:19:46.821Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-14T16:04:48.087Z", + "endDate": "2026-01-14T16:04:53.087Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-14T16:09:47.561Z", + "endDate": "2026-01-14T16:09:52.561Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-14T16:14:49.376Z", + "endDate": "2026-01-14T16:14:54.376Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T16:19:46.822Z", + "endDate": "2026-01-14T16:24:45.587Z", + "value": 0.55, + "unit": "U/hour", + "scheduledBasalRate": 0.55, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T16:24:45.588Z", + "endDate": "2026-01-14T16:24:45.591Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T16:24:45.591Z", + "endDate": "2026-01-14T16:29:47.109Z", + "value": 0.3, + "unit": "U/hour", + "scheduledBasalRate": 0.3, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T16:29:47.109Z", + "endDate": "2026-01-14T16:29:47.109Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T16:29:47.11Z", + "endDate": "2026-01-14T16:34:45.690Z", + "value": 0.6, + "unit": "U/hour", + "scheduledBasalRate": 0.6, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T16:34:45.69Z", + "endDate": "2026-01-14T16:44:45.833Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-14T16:34:46.529Z", + "endDate": "2026-01-14T16:34:52.529Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-14T16:39:51.752Z", + "endDate": "2026-01-14T16:40:03.752Z", + "value": 0.4, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T16:44:45.833Z", + "endDate": "2026-01-14T17:04:48.474Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T17:04:48.474Z", + "endDate": "2026-01-14T17:04:48.480Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T17:04:48.481Z", + "endDate": "2026-01-14T17:09:47.515Z", + "value": 0.45, + "unit": "U/hour", + "scheduledBasalRate": 0.45, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T17:09:47.516Z", + "endDate": "2026-01-14T17:09:47.517Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T17:09:47.518Z", + "endDate": "2026-01-14T17:19:46.294Z", + "value": 0.2, + "unit": "U/hour", + "scheduledBasalRate": 0.2, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T17:19:46.294Z", + "endDate": "2026-01-14T18:04:47.071Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-14T17:19:47.059Z", + "endDate": "2026-01-14T17:19:52.059Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-14T17:24:46.148Z", + "endDate": "2026-01-14T17:24:52.148Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-14T17:29:45.479Z", + "endDate": "2026-01-14T17:29:50.479Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-14T17:34:47.493Z", + "endDate": "2026-01-14T17:34:52.493Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-14T17:39:46.705Z", + "endDate": "2026-01-14T17:39:51.705Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-14T17:44:53.501Z", + "endDate": "2026-01-14T17:44:58.501Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-14T17:49:01.695Z", + "endDate": "2026-01-14T17:50:22.695Z", + "value": 2.7, + "unit": "U", + "isMutable": false + }, + { + "type": "bolus", + "startDate": "2026-01-14T17:54:46.986Z", + "endDate": "2026-01-14T17:54:51.986Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T18:04:47.072Z", + "endDate": "2026-01-14T18:09:46.869Z", + "value": 0.3, + "unit": "U/hour", + "scheduledBasalRate": 0.3, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T18:09:46.869Z", + "endDate": "2026-01-14T18:09:46.878Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T18:09:46.879Z", + "endDate": "2026-01-14T18:14:48.057Z", + "value": 0.15, + "unit": "U/hour", + "scheduledBasalRate": 0.15, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T18:14:48.057Z", + "endDate": "2026-01-14T18:59:59.999Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-14T18:19:47.327Z", + "endDate": "2026-01-14T18:19:52.327Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-14T18:24:54.62Z", + "endDate": "2026-01-14T18:24:59.620Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-14T18:29:45.969Z", + "endDate": "2026-01-14T18:29:50.969Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-14T18:34:51.959Z", + "endDate": "2026-01-14T18:35:02.459Z", + "value": 0.35, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-14T18:39:54.575Z", + "endDate": "2026-01-14T18:40:09.575Z", + "value": 0.5, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-14T18:44:52.421Z", + "endDate": "2026-01-14T18:44:59.921Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-14T18:49:48.077Z", + "endDate": "2026-01-14T18:49:53.077Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-14T18:54:47.812Z", + "endDate": "2026-01-14T18:54:58.312Z", + "value": 0.35, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-14T18:59:47.759Z", + "endDate": "2026-01-14T18:59:53.759Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T19:00:00Z", + "endDate": "2026-01-14T19:04:45.622Z", + "value": 0.95, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T19:04:45.623Z", + "endDate": "2026-01-14T19:09:48.492Z", + "value": 0.4, + "unit": "U/hour", + "scheduledBasalRate": 0.4, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T19:09:48.492Z", + "endDate": "2026-01-14T19:09:48.500Z", + "value": 0.95, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T19:09:48.5Z", + "endDate": "2026-01-14T19:14:48.465Z", + "value": 0.25, + "unit": "U/hour", + "scheduledBasalRate": 0.25, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T19:14:48.466Z", + "endDate": "2026-01-14T19:14:48.467Z", + "value": 0.95, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T19:14:48.467Z", + "endDate": "2026-01-14T19:29:46.236Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T19:29:46.237Z", + "endDate": "2026-01-14T19:29:46.242Z", + "value": 0.95, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T19:29:46.242Z", + "endDate": "2026-01-14T19:34:48.491Z", + "value": 0.45, + "unit": "U/hour", + "scheduledBasalRate": 0.45, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T19:34:48.492Z", + "endDate": "2026-01-14T19:34:48.496Z", + "value": 0.95, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T19:34:48.496Z", + "endDate": "2026-01-14T19:44:46.795Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T19:44:46.795Z", + "endDate": "2026-01-14T19:44:46.798Z", + "value": 0.95, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T19:44:46.799Z", + "endDate": "2026-01-14T19:49:47.087Z", + "value": 0.25, + "unit": "U/hour", + "scheduledBasalRate": 0.25, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T19:49:47.088Z", + "endDate": "2026-01-14T20:49:47.188Z", + "value": 0.95, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-14T19:54:46.598Z", + "endDate": "2026-01-14T19:54:51.598Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-14T19:59:47.987Z", + "endDate": "2026-01-14T19:59:52.987Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-14T20:04:48.366Z", + "endDate": "2026-01-14T20:04:53.366Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-14T20:09:47.321Z", + "endDate": "2026-01-14T20:09:52.321Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-14T20:14:45.987Z", + "endDate": "2026-01-14T20:14:50.987Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-14T20:19:46.967Z", + "endDate": "2026-01-14T20:19:51.967Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T20:49:47.188Z", + "endDate": "2026-01-14T20:54:48.926Z", + "value": 0.6, + "unit": "U/hour", + "scheduledBasalRate": 0.6, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T20:54:48.926Z", + "endDate": "2026-01-14T21:19:48.445Z", + "value": 0.95, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-14T20:54:49.541Z", + "endDate": "2026-01-14T20:54:54.541Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-14T20:59:46.047Z", + "endDate": "2026-01-14T20:59:51.047Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-14T21:09:47.842Z", + "endDate": "2026-01-14T21:09:52.842Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T21:19:48.445Z", + "endDate": "2026-01-14T21:24:45.638Z", + "value": 0.75, + "unit": "U/hour", + "scheduledBasalRate": 0.75, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T21:24:45.639Z", + "endDate": "2026-01-14T21:29:45.994Z", + "value": 0.95, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T21:29:45.995Z", + "endDate": "2026-01-14T21:34:52.896Z", + "value": 0.5, + "unit": "U/hour", + "scheduledBasalRate": 0.5, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T21:34:52.896Z", + "endDate": "2026-01-14T21:34:52.898Z", + "value": 0.95, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T21:34:52.899Z", + "endDate": "2026-01-14T21:39:50.063Z", + "value": 0.4, + "unit": "U/hour", + "scheduledBasalRate": 0.4, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T21:39:50.063Z", + "endDate": "2026-01-14T21:39:50.066Z", + "value": 0.95, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T21:39:50.067Z", + "endDate": "2026-01-14T21:44:49.227Z", + "value": 0.5, + "unit": "U/hour", + "scheduledBasalRate": 0.5, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T21:44:49.228Z", + "endDate": "2026-01-14T21:59:46.052Z", + "value": 0.95, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-14T21:49:47.942Z", + "endDate": "2026-01-14T21:49:52.942Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T21:59:46.053Z", + "endDate": "2026-01-14T22:04:45.929Z", + "value": 0.05, + "unit": "U/hour", + "scheduledBasalRate": 0.05, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T22:04:45.929Z", + "endDate": "2026-01-14T22:09:45.975Z", + "value": 0.95, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T22:09:45.975Z", + "endDate": "2026-01-14T22:29:46.091Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T22:29:46.092Z", + "endDate": "2026-01-14T22:29:46.094Z", + "value": 0.95, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T22:29:46.095Z", + "endDate": "2026-01-14T22:49:47.780Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T22:49:47.783Z", + "endDate": "2026-01-14T23:09:48.494Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T22:49:47.78Z", + "endDate": "2026-01-14T22:49:47.783Z", + "value": 0.95, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-14T23:09:48.494Z", + "endDate": "2026-01-15T00:39:46.708Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-14T23:23:35.59Z", + "endDate": "2026-01-14T23:24:20.590Z", + "value": 1.5, + "unit": "U", + "isMutable": false + }, + { + "type": "bolus", + "startDate": "2026-01-14T23:29:49.174Z", + "endDate": "2026-01-14T23:30:20.674Z", + "value": 1.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-14T23:34:48.745Z", + "endDate": "2026-01-14T23:35:02.245Z", + "value": 0.45, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-14T23:39:48.677Z", + "endDate": "2026-01-14T23:39:59.177Z", + "value": 0.35, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-14T23:44:45.982Z", + "endDate": "2026-01-14T23:44:54.982Z", + "value": 0.3, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-14T23:49:48.06Z", + "endDate": "2026-01-14T23:49:53.060Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-14T23:54:48.23Z", + "endDate": "2026-01-14T23:54:53.230Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-14T23:59:50.697Z", + "endDate": "2026-01-15T00:00:02.697Z", + "value": 0.4, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T00:04:54.587Z", + "endDate": "2026-01-15T00:05:09.587Z", + "value": 0.5, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T00:09:47.482Z", + "endDate": "2026-01-15T00:10:00.982Z", + "value": 0.45, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T00:14:47.622Z", + "endDate": "2026-01-15T00:14:59.622Z", + "value": 0.4, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T00:19:56.145Z", + "endDate": "2026-01-15T00:20:17.145Z", + "value": 0.7, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T00:24:47.585Z", + "endDate": "2026-01-15T00:25:04.085Z", + "value": 0.55, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T00:29:49.015Z", + "endDate": "2026-01-15T00:30:01.015Z", + "value": 0.4, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T00:32:47.039Z", + "endDate": "2026-01-15T00:35:05.039Z", + "value": 4.6, + "unit": "U", + "isMutable": false + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T00:39:46.709Z", + "endDate": "2026-01-15T01:04:59.692Z", + "value": 0.9, + "unit": "U/hour", + "scheduledBasalRate": 0.9, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T01:04:59.692Z", + "endDate": "2026-01-15T01:04:59.745Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T01:04:59.745Z", + "endDate": "2026-01-15T01:24:48.422Z", + "value": 0.9, + "unit": "U/hour", + "scheduledBasalRate": 0.9, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T01:24:48.423Z", + "endDate": "2026-01-15T01:24:48.426Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T01:24:48.426Z", + "endDate": "2026-01-15T01:44:47.198Z", + "value": 0.9, + "unit": "U/hour", + "scheduledBasalRate": 0.9, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T01:24:49.652Z", + "endDate": "2026-01-15T01:25:07.652Z", + "value": 0.6, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T01:29:47.695Z", + "endDate": "2026-01-15T01:30:02.695Z", + "value": 0.5, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T01:34:47.594Z", + "endDate": "2026-01-15T01:35:05.594Z", + "value": 0.6, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T01:39:46.428Z", + "endDate": "2026-01-15T01:39:59.928Z", + "value": 0.45, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T01:44:47.199Z", + "endDate": "2026-01-15T01:44:47.204Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T01:44:47.204Z", + "endDate": "2026-01-15T02:05:09.050Z", + "value": 0.9, + "unit": "U/hour", + "scheduledBasalRate": 0.9, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T01:44:51.159Z", + "endDate": "2026-01-15T01:44:57.159Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T01:49:54.791Z", + "endDate": "2026-01-15T01:49:59.791Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T02:05:09.051Z", + "endDate": "2026-01-15T02:05:09.052Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T02:05:09.053Z", + "endDate": "2026-01-15T02:09:51.371Z", + "value": 0.9, + "unit": "U/hour", + "scheduledBasalRate": 0.9, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T02:09:51.371Z", + "endDate": "2026-01-15T02:09:51.372Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T02:09:51.373Z", + "endDate": "2026-01-15T02:20:21.708Z", + "value": 0.9, + "unit": "U/hour", + "scheduledBasalRate": 0.9, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T02:20:21.709Z", + "endDate": "2026-01-15T02:20:21.712Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T02:20:21.712Z", + "endDate": "2026-01-15T02:39:47.219Z", + "value": 0.9, + "unit": "U/hour", + "scheduledBasalRate": 0.9, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T02:29:53.838Z", + "endDate": "2026-01-15T02:30:01.338Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T02:39:47.222Z", + "endDate": "2026-01-15T02:59:57.773Z", + "value": 0.9, + "unit": "U/hour", + "scheduledBasalRate": 0.9, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T02:39:47.22Z", + "endDate": "2026-01-15T02:39:47.222Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T02:39:48.465Z", + "endDate": "2026-01-15T02:40:18.465Z", + "value": 1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T02:44:47.511Z", + "endDate": "2026-01-15T02:45:35.511Z", + "value": 1.6, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T02:50:16.06Z", + "endDate": "2026-01-15T02:50:40.060Z", + "value": 0.8, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T02:54:59.222Z", + "endDate": "2026-01-15T02:55:15.722Z", + "value": 0.55, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T02:59:57.774Z", + "endDate": "2026-01-15T02:59:57.776Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T02:59:57.777Z", + "endDate": "2026-01-15T03:04:52.949Z", + "value": 0.9, + "unit": "U/hour", + "scheduledBasalRate": 0.9, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T02:59:59.334Z", + "endDate": "2026-01-15T03:00:27.834Z", + "value": 0.95, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T03:04:52.952Z", + "endDate": "2026-01-15T03:29:48.055Z", + "value": 0.8, + "unit": "U/hour", + "scheduledBasalRate": 0.8, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T03:04:52.95Z", + "endDate": "2026-01-15T03:04:52.952Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T03:04:54.209Z", + "endDate": "2026-01-15T03:05:16.709Z", + "value": 0.75, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T03:14:47.336Z", + "endDate": "2026-01-15T03:15:05.336Z", + "value": 0.6, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T03:16:13.183Z", + "endDate": "2026-01-15T03:16:49.183Z", + "value": 1.2, + "unit": "U", + "isMutable": false + }, + { + "type": "bolus", + "startDate": "2026-01-15T03:19:54.021Z", + "endDate": "2026-01-15T03:19:59.021Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T03:29:48.056Z", + "endDate": "2026-01-15T03:29:48.058Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T03:29:48.059Z", + "endDate": "2026-01-15T03:39:47.299Z", + "value": 0.8, + "unit": "U/hour", + "scheduledBasalRate": 0.8, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T03:29:49.796Z", + "endDate": "2026-01-15T03:29:54.796Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T03:34:51.766Z", + "endDate": "2026-01-15T03:34:59.266Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T03:39:47.299Z", + "endDate": "2026-01-15T03:39:47.301Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T03:39:47.302Z", + "endDate": "2026-01-15T03:44:46.656Z", + "value": 0.8, + "unit": "U/hour", + "scheduledBasalRate": 0.8, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T03:44:46.657Z", + "endDate": "2026-01-15T03:44:46.659Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T03:44:46.659Z", + "endDate": "2026-01-15T03:49:46.436Z", + "value": 0.8, + "unit": "U/hour", + "scheduledBasalRate": 0.8, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T03:49:46.436Z", + "endDate": "2026-01-15T03:49:46.438Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T03:49:46.439Z", + "endDate": "2026-01-15T03:54:46.484Z", + "value": 0.8, + "unit": "U/hour", + "scheduledBasalRate": 0.8, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T03:54:46.485Z", + "endDate": "2026-01-15T03:54:46.489Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T03:54:46.489Z", + "endDate": "2026-01-15T04:14:58.532Z", + "value": 0.8, + "unit": "U/hour", + "scheduledBasalRate": 0.8, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T04:04:49.862Z", + "endDate": "2026-01-15T04:05:00.362Z", + "value": 0.35, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T04:09:50.127Z", + "endDate": "2026-01-15T04:09:59.127Z", + "value": 0.3, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T04:14:58.533Z", + "endDate": "2026-01-15T04:14:58.536Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T04:14:58.536Z", + "endDate": "2026-01-15T04:34:47.916Z", + "value": 0.8, + "unit": "U/hour", + "scheduledBasalRate": 0.8, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T04:14:59.823Z", + "endDate": "2026-01-15T04:15:11.823Z", + "value": 0.4, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T04:19:48.429Z", + "endDate": "2026-01-15T04:20:00.429Z", + "value": 0.4, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T04:24:55.153Z", + "endDate": "2026-01-15T04:25:07.153Z", + "value": 0.4, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T04:29:46.426Z", + "endDate": "2026-01-15T04:29:56.926Z", + "value": 0.35, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T04:34:47.916Z", + "endDate": "2026-01-15T04:34:47.919Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T04:34:47.92Z", + "endDate": "2026-01-15T04:39:47.202Z", + "value": 0.8, + "unit": "U/hour", + "scheduledBasalRate": 0.8, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T04:39:47.202Z", + "endDate": "2026-01-15T04:39:47.207Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T04:39:47.208Z", + "endDate": "2026-01-15T04:54:48.168Z", + "value": 0.8, + "unit": "U/hour", + "scheduledBasalRate": 0.8, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T04:44:46.191Z", + "endDate": "2026-01-15T04:44:52.191Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T04:54:48.168Z", + "endDate": "2026-01-15T04:54:48.170Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T04:54:48.17Z", + "endDate": "2026-01-15T05:14:46.134Z", + "value": 0.8, + "unit": "U/hour", + "scheduledBasalRate": 0.8, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T04:59:46.341Z", + "endDate": "2026-01-15T04:59:53.841Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T05:04:46.227Z", + "endDate": "2026-01-15T05:04:51.227Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T05:09:48.665Z", + "endDate": "2026-01-15T05:09:53.665Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T05:14:46.135Z", + "endDate": "2026-01-15T05:14:46.138Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T05:14:46.138Z", + "endDate": "2026-01-15T05:34:46.298Z", + "value": 0.8, + "unit": "U/hour", + "scheduledBasalRate": 0.8, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T05:14:47.499Z", + "endDate": "2026-01-15T05:14:52.499Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T05:19:48.328Z", + "endDate": "2026-01-15T05:19:54.328Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T05:34:46.299Z", + "endDate": "2026-01-15T05:39:46.947Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T05:34:47.257Z", + "endDate": "2026-01-15T05:34:52.257Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T05:39:46.947Z", + "endDate": "2026-01-15T05:44:46.607Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T05:44:46.607Z", + "endDate": "2026-01-15T06:09:45.772Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T05:44:47.388Z", + "endDate": "2026-01-15T05:44:52.388Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T05:49:48.819Z", + "endDate": "2026-01-15T05:49:53.819Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T05:59:46.292Z", + "endDate": "2026-01-15T05:59:51.292Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T06:04:46.853Z", + "endDate": "2026-01-15T06:04:51.853Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T06:09:45.773Z", + "endDate": "2026-01-15T06:14:47.294Z", + "value": 0.5, + "unit": "U/hour", + "scheduledBasalRate": 0.5, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T06:14:47.294Z", + "endDate": "2026-01-15T06:14:47.297Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T06:14:47.297Z", + "endDate": "2026-01-15T06:19:47.403Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T06:19:47.403Z", + "endDate": "2026-01-15T06:59:59.999Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T06:24:46.264Z", + "endDate": "2026-01-15T06:24:52.264Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T06:29:48.218Z", + "endDate": "2026-01-15T06:29:53.218Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T06:34:48.393Z", + "endDate": "2026-01-15T06:34:53.393Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T06:39:46.37Z", + "endDate": "2026-01-15T06:39:51.370Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T06:44:46.313Z", + "endDate": "2026-01-15T06:44:51.313Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T06:49:48.25Z", + "endDate": "2026-01-15T06:49:53.250Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T06:54:49.242Z", + "endDate": "2026-01-15T06:54:54.242Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T06:59:49.033Z", + "endDate": "2026-01-15T06:59:54.033Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T07:00:00Z", + "endDate": "2026-01-15T07:49:47.845Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T07:04:48.467Z", + "endDate": "2026-01-15T07:04:53.467Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T07:09:47.045Z", + "endDate": "2026-01-15T07:09:52.045Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T07:14:49.355Z", + "endDate": "2026-01-15T07:14:54.355Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T07:19:48.382Z", + "endDate": "2026-01-15T07:19:53.382Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T07:24:47.996Z", + "endDate": "2026-01-15T07:24:52.996Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T07:29:48.191Z", + "endDate": "2026-01-15T07:29:53.191Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T07:34:46.967Z", + "endDate": "2026-01-15T07:34:51.967Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T07:39:48.426Z", + "endDate": "2026-01-15T07:39:53.426Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T07:49:47.845Z", + "endDate": "2026-01-15T07:54:46.680Z", + "value": 0.2, + "unit": "U/hour", + "scheduledBasalRate": 0.2, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T07:54:46.681Z", + "endDate": "2026-01-15T07:54:46.701Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T07:54:46.702Z", + "endDate": "2026-01-15T08:09:48.156Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T08:09:48.156Z", + "endDate": "2026-01-15T08:24:48.597Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T08:09:49.131Z", + "endDate": "2026-01-15T08:09:55.131Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T08:14:49.539Z", + "endDate": "2026-01-15T08:14:55.539Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T08:24:48.597Z", + "endDate": "2026-01-15T08:29:47.264Z", + "value": 0.3, + "unit": "U/hour", + "scheduledBasalRate": 0.3, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T08:29:47.265Z", + "endDate": "2026-01-15T08:29:47.268Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T08:29:47.268Z", + "endDate": "2026-01-15T08:34:47.851Z", + "value": 0.45, + "unit": "U/hour", + "scheduledBasalRate": 0.45, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T08:34:47.852Z", + "endDate": "2026-01-15T08:44:46.896Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T08:44:46.896Z", + "endDate": "2026-01-15T08:49:47.062Z", + "value": 0.35, + "unit": "U/hour", + "scheduledBasalRate": 0.35, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T08:49:47.063Z", + "endDate": "2026-01-15T08:49:47.067Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T08:49:47.067Z", + "endDate": "2026-01-15T08:54:48.536Z", + "value": 0.3, + "unit": "U/hour", + "scheduledBasalRate": 0.3, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T08:54:48.536Z", + "endDate": "2026-01-15T08:54:48.538Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T08:54:48.539Z", + "endDate": "2026-01-15T08:59:48.067Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T08:59:48.068Z", + "endDate": "2026-01-15T08:59:48.070Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T08:59:48.071Z", + "endDate": "2026-01-15T09:04:46.467Z", + "value": 0.55, + "unit": "U/hour", + "scheduledBasalRate": 0.55, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T09:04:46.467Z", + "endDate": "2026-01-15T09:09:47.579Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T09:09:47.58Z", + "endDate": "2026-01-15T09:14:46.431Z", + "value": 0.25, + "unit": "U/hour", + "scheduledBasalRate": 0.25, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T09:14:46.431Z", + "endDate": "2026-01-15T09:14:46.434Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T09:14:46.434Z", + "endDate": "2026-01-15T09:34:47.330Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T09:34:47.334Z", + "endDate": "2026-01-15T09:49:47.070Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T09:34:47.33Z", + "endDate": "2026-01-15T09:34:47.333Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T09:49:47.07Z", + "endDate": "2026-01-15T09:59:46.413Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T09:59:46.414Z", + "endDate": "2026-01-15T10:14:46.398Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T10:14:46.398Z", + "endDate": "2026-01-15T10:24:47.064Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T10:24:47.065Z", + "endDate": "2026-01-15T10:44:48.477Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T10:44:48.477Z", + "endDate": "2026-01-15T10:44:48.481Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T10:44:48.481Z", + "endDate": "2026-01-15T10:49:47.610Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T10:49:47.611Z", + "endDate": "2026-01-15T11:29:49.156Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T11:29:49.157Z", + "endDate": "2026-01-15T11:39:48.714Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T11:39:48.714Z", + "endDate": "2026-01-15T12:14:48.036Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T12:14:48.036Z", + "endDate": "2026-01-15T12:29:49.515Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T12:29:49.516Z", + "endDate": "2026-01-15T12:49:47.967Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T12:49:47.968Z", + "endDate": "2026-01-15T12:54:47.890Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T12:54:47.89Z", + "endDate": "2026-01-15T13:29:48.115Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T13:09:48.081Z", + "endDate": "2026-01-15T13:09:57.081Z", + "value": 0.3, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T13:14:47.561Z", + "endDate": "2026-01-15T13:14:53.561Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T13:19:47.322Z", + "endDate": "2026-01-15T13:19:52.322Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T13:29:48.116Z", + "endDate": "2026-01-15T13:34:48.889Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T13:34:48.889Z", + "endDate": "2026-01-15T13:34:48.890Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T13:34:48.891Z", + "endDate": "2026-01-15T13:39:47.124Z", + "value": 0.45, + "unit": "U/hour", + "scheduledBasalRate": 0.45, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T13:39:47.125Z", + "endDate": "2026-01-15T13:39:47.128Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T13:39:47.129Z", + "endDate": "2026-01-15T13:44:47.137Z", + "value": 0.7, + "unit": "U/hour", + "scheduledBasalRate": 0.7, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T13:44:47.137Z", + "endDate": "2026-01-15T13:44:47.138Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T13:44:47.138Z", + "endDate": "2026-01-15T13:49:48.195Z", + "value": 0.2, + "unit": "U/hour", + "scheduledBasalRate": 0.2, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T13:49:48.195Z", + "endDate": "2026-01-15T13:49:48.197Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T13:49:48.198Z", + "endDate": "2026-01-15T14:09:49.073Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T14:09:49.074Z", + "endDate": "2026-01-15T14:09:49.076Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T14:09:49.077Z", + "endDate": "2026-01-15T14:24:48.279Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T14:24:48.279Z", + "endDate": "2026-01-15T14:59:47.694Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T14:34:55.221Z", + "endDate": "2026-01-15T14:35:08.721Z", + "value": 0.45, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T14:39:49.362Z", + "endDate": "2026-01-15T14:39:58.362Z", + "value": 0.3, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T14:44:47.851Z", + "endDate": "2026-01-15T14:44:56.851Z", + "value": 0.3, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T14:49:49.251Z", + "endDate": "2026-01-15T14:49:58.251Z", + "value": 0.3, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T14:54:48.215Z", + "endDate": "2026-01-15T14:54:53.215Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T14:59:47.694Z", + "endDate": "2026-01-15T15:19:51.948Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T15:19:51.949Z", + "endDate": "2026-01-15T15:19:51.951Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T15:19:51.952Z", + "endDate": "2026-01-15T15:29:47.823Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T15:29:47.823Z", + "endDate": "2026-01-15T15:29:47.824Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T15:29:47.825Z", + "endDate": "2026-01-15T15:34:53.135Z", + "value": 0.05, + "unit": "U/hour", + "scheduledBasalRate": 0.05, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T15:34:53.136Z", + "endDate": "2026-01-15T15:34:53.138Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T15:34:53.138Z", + "endDate": "2026-01-15T15:39:48.112Z", + "value": 0.55, + "unit": "U/hour", + "scheduledBasalRate": 0.55, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T15:39:48.113Z", + "endDate": "2026-01-15T16:00:00.000Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T15:44:46.762Z", + "endDate": "2026-01-15T15:44:51.762Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T15:49:48.175Z", + "endDate": "2026-01-15T15:49:53.175Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T15:54:48.765Z", + "endDate": "2026-01-15T15:54:53.765Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T15:59:48.332Z", + "endDate": "2026-01-15T15:59:53.332Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T16:00:00Z", + "endDate": "2026-01-15T16:39:49.574Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T16:04:49.126Z", + "endDate": "2026-01-15T16:04:54.126Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T16:09:47.298Z", + "endDate": "2026-01-15T16:09:52.298Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T16:29:53.065Z", + "endDate": "2026-01-15T16:30:02.065Z", + "value": 0.3, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T16:34:51.193Z", + "endDate": "2026-01-15T16:35:00.193Z", + "value": 0.3, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T16:39:49.574Z", + "endDate": "2026-01-15T16:44:47.812Z", + "value": 0.25, + "unit": "U/hour", + "scheduledBasalRate": 0.25, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T16:44:47.813Z", + "endDate": "2026-01-15T16:44:47.815Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T16:44:47.815Z", + "endDate": "2026-01-15T16:59:50.187Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T16:59:50.188Z", + "endDate": "2026-01-15T16:59:50.191Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T16:59:50.191Z", + "endDate": "2026-01-15T17:04:54.439Z", + "value": 0.1, + "unit": "U/hour", + "scheduledBasalRate": 0.1, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T17:04:54.44Z", + "endDate": "2026-01-15T17:49:50.453Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T17:04:55.07Z", + "endDate": "2026-01-15T17:05:04.070Z", + "value": 0.3, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T17:09:53.352Z", + "endDate": "2026-01-15T17:09:58.352Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T17:19:52Z", + "endDate": "2026-01-15T17:19:57.000Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T17:24:47.28Z", + "endDate": "2026-01-15T17:24:52.280Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T17:29:47.778Z", + "endDate": "2026-01-15T17:29:52.778Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T17:49:50.454Z", + "endDate": "2026-01-15T17:54:48.403Z", + "value": 0.55, + "unit": "U/hour", + "scheduledBasalRate": 0.55, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T17:54:48.404Z", + "endDate": "2026-01-15T17:54:48.406Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T17:54:48.407Z", + "endDate": "2026-01-15T17:59:49.745Z", + "value": 0.6, + "unit": "U/hour", + "scheduledBasalRate": 0.6, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T17:59:49.745Z", + "endDate": "2026-01-15T18:14:48.119Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T18:04:47.513Z", + "endDate": "2026-01-15T18:04:52.513Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T18:14:48.12Z", + "endDate": "2026-01-15T18:19:52.765Z", + "value": 0.45, + "unit": "U/hour", + "scheduledBasalRate": 0.45, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T18:19:52.765Z", + "endDate": "2026-01-15T18:59:47.722Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T18:24:50.279Z", + "endDate": "2026-01-15T18:24:55.279Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T18:29:48.331Z", + "endDate": "2026-01-15T18:29:53.331Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T18:34:49.265Z", + "endDate": "2026-01-15T18:34:54.265Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T18:39:49.348Z", + "endDate": "2026-01-15T18:39:54.348Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T18:44:49.384Z", + "endDate": "2026-01-15T18:44:54.384Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T18:59:47.722Z", + "endDate": "2026-01-15T19:04:51.767Z", + "value": 0.6, + "unit": "U/hour", + "scheduledBasalRate": 0.6, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T19:04:51.768Z", + "endDate": "2026-01-15T19:19:48.680Z", + "value": 0.95, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T19:19:48.681Z", + "endDate": "2026-01-15T19:24:47.329Z", + "value": 0.6, + "unit": "U/hour", + "scheduledBasalRate": 0.6, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T19:24:47.331Z", + "endDate": "2026-01-15T19:29:47.168Z", + "value": 0.25, + "unit": "U/hour", + "scheduledBasalRate": 0.25, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T19:24:47.33Z", + "endDate": "2026-01-15T19:24:47.331Z", + "value": 0.95, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T19:29:47.169Z", + "endDate": "2026-01-15T19:34:51.260Z", + "value": 0.95, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T19:34:51.261Z", + "endDate": "2026-01-15T19:39:47.089Z", + "value": 0.6, + "unit": "U/hour", + "scheduledBasalRate": 0.6, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T19:39:47.09Z", + "endDate": "2026-01-15T20:54:48.411Z", + "value": 0.95, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T19:40:45.501Z", + "endDate": "2026-01-15T19:43:47.001Z", + "value": 6.05, + "unit": "U", + "isMutable": false + }, + { + "type": "bolus", + "startDate": "2026-01-15T20:04:47.864Z", + "endDate": "2026-01-15T20:04:52.864Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T20:09:46.984Z", + "endDate": "2026-01-15T20:09:51.984Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T20:14:48.549Z", + "endDate": "2026-01-15T20:14:53.549Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T20:19:49.455Z", + "endDate": "2026-01-15T20:19:54.455Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T20:24:48.181Z", + "endDate": "2026-01-15T20:24:53.181Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T20:34:47.893Z", + "endDate": "2026-01-15T20:34:52.893Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T20:39:47.891Z", + "endDate": "2026-01-15T20:39:52.891Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T20:44:47.267Z", + "endDate": "2026-01-15T20:44:52.267Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T20:54:48.411Z", + "endDate": "2026-01-15T20:59:47.793Z", + "value": 0.75, + "unit": "U/hour", + "scheduledBasalRate": 0.75, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T20:59:47.793Z", + "endDate": "2026-01-15T21:09:47.013Z", + "value": 0.95, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T21:09:47.014Z", + "endDate": "2026-01-15T21:14:48.222Z", + "value": 0.7, + "unit": "U/hour", + "scheduledBasalRate": 0.7, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T21:14:48.222Z", + "endDate": "2026-01-15T21:14:48.223Z", + "value": 0.95, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T21:14:48.223Z", + "endDate": "2026-01-15T21:19:47.671Z", + "value": 0.65, + "unit": "U/hour", + "scheduledBasalRate": 0.65, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T21:19:47.671Z", + "endDate": "2026-01-15T22:44:46.711Z", + "value": 0.95, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T21:19:48.573Z", + "endDate": "2026-01-15T21:19:53.573Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T21:24:51.052Z", + "endDate": "2026-01-15T21:25:04.552Z", + "value": 0.45, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T21:29:49.227Z", + "endDate": "2026-01-15T21:29:56.727Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T21:39:51.558Z", + "endDate": "2026-01-15T21:39:56.558Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T21:44:47.376Z", + "endDate": "2026-01-15T21:44:59.376Z", + "value": 0.4, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T21:49:48.96Z", + "endDate": "2026-01-15T21:50:02.460Z", + "value": 0.45, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T21:54:48.611Z", + "endDate": "2026-01-15T21:55:05.111Z", + "value": 0.55, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T21:59:48.254Z", + "endDate": "2026-01-15T22:00:18.254Z", + "value": 1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T22:04:49.638Z", + "endDate": "2026-01-15T22:05:19.638Z", + "value": 1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T22:09:47.677Z", + "endDate": "2026-01-15T22:09:59.677Z", + "value": 0.4, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T22:14:50.021Z", + "endDate": "2026-01-15T22:14:55.021Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T22:19:49.725Z", + "endDate": "2026-01-15T22:19:58.725Z", + "value": 0.3, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T22:24:47.314Z", + "endDate": "2026-01-15T22:25:03.814Z", + "value": 0.55, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T22:29:48.097Z", + "endDate": "2026-01-15T22:29:57.097Z", + "value": 0.3, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T22:34:53.276Z", + "endDate": "2026-01-15T22:35:02.276Z", + "value": 0.3, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T22:39:50.2Z", + "endDate": "2026-01-15T22:39:56.200Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T22:44:46.712Z", + "endDate": "2026-01-15T22:59:49.343Z", + "value": 0.95, + "unit": "U/hour", + "scheduledBasalRate": 0.95, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T22:49:47.255Z", + "endDate": "2026-01-15T22:49:52.255Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T22:59:49.343Z", + "endDate": "2026-01-15T22:59:49.346Z", + "value": 0.95, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T22:59:49.347Z", + "endDate": "2026-01-15T23:04:47.572Z", + "value": 0.95, + "unit": "U/hour", + "scheduledBasalRate": 0.95, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T23:04:47.572Z", + "endDate": "2026-01-15T23:04:47.574Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T23:04:47.575Z", + "endDate": "2026-01-15T23:09:47.710Z", + "value": 0.9, + "unit": "U/hour", + "scheduledBasalRate": 0.9, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T23:09:47.712Z", + "endDate": "2026-01-15T23:29:48.303Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T23:09:47.71Z", + "endDate": "2026-01-15T23:09:47.711Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T23:27:01.336Z", + "endDate": "2026-01-15T23:27:38.836Z", + "value": 1.25, + "unit": "U", + "isMutable": false + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T23:29:48.303Z", + "endDate": "2026-01-15T23:49:52.289Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T23:39:51.159Z", + "endDate": "2026-01-15T23:39:56.159Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T23:44:53.861Z", + "endDate": "2026-01-15T23:44:58.861Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T23:49:52.289Z", + "endDate": "2026-01-15T23:59:53.868Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-15T23:59:53.869Z", + "endDate": "2026-01-16T00:14:47.471Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-15T23:59:54.857Z", + "endDate": "2026-01-15T23:59:59.857Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-16T00:05:08.914Z", + "endDate": "2026-01-16T00:05:13.914Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-16T00:09:52.233Z", + "endDate": "2026-01-16T00:09:57.233Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T00:14:47.471Z", + "endDate": "2026-01-16T00:19:47.412Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T00:19:47.412Z", + "endDate": "2026-01-16T00:34:50.877Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T00:34:50.877Z", + "endDate": "2026-01-16T00:39:47.716Z", + "value": 0.25, + "unit": "U/hour", + "scheduledBasalRate": 0.25, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T00:39:47.717Z", + "endDate": "2026-01-16T00:39:47.720Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T00:39:47.72Z", + "endDate": "2026-01-16T00:44:50.045Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T00:44:50.046Z", + "endDate": "2026-01-16T00:49:48.742Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-16T00:44:50.781Z", + "endDate": "2026-01-16T00:44:56.781Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T00:49:48.743Z", + "endDate": "2026-01-16T00:54:50.576Z", + "value": 0.4, + "unit": "U/hour", + "scheduledBasalRate": 0.4, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T00:54:50.577Z", + "endDate": "2026-01-16T00:54:50.579Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T00:54:50.579Z", + "endDate": "2026-01-16T00:59:47.713Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T00:59:47.714Z", + "endDate": "2026-01-16T01:04:50.118Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-16T00:59:48.508Z", + "endDate": "2026-01-16T00:59:53.508Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T01:04:50.119Z", + "endDate": "2026-01-16T01:24:48.650Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T01:24:48.653Z", + "endDate": "2026-01-16T01:29:53.478Z", + "value": 0.6, + "unit": "U/hour", + "scheduledBasalRate": 0.6, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T01:24:48.65Z", + "endDate": "2026-01-16T01:24:48.652Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T01:29:53.478Z", + "endDate": "2026-01-16T02:04:55.198Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-16T01:29:54.573Z", + "endDate": "2026-01-16T01:30:00.573Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-16T01:34:56.102Z", + "endDate": "2026-01-16T01:35:01.102Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-16T01:44:48.207Z", + "endDate": "2026-01-16T01:44:53.207Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-16T01:49:47.304Z", + "endDate": "2026-01-16T01:49:52.304Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-16T01:54:54.816Z", + "endDate": "2026-01-16T01:55:00.816Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T02:04:55.199Z", + "endDate": "2026-01-16T02:09:48.700Z", + "value": 0.15, + "unit": "U/hour", + "scheduledBasalRate": 0.15, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T02:09:48.701Z", + "endDate": "2026-01-16T02:09:48.703Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T02:09:48.703Z", + "endDate": "2026-01-16T02:14:52.326Z", + "value": 0.5, + "unit": "U/hour", + "scheduledBasalRate": 0.5, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T02:14:52.327Z", + "endDate": "2026-01-16T02:14:52.329Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T02:14:52.329Z", + "endDate": "2026-01-16T02:34:57.483Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T02:34:57.484Z", + "endDate": "2026-01-16T02:34:57.487Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T02:34:57.487Z", + "endDate": "2026-01-16T02:54:49.674Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T02:54:49.675Z", + "endDate": "2026-01-16T02:54:49.677Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T02:54:49.678Z", + "endDate": "2026-01-16T03:14:49.459Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T03:14:49.459Z", + "endDate": "2026-01-16T04:49:47.748Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-16T03:39:52.022Z", + "endDate": "2026-01-16T03:40:07.022Z", + "value": 0.5, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-16T03:44:49.473Z", + "endDate": "2026-01-16T03:44:58.473Z", + "value": 0.3, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-16T03:49:47.253Z", + "endDate": "2026-01-16T03:49:53.253Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-16T03:54:50.225Z", + "endDate": "2026-01-16T03:54:55.225Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-16T03:59:50.816Z", + "endDate": "2026-01-16T03:59:55.816Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-16T04:14:47.925Z", + "endDate": "2026-01-16T04:14:52.925Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-16T04:19:49.64Z", + "endDate": "2026-01-16T04:19:54.640Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-16T04:24:50.708Z", + "endDate": "2026-01-16T04:25:01.208Z", + "value": 0.35, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-16T04:29:53.379Z", + "endDate": "2026-01-16T04:30:30.879Z", + "value": 1.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-16T04:34:48.613Z", + "endDate": "2026-01-16T04:35:20.113Z", + "value": 1.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-16T04:39:49.374Z", + "endDate": "2026-01-16T04:40:11.874Z", + "value": 0.75, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-16T04:44:47.93Z", + "endDate": "2026-01-16T04:45:02.930Z", + "value": 0.5, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T04:49:47.748Z", + "endDate": "2026-01-16T04:54:48.086Z", + "value": 0.15, + "unit": "U/hour", + "scheduledBasalRate": 0.15, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T04:54:48.086Z", + "endDate": "2026-01-16T04:54:48.089Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T04:54:48.09Z", + "endDate": "2026-01-16T05:14:49.867Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T05:14:49.867Z", + "endDate": "2026-01-16T05:14:49.870Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T05:14:49.87Z", + "endDate": "2026-01-16T05:34:49.943Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T05:34:49.943Z", + "endDate": "2026-01-16T05:34:49.996Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T05:34:49.997Z", + "endDate": "2026-01-16T05:54:47.566Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T05:54:47.566Z", + "endDate": "2026-01-16T06:04:48.973Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T06:04:48.973Z", + "endDate": "2026-01-16T06:09:47.773Z", + "value": 0.5, + "unit": "U/hour", + "scheduledBasalRate": 0.5, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T06:09:47.774Z", + "endDate": "2026-01-16T06:29:49.907Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-16T06:14:47.79Z", + "endDate": "2026-01-16T06:14:52.790Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-16T06:19:47.961Z", + "endDate": "2026-01-16T06:19:52.961Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-16T06:24:48.24Z", + "endDate": "2026-01-16T06:24:53.240Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T06:29:49.908Z", + "endDate": "2026-01-16T06:39:47.649Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T06:39:47.65Z", + "endDate": "2026-01-16T06:44:47.701Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-16T06:39:48.326Z", + "endDate": "2026-01-16T06:39:53.326Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T06:44:47.701Z", + "endDate": "2026-01-16T06:49:48.023Z", + "value": 0.5, + "unit": "U/hour", + "scheduledBasalRate": 0.5, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T06:49:48.023Z", + "endDate": "2026-01-16T06:59:59.999Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-16T06:49:49.014Z", + "endDate": "2026-01-16T06:49:54.014Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-16T06:54:49.813Z", + "endDate": "2026-01-16T06:54:57.313Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-16T06:59:48.791Z", + "endDate": "2026-01-16T06:59:57.791Z", + "value": 0.3, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T07:00:00Z", + "endDate": "2026-01-16T07:59:47.238Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-16T07:04:48.413Z", + "endDate": "2026-01-16T07:04:55.913Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-16T07:09:48.637Z", + "endDate": "2026-01-16T07:09:53.637Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T07:59:47.238Z", + "endDate": "2026-01-16T08:04:49.495Z", + "value": 0.25, + "unit": "U/hour", + "scheduledBasalRate": 0.25, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T08:04:49.496Z", + "endDate": "2026-01-16T08:04:49.504Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T08:04:49.505Z", + "endDate": "2026-01-16T08:09:49.437Z", + "value": 0.65, + "unit": "U/hour", + "scheduledBasalRate": 0.65, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T08:09:49.437Z", + "endDate": "2026-01-16T08:34:47.700Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-16T08:09:50.112Z", + "endDate": "2026-01-16T08:09:55.112Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-16T08:14:49.498Z", + "endDate": "2026-01-16T08:14:54.498Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-16T08:19:51.175Z", + "endDate": "2026-01-16T08:19:56.175Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-16T08:24:49.018Z", + "endDate": "2026-01-16T08:24:54.018Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T08:34:47.7Z", + "endDate": "2026-01-16T08:39:47.761Z", + "value": 0.65, + "unit": "U/hour", + "scheduledBasalRate": 0.65, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T08:39:47.762Z", + "endDate": "2026-01-16T08:54:48.465Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-16T08:44:49.368Z", + "endDate": "2026-01-16T08:44:54.368Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-16T08:49:49.177Z", + "endDate": "2026-01-16T08:49:54.177Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T08:54:48.466Z", + "endDate": "2026-01-16T08:59:48.651Z", + "value": 0.5, + "unit": "U/hour", + "scheduledBasalRate": 0.5, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T08:59:48.651Z", + "endDate": "2026-01-16T08:59:48.653Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T08:59:48.654Z", + "endDate": "2026-01-16T09:04:53.273Z", + "value": 0.6, + "unit": "U/hour", + "scheduledBasalRate": 0.6, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T09:04:53.273Z", + "endDate": "2026-01-16T09:19:48.793Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T09:19:48.794Z", + "endDate": "2026-01-16T09:29:49.113Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T09:29:49.114Z", + "endDate": "2026-01-16T09:29:49.117Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T09:29:49.118Z", + "endDate": "2026-01-16T09:34:47.751Z", + "value": 0.15, + "unit": "U/hour", + "scheduledBasalRate": 0.15, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T09:34:47.751Z", + "endDate": "2026-01-16T10:09:52.045Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-16T09:39:48.007Z", + "endDate": "2026-01-16T09:39:53.007Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-16T09:44:48.835Z", + "endDate": "2026-01-16T09:44:53.835Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T10:09:52.046Z", + "endDate": "2026-01-16T10:14:54.160Z", + "value": 0.5, + "unit": "U/hour", + "scheduledBasalRate": 0.5, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T10:14:54.164Z", + "endDate": "2026-01-16T10:19:49.960Z", + "value": 0.25, + "unit": "U/hour", + "scheduledBasalRate": 0.25, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T10:14:54.16Z", + "endDate": "2026-01-16T10:14:54.163Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T10:19:49.961Z", + "endDate": "2026-01-16T11:14:51.572Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-16T10:24:49.618Z", + "endDate": "2026-01-16T10:24:54.618Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-16T10:44:49.927Z", + "endDate": "2026-01-16T10:44:54.927Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-16T10:49:48.372Z", + "endDate": "2026-01-16T10:49:53.372Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T11:14:51.573Z", + "endDate": "2026-01-16T11:19:48.965Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T11:19:48.966Z", + "endDate": "2026-01-16T11:19:48.969Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T11:19:48.969Z", + "endDate": "2026-01-16T11:24:47.975Z", + "value": 0.15, + "unit": "U/hour", + "scheduledBasalRate": 0.15, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T11:24:47.975Z", + "endDate": "2026-01-16T11:44:50.860Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-16T11:24:48.949Z", + "endDate": "2026-01-16T11:24:53.949Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-16T11:29:48.234Z", + "endDate": "2026-01-16T11:29:53.234Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-16T11:34:49.077Z", + "endDate": "2026-01-16T11:34:54.077Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-16T11:39:48.255Z", + "endDate": "2026-01-16T11:39:53.255Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T11:44:50.861Z", + "endDate": "2026-01-16T11:49:48.752Z", + "value": 0.25, + "unit": "U/hour", + "scheduledBasalRate": 0.25, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T11:49:48.752Z", + "endDate": "2026-01-16T11:49:48.754Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T11:49:48.755Z", + "endDate": "2026-01-16T11:54:48.797Z", + "value": 0.2, + "unit": "U/hour", + "scheduledBasalRate": 0.2, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T11:54:48.797Z", + "endDate": "2026-01-16T11:54:48.799Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T11:54:48.8Z", + "endDate": "2026-01-16T11:59:48.336Z", + "value": 0.35, + "unit": "U/hour", + "scheduledBasalRate": 0.35, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T11:59:48.336Z", + "endDate": "2026-01-16T11:59:48.337Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T11:59:48.338Z", + "endDate": "2026-01-16T12:19:49.410Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T12:19:49.413Z", + "endDate": "2026-01-16T12:29:48.168Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T12:19:49.41Z", + "endDate": "2026-01-16T12:19:49.412Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T12:29:48.168Z", + "endDate": "2026-01-16T12:51:13.454Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-16T12:39:49.461Z", + "endDate": "2026-01-16T12:39:56.961Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-16T12:44:49.764Z", + "endDate": "2026-01-16T12:44:58.764Z", + "value": 0.3, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-16T12:49:49.451Z", + "endDate": "2026-01-16T12:49:56.951Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "suspend", + "startDate": "2026-01-16T12:51:13.455Z", + "endDate": "2026-01-16T14:17:10.222Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr" + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T14:17:10.223Z", + "endDate": "2026-01-16T14:54:48.397Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-16T14:19:48.741Z", + "endDate": "2026-01-16T14:20:18.741Z", + "value": 1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-16T14:24:50.966Z", + "endDate": "2026-01-16T14:25:25.466Z", + "value": 1.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-16T14:29:50.402Z", + "endDate": "2026-01-16T14:30:14.402Z", + "value": 0.8, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-16T14:34:48.768Z", + "endDate": "2026-01-16T14:34:57.768Z", + "value": 0.3, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-16T14:39:49.868Z", + "endDate": "2026-01-16T14:39:57.368Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-16T14:44:49.748Z", + "endDate": "2026-01-16T14:44:54.748Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-16T14:49:49.932Z", + "endDate": "2026-01-16T14:49:54.932Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T14:54:48.397Z", + "endDate": "2026-01-16T14:59:50.758Z", + "value": 0.55, + "unit": "U/hour", + "scheduledBasalRate": 0.55, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T14:59:50.759Z", + "endDate": "2026-01-16T14:59:50.761Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T14:59:50.761Z", + "endDate": "2026-01-16T15:04:50.522Z", + "value": 0.45, + "unit": "U/hour", + "scheduledBasalRate": 0.45, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T15:04:50.522Z", + "endDate": "2026-01-16T15:09:50.372Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T15:09:50.373Z", + "endDate": "2026-01-16T15:14:48.263Z", + "value": 0.9, + "unit": "U/hour", + "scheduledBasalRate": 0.9, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T15:14:48.264Z", + "endDate": "2026-01-16T15:14:48.267Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T15:14:48.268Z", + "endDate": "2026-01-16T15:19:49.828Z", + "value": 0.45, + "unit": "U/hour", + "scheduledBasalRate": 0.45, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T15:19:49.828Z", + "endDate": "2026-01-16T15:19:49.830Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T15:19:49.831Z", + "endDate": "2026-01-16T15:24:50.431Z", + "value": 0.65, + "unit": "U/hour", + "scheduledBasalRate": 0.65, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T15:24:50.432Z", + "endDate": "2026-01-16T15:59:59.999Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-16T15:24:51.185Z", + "endDate": "2026-01-16T15:24:56.185Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-16T15:29:49.131Z", + "endDate": "2026-01-16T15:29:54.131Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-16T15:34:49.913Z", + "endDate": "2026-01-16T15:34:54.913Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-16T15:39:51.642Z", + "endDate": "2026-01-16T15:39:57.642Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-16T15:44:55.537Z", + "endDate": "2026-01-16T15:45:00.537Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-16T15:49:49.445Z", + "endDate": "2026-01-16T15:49:55.445Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-16T15:54:51.064Z", + "endDate": "2026-01-16T15:55:10.564Z", + "value": 0.65, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-16T15:59:50.322Z", + "endDate": "2026-01-16T15:59:55.322Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T16:00:00Z", + "endDate": "2026-01-16T16:04:49.427Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T16:04:49.427Z", + "endDate": "2026-01-16T16:09:49.656Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T16:09:49.656Z", + "endDate": "2026-01-16T16:59:48.056Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-16T16:14:51.111Z", + "endDate": "2026-01-16T16:14:56.111Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-16T16:34:51.787Z", + "endDate": "2026-01-16T16:34:56.787Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-16T16:49:52.396Z", + "endDate": "2026-01-16T16:49:57.396Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T16:59:48.057Z", + "endDate": "2026-01-16T17:09:52.119Z", + "value": 0.5, + "unit": "U/hour", + "scheduledBasalRate": 0.5, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T17:09:52.12Z", + "endDate": "2026-01-16T17:14:49.106Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-16T17:09:52.964Z", + "endDate": "2026-01-16T17:09:57.964Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T17:14:49.106Z", + "endDate": "2026-01-16T17:14:50.533Z", + "value": 0.4, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T17:14:50.534Z", + "endDate": "2026-01-16T17:19:50.676Z", + "value": 0.8, + "unit": "U/hour", + "scheduledBasalRate": 0.8, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T17:19:50.676Z", + "endDate": "2026-01-16T17:24:48.422Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T17:24:48.423Z", + "endDate": "2026-01-16T17:29:52.528Z", + "value": 0.45, + "unit": "U/hour", + "scheduledBasalRate": 0.45, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T17:29:52.529Z", + "endDate": "2026-01-16T18:49:49.491Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-16T17:34:49.336Z", + "endDate": "2026-01-16T17:34:54.336Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-16T17:39:50.554Z", + "endDate": "2026-01-16T17:39:55.554Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-16T18:19:48.831Z", + "endDate": "2026-01-16T18:19:53.831Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-16T18:24:53.546Z", + "endDate": "2026-01-16T18:24:58.546Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-16T18:29:55.319Z", + "endDate": "2026-01-16T18:30:00.319Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-16T18:34:50.251Z", + "endDate": "2026-01-16T18:34:55.251Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-16T18:39:48.5Z", + "endDate": "2026-01-16T18:39:53.500Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T18:49:49.491Z", + "endDate": "2026-01-16T18:54:48.901Z", + "value": 0.45, + "unit": "U/hour", + "scheduledBasalRate": 0.45, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T18:54:48.902Z", + "endDate": "2026-01-16T18:54:48.905Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T18:54:48.905Z", + "endDate": "2026-01-16T18:59:49.835Z", + "value": 0.6, + "unit": "U/hour", + "scheduledBasalRate": 0.6, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T18:59:49.836Z", + "endDate": "2026-01-16T19:00:00.000Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T19:00:00Z", + "endDate": "2026-01-16T19:59:55.877Z", + "value": 0.95, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-16T19:34:52.41Z", + "endDate": "2026-01-16T19:34:58.410Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-16T19:39:51.138Z", + "endDate": "2026-01-16T19:39:56.138Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-16T19:49:49.212Z", + "endDate": "2026-01-16T19:49:54.212Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-16T19:54:50.366Z", + "endDate": "2026-01-16T19:54:55.366Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T19:59:55.878Z", + "endDate": "2026-01-16T20:04:55.029Z", + "value": 0.75, + "unit": "U/hour", + "scheduledBasalRate": 0.75, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T20:04:55.029Z", + "endDate": "2026-01-16T21:49:48.377Z", + "value": 0.95, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-16T20:04:55.863Z", + "endDate": "2026-01-16T20:05:00.863Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-16T20:09:30.308Z", + "endDate": "2026-01-16T20:13:19.808Z", + "value": 7.65, + "unit": "U", + "isMutable": false + }, + { + "type": "bolus", + "startDate": "2026-01-16T20:40:06.05Z", + "endDate": "2026-01-16T20:40:34.550Z", + "value": 0.95, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-16T20:54:50.585Z", + "endDate": "2026-01-16T20:55:19.085Z", + "value": 0.95, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-16T20:59:48.957Z", + "endDate": "2026-01-16T21:00:21.957Z", + "value": 1.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-16T21:04:48.543Z", + "endDate": "2026-01-16T21:05:20.043Z", + "value": 1.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-16T21:14:50.251Z", + "endDate": "2026-01-16T21:15:14.251Z", + "value": 0.8, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-16T21:19:52.567Z", + "endDate": "2026-01-16T21:20:10.567Z", + "value": 0.6, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-16T21:39:49.482Z", + "endDate": "2026-01-16T21:39:55.482Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-16T21:44:48.71Z", + "endDate": "2026-01-16T21:44:54.710Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T21:49:48.378Z", + "endDate": "2026-01-16T21:54:51.910Z", + "value": 0.3, + "unit": "U/hour", + "scheduledBasalRate": 0.3, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T21:54:51.911Z", + "endDate": "2026-01-16T21:54:51.913Z", + "value": 0.95, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T21:54:51.913Z", + "endDate": "2026-01-16T21:59:50.298Z", + "value": 0.45, + "unit": "U/hour", + "scheduledBasalRate": 0.45, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T21:59:50.298Z", + "endDate": "2026-01-16T22:24:49.465Z", + "value": 0.95, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-16T21:59:50.899Z", + "endDate": "2026-01-16T21:59:56.899Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-16T22:04:50.29Z", + "endDate": "2026-01-16T22:04:56.290Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-16T22:09:51.75Z", + "endDate": "2026-01-16T22:09:56.750Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T22:24:49.465Z", + "endDate": "2026-01-16T22:29:49.829Z", + "value": 0.3, + "unit": "U/hour", + "scheduledBasalRate": 0.3, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T22:29:49.833Z", + "endDate": "2026-01-16T22:39:48.458Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T22:29:49.83Z", + "endDate": "2026-01-16T22:29:49.832Z", + "value": 0.95, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T22:39:48.458Z", + "endDate": "2026-01-16T22:39:48.460Z", + "value": 0.95, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T22:39:48.461Z", + "endDate": "2026-01-16T22:44:48.990Z", + "value": 0.7, + "unit": "U/hour", + "scheduledBasalRate": 0.7, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T22:44:48.99Z", + "endDate": "2026-01-16T23:00:00.000Z", + "value": 0.95, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-16T22:44:49.83Z", + "endDate": "2026-01-16T22:44:54.830Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-16T22:49:49.774Z", + "endDate": "2026-01-16T22:49:54.774Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T23:00:00Z", + "endDate": "2026-01-16T23:49:49.447Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-16T23:04:50.601Z", + "endDate": "2026-01-16T23:04:55.601Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-16T23:09:51.311Z", + "endDate": "2026-01-16T23:09:56.311Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-16T23:14:48.493Z", + "endDate": "2026-01-16T23:14:53.493Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-16T23:19:51.318Z", + "endDate": "2026-01-16T23:20:00.318Z", + "value": 0.3, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-16T23:24:49.868Z", + "endDate": "2026-01-16T23:24:58.868Z", + "value": 0.3, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-16T23:29:49.015Z", + "endDate": "2026-01-16T23:29:54.015Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-16T23:34:51.75Z", + "endDate": "2026-01-16T23:34:59.250Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-16T23:39:48.635Z", + "endDate": "2026-01-16T23:39:56.135Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-16T23:44:52.977Z", + "endDate": "2026-01-16T23:44:57.977Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T23:49:49.447Z", + "endDate": "2026-01-16T23:54:51.782Z", + "value": 0.5, + "unit": "U/hour", + "scheduledBasalRate": 0.5, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T23:54:51.782Z", + "endDate": "2026-01-16T23:54:51.787Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T23:54:51.787Z", + "endDate": "2026-01-16T23:59:49.536Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-16T23:59:49.537Z", + "endDate": "2026-01-17T00:09:51.055Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T00:09:51.056Z", + "endDate": "2026-01-17T00:25:00.409Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T00:25:00.409Z", + "endDate": "2026-01-17T00:25:00.420Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T00:25:00.421Z", + "endDate": "2026-01-17T00:29:52.693Z", + "value": 0.55, + "unit": "U/hour", + "scheduledBasalRate": 0.55, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T00:29:52.693Z", + "endDate": "2026-01-17T00:29:52.696Z", + "value": 0.45, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T00:29:52.697Z", + "endDate": "2026-01-17T00:49:51.897Z", + "value": 0.45, + "unit": "U/hour", + "scheduledBasalRate": 0.45, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T00:49:51.898Z", + "endDate": "2026-01-17T00:49:51.899Z", + "value": 0.45, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T00:49:51.9Z", + "endDate": "2026-01-17T00:54:50.882Z", + "value": 0.45, + "unit": "U/hour", + "scheduledBasalRate": 0.45, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T00:54:50.882Z", + "endDate": "2026-01-17T00:59:56.261Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-17T00:54:51.738Z", + "endDate": "2026-01-17T00:55:00.738Z", + "value": 0.3, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T00:59:56.262Z", + "endDate": "2026-01-17T01:04:52.712Z", + "value": 0.15, + "unit": "U/hour", + "scheduledBasalRate": 0.15, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T01:04:52.712Z", + "endDate": "2026-01-17T01:04:52.715Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T01:04:52.715Z", + "endDate": "2026-01-17T01:09:49.203Z", + "value": 0.2, + "unit": "U/hour", + "scheduledBasalRate": 0.2, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T01:09:49.204Z", + "endDate": "2026-01-17T01:09:49.206Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T01:09:49.206Z", + "endDate": "2026-01-17T01:19:51.906Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T01:19:51.907Z", + "endDate": "2026-01-17T03:00:00.000Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-17T01:24:49.647Z", + "endDate": "2026-01-17T01:24:54.647Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-17T01:29:52.756Z", + "endDate": "2026-01-17T01:29:57.756Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-17T01:34:52.501Z", + "endDate": "2026-01-17T01:34:57.501Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-17T01:39:54.321Z", + "endDate": "2026-01-17T01:39:59.321Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-17T01:44:53.299Z", + "endDate": "2026-01-17T01:44:58.299Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-17T01:49:50.255Z", + "endDate": "2026-01-17T01:49:55.255Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-17T02:00:18.699Z", + "endDate": "2026-01-17T02:02:50.199Z", + "value": 5.05, + "unit": "U", + "isMutable": false + }, + { + "type": "bolus", + "startDate": "2026-01-17T02:19:50.957Z", + "endDate": "2026-01-17T02:20:14.957Z", + "value": 0.8, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-17T02:25:05.27Z", + "endDate": "2026-01-17T02:25:24.770Z", + "value": 0.65, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-17T02:29:50.812Z", + "endDate": "2026-01-17T02:30:08.812Z", + "value": 0.6, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-17T02:34:51.382Z", + "endDate": "2026-01-17T02:35:12.382Z", + "value": 0.7, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T03:00:00Z", + "endDate": "2026-01-17T04:44:49.807Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-17T03:09:55.252Z", + "endDate": "2026-01-17T03:10:19.252Z", + "value": 0.8, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-17T03:44:50.611Z", + "endDate": "2026-01-17T03:45:07.111Z", + "value": 0.55, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-17T03:59:49.321Z", + "endDate": "2026-01-17T03:59:58.321Z", + "value": 0.3, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-17T04:04:50.318Z", + "endDate": "2026-01-17T04:04:57.818Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-17T04:09:50.533Z", + "endDate": "2026-01-17T04:09:55.533Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-17T04:14:49.095Z", + "endDate": "2026-01-17T04:14:54.095Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-17T04:19:51.182Z", + "endDate": "2026-01-17T04:19:56.182Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T04:44:49.807Z", + "endDate": "2026-01-17T04:54:49.378Z", + "value": 0.55, + "unit": "U/hour", + "scheduledBasalRate": 0.55, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T04:54:49.379Z", + "endDate": "2026-01-17T04:54:49.433Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T04:54:49.433Z", + "endDate": "2026-01-17T05:04:49.713Z", + "value": 0.35, + "unit": "U/hour", + "scheduledBasalRate": 0.35, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T05:04:49.714Z", + "endDate": "2026-01-17T05:39:54.465Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-17T05:14:49.38Z", + "endDate": "2026-01-17T05:14:54.380Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-17T05:19:49.146Z", + "endDate": "2026-01-17T05:19:54.146Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-17T05:29:49.934Z", + "endDate": "2026-01-17T05:29:54.934Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-17T05:34:49.222Z", + "endDate": "2026-01-17T05:34:54.222Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T05:39:54.466Z", + "endDate": "2026-01-17T05:44:52.443Z", + "value": 0.55, + "unit": "U/hour", + "scheduledBasalRate": 0.55, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T05:44:52.443Z", + "endDate": "2026-01-17T05:44:52.445Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T05:44:52.446Z", + "endDate": "2026-01-17T05:49:50.784Z", + "value": 0.25, + "unit": "U/hour", + "scheduledBasalRate": 0.25, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T05:49:50.784Z", + "endDate": "2026-01-17T05:49:50.787Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T05:49:50.787Z", + "endDate": "2026-01-17T05:54:49.581Z", + "value": 0.55, + "unit": "U/hour", + "scheduledBasalRate": 0.55, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T05:54:49.581Z", + "endDate": "2026-01-17T06:49:48.771Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-17T05:59:49.931Z", + "endDate": "2026-01-17T05:59:54.931Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-17T06:39:50.646Z", + "endDate": "2026-01-17T06:39:55.646Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T06:49:48.772Z", + "endDate": "2026-01-17T06:54:49.819Z", + "value": 0.25, + "unit": "U/hour", + "scheduledBasalRate": 0.25, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T06:54:49.819Z", + "endDate": "2026-01-17T06:54:49.823Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T06:54:49.824Z", + "endDate": "2026-01-17T07:04:52.261Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T07:04:52.261Z", + "endDate": "2026-01-17T07:14:49.060Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T07:14:49.061Z", + "endDate": "2026-01-17T07:19:49.735Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T07:19:49.735Z", + "endDate": "2026-01-17T07:44:50.225Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-17T07:19:50.501Z", + "endDate": "2026-01-17T07:19:55.501Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-17T07:24:51.196Z", + "endDate": "2026-01-17T07:25:00.196Z", + "value": 0.3, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-17T07:39:50.857Z", + "endDate": "2026-01-17T07:39:55.857Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T07:44:50.226Z", + "endDate": "2026-01-17T07:54:49.795Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T07:54:49.795Z", + "endDate": "2026-01-17T07:59:59.999Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-17T07:54:50.575Z", + "endDate": "2026-01-17T07:54:55.575Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-17T07:59:50.866Z", + "endDate": "2026-01-17T07:59:55.866Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T08:00:00Z", + "endDate": "2026-01-17T08:04:50.436Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T08:04:50.437Z", + "endDate": "2026-01-17T08:09:49.813Z", + "value": 0.6, + "unit": "U/hour", + "scheduledBasalRate": 0.6, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T08:09:49.813Z", + "endDate": "2026-01-17T08:09:49.816Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T08:09:49.816Z", + "endDate": "2026-01-17T08:14:49.128Z", + "value": 0.45, + "unit": "U/hour", + "scheduledBasalRate": 0.45, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T08:14:49.128Z", + "endDate": "2026-01-17T08:29:49.329Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-17T08:19:50.587Z", + "endDate": "2026-01-17T08:19:55.587Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-17T08:24:51.987Z", + "endDate": "2026-01-17T08:24:56.987Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T08:29:49.33Z", + "endDate": "2026-01-17T08:34:51.183Z", + "value": 0.7, + "unit": "U/hour", + "scheduledBasalRate": 0.7, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T08:34:51.184Z", + "endDate": "2026-01-17T08:39:50.671Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T08:39:50.671Z", + "endDate": "2026-01-17T08:44:50.172Z", + "value": 0.55, + "unit": "U/hour", + "scheduledBasalRate": 0.55, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T08:44:50.173Z", + "endDate": "2026-01-17T09:29:51.005Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-17T09:09:49.071Z", + "endDate": "2026-01-17T09:09:54.071Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-17T09:19:50.158Z", + "endDate": "2026-01-17T09:19:55.158Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-17T09:24:50.853Z", + "endDate": "2026-01-17T09:24:55.853Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T09:29:51.005Z", + "endDate": "2026-01-17T09:34:49.935Z", + "value": 0.7, + "unit": "U/hour", + "scheduledBasalRate": 0.7, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T09:34:49.935Z", + "endDate": "2026-01-17T09:44:51.277Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T09:44:51.278Z", + "endDate": "2026-01-17T09:49:50.758Z", + "value": 0.3, + "unit": "U/hour", + "scheduledBasalRate": 0.3, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T09:49:50.758Z", + "endDate": "2026-01-17T09:49:50.760Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T09:49:50.761Z", + "endDate": "2026-01-17T10:04:51.776Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T10:04:51.777Z", + "endDate": "2026-01-17T10:09:48.829Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T10:09:48.83Z", + "endDate": "2026-01-17T10:14:50.499Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T10:14:50.5Z", + "endDate": "2026-01-17T10:24:51.924Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-17T10:19:49.843Z", + "endDate": "2026-01-17T10:19:55.843Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T10:24:51.924Z", + "endDate": "2026-01-17T10:34:52.151Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T10:34:52.151Z", + "endDate": "2026-01-17T10:49:49.660Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T10:49:49.661Z", + "endDate": "2026-01-17T11:09:51.588Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T11:09:51.588Z", + "endDate": "2026-01-17T11:09:51.590Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T11:09:51.591Z", + "endDate": "2026-01-17T11:29:49.899Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T11:29:49.903Z", + "endDate": "2026-01-17T11:44:51.369Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T11:29:49.9Z", + "endDate": "2026-01-17T11:29:49.903Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T11:44:51.37Z", + "endDate": "2026-01-17T11:49:50.499Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T11:49:50.499Z", + "endDate": "2026-01-17T11:59:49.379Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T11:59:49.38Z", + "endDate": "2026-01-17T12:04:49.078Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T12:04:49.079Z", + "endDate": "2026-01-17T12:14:50.069Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T12:14:50.069Z", + "endDate": "2026-01-17T12:19:51.595Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T12:19:51.595Z", + "endDate": "2026-01-17T12:39:49.599Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T12:39:49.6Z", + "endDate": "2026-01-17T13:19:49.054Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T13:19:49.054Z", + "endDate": "2026-01-17T13:29:52.110Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T13:29:52.11Z", + "endDate": "2026-01-17T13:39:50.285Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T13:39:50.286Z", + "endDate": "2026-01-17T13:54:51.325Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T13:54:51.326Z", + "endDate": "2026-01-17T14:49:49.439Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-17T14:34:50.837Z", + "endDate": "2026-01-17T14:34:59.837Z", + "value": 0.3, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-17T14:39:51.602Z", + "endDate": "2026-01-17T14:39:56.602Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T14:49:49.439Z", + "endDate": "2026-01-17T14:54:51.562Z", + "value": 0.1, + "unit": "U/hour", + "scheduledBasalRate": 0.1, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T14:54:51.563Z", + "endDate": "2026-01-17T14:54:51.568Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T14:54:51.568Z", + "endDate": "2026-01-17T15:14:51.237Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T15:14:51.237Z", + "endDate": "2026-01-17T15:14:51.242Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T15:14:51.243Z", + "endDate": "2026-01-17T15:34:50.060Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T15:34:50.06Z", + "endDate": "2026-01-17T16:00:00.000Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-17T15:54:52.431Z", + "endDate": "2026-01-17T15:55:01.431Z", + "value": 0.3, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-17T15:59:51.491Z", + "endDate": "2026-01-17T16:00:04.991Z", + "value": 0.45, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T16:00:00Z", + "endDate": "2026-01-17T16:10:01.633Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-17T16:04:49.966Z", + "endDate": "2026-01-17T16:04:57.466Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T16:10:01.633Z", + "endDate": "2026-01-17T16:14:52.929Z", + "value": 0.35, + "unit": "U/hour", + "scheduledBasalRate": 0.35, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T16:14:52.934Z", + "endDate": "2026-01-17T16:19:58.584Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T16:14:52.93Z", + "endDate": "2026-01-17T16:14:52.933Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T16:19:58.584Z", + "endDate": "2026-01-17T16:29:51.172Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-17T16:19:59.349Z", + "endDate": "2026-01-17T16:20:04.349Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-17T16:24:57.219Z", + "endDate": "2026-01-17T16:25:02.219Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T16:29:51.173Z", + "endDate": "2026-01-17T16:49:49.646Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T16:49:49.646Z", + "endDate": "2026-01-17T16:49:49.674Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T16:49:49.675Z", + "endDate": "2026-01-17T16:54:50.664Z", + "value": 0.15, + "unit": "U/hour", + "scheduledBasalRate": 0.15, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T16:54:50.665Z", + "endDate": "2026-01-17T16:54:50.668Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T16:54:50.668Z", + "endDate": "2026-01-17T16:59:52.210Z", + "value": 0.25, + "unit": "U/hour", + "scheduledBasalRate": 0.25, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T16:59:52.211Z", + "endDate": "2026-01-17T17:44:49.492Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-17T17:04:49.934Z", + "endDate": "2026-01-17T17:04:54.934Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-17T17:19:51.845Z", + "endDate": "2026-01-17T17:19:56.845Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-17T17:34:49.947Z", + "endDate": "2026-01-17T17:34:54.947Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-17T17:38:33.974Z", + "endDate": "2026-01-17T17:39:57.974Z", + "value": 2.8, + "unit": "U", + "isMutable": false + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T17:44:49.492Z", + "endDate": "2026-01-17T17:49:50.999Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T17:49:51.002Z", + "endDate": "2026-01-17T17:54:50.930Z", + "value": 0.4, + "unit": "U/hour", + "scheduledBasalRate": 0.4, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T17:49:51Z", + "endDate": "2026-01-17T17:49:51.001Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T17:54:50.93Z", + "endDate": "2026-01-17T18:14:49.113Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-17T17:59:55.21Z", + "endDate": "2026-01-17T18:00:00.210Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-17T18:04:53.894Z", + "endDate": "2026-01-17T18:05:01.394Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-17T18:09:54.916Z", + "endDate": "2026-01-17T18:09:59.916Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T18:14:49.113Z", + "endDate": "2026-01-17T18:34:50.891Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T18:34:50.891Z", + "endDate": "2026-01-17T18:34:50.893Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T18:34:50.894Z", + "endDate": "2026-01-17T18:49:52.004Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T18:49:52.004Z", + "endDate": "2026-01-17T18:54:50.563Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T18:54:50.564Z", + "endDate": "2026-01-17T18:59:50.782Z", + "value": 0.2, + "unit": "U/hour", + "scheduledBasalRate": 0.2, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T18:59:50.782Z", + "endDate": "2026-01-17T18:59:50.784Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T18:59:50.785Z", + "endDate": "2026-01-17T19:14:53.150Z", + "value": 0.3, + "unit": "U/hour", + "scheduledBasalRate": 0.3, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T19:14:53.15Z", + "endDate": "2026-01-17T19:24:51.515Z", + "value": 0.95, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-17T19:14:53.796Z", + "endDate": "2026-01-17T19:14:58.796Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T19:24:51.515Z", + "endDate": "2026-01-17T19:29:51.241Z", + "value": 0.4, + "unit": "U/hour", + "scheduledBasalRate": 0.4, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T19:29:51.242Z", + "endDate": "2026-01-17T19:29:51.245Z", + "value": 0.95, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T19:29:51.245Z", + "endDate": "2026-01-17T19:34:50.613Z", + "value": 0.25, + "unit": "U/hour", + "scheduledBasalRate": 0.25, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T19:34:50.614Z", + "endDate": "2026-01-17T19:34:50.616Z", + "value": 0.95, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T19:34:50.617Z", + "endDate": "2026-01-17T19:39:51.502Z", + "value": 0.6, + "unit": "U/hour", + "scheduledBasalRate": 0.6, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T19:39:51.502Z", + "endDate": "2026-01-17T19:39:51.504Z", + "value": 0.95, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T19:39:51.504Z", + "endDate": "2026-01-17T19:44:50.127Z", + "value": 0.55, + "unit": "U/hour", + "scheduledBasalRate": 0.55, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T19:44:50.128Z", + "endDate": "2026-01-17T20:04:52.275Z", + "value": 0.95, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-17T19:47:57.689Z", + "endDate": "2026-01-17T19:49:44.189Z", + "value": 3.55, + "unit": "U", + "isMutable": false + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T20:04:52.275Z", + "endDate": "2026-01-17T20:14:50.220Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T20:14:50.22Z", + "endDate": "2026-01-17T20:19:50.446Z", + "value": 0.95, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T20:19:50.447Z", + "endDate": "2026-01-17T20:29:52.106Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T20:29:52.107Z", + "endDate": "2026-01-17T20:44:49.456Z", + "value": 0.95, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-17T20:29:52.857Z", + "endDate": "2026-01-17T20:29:57.857Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-17T20:34:51.975Z", + "endDate": "2026-01-17T20:34:57.975Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-17T20:39:50.386Z", + "endDate": "2026-01-17T20:39:55.386Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T20:44:49.456Z", + "endDate": "2026-01-17T20:54:50.291Z", + "value": 0.65, + "unit": "U/hour", + "scheduledBasalRate": 0.65, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T20:54:50.292Z", + "endDate": "2026-01-17T21:19:52.842Z", + "value": 0.95, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T21:19:52.843Z", + "endDate": "2026-01-17T21:24:52.654Z", + "value": 0.45, + "unit": "U/hour", + "scheduledBasalRate": 0.45, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T21:24:52.654Z", + "endDate": "2026-01-17T21:34:53.742Z", + "value": 0.95, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-17T21:24:53.343Z", + "endDate": "2026-01-17T21:24:58.343Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-17T21:29:52.442Z", + "endDate": "2026-01-17T21:29:57.442Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T21:34:53.742Z", + "endDate": "2026-01-17T21:54:52.546Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T21:54:52.546Z", + "endDate": "2026-01-17T21:54:52.548Z", + "value": 0.95, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T21:54:52.549Z", + "endDate": "2026-01-17T21:59:51.179Z", + "value": 0.55, + "unit": "U/hour", + "scheduledBasalRate": 0.55, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T21:59:51.183Z", + "endDate": "2026-01-17T22:04:50.307Z", + "value": 0.35, + "unit": "U/hour", + "scheduledBasalRate": 0.35, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T21:59:51.18Z", + "endDate": "2026-01-17T21:59:51.183Z", + "value": 0.95, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T22:04:50.308Z", + "endDate": "2026-01-17T22:04:50.309Z", + "value": 0.95, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T22:04:50.309Z", + "endDate": "2026-01-17T22:09:50.743Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-17T22:09:08.174Z", + "endDate": "2026-01-17T22:13:48.674Z", + "value": 9.35, + "unit": "U", + "isMutable": false + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T22:09:50.744Z", + "endDate": "2026-01-17T22:59:59.999Z", + "value": 0.95, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-17T22:39:52.05Z", + "endDate": "2026-01-17T22:40:22.050Z", + "value": 1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-17T22:44:50.058Z", + "endDate": "2026-01-17T22:45:08.058Z", + "value": 0.6, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T23:00:00Z", + "endDate": "2026-01-17T23:09:51.304Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T23:09:51.304Z", + "endDate": "2026-01-17T23:24:52.462Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-17T23:24:52.463Z", + "endDate": "2026-01-18T00:44:49.645Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T00:44:49.646Z", + "endDate": "2026-01-18T00:54:50.324Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T00:54:50.324Z", + "endDate": "2026-01-18T01:04:49.698Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T01:04:49.698Z", + "endDate": "2026-01-18T01:09:50.150Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T01:09:50.151Z", + "endDate": "2026-01-18T01:19:49.959Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T01:19:49.959Z", + "endDate": "2026-01-18T01:39:24.937Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "suspend", + "startDate": "2026-01-18T01:39:24.938Z", + "endDate": "2026-01-18T01:39:25.446Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr" + }, + { + "type": "basal", + "startDate": "2026-01-18T01:39:25.446Z", + "endDate": "2026-01-18T01:41:35.229Z", + "value": 1.1, + "unit": "U/hour" + }, + { + "type": "suspend", + "startDate": "2026-01-18T01:41:35.229Z", + "endDate": "2026-01-18T01:41:35.738Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr" + }, + { + "type": "basal", + "startDate": "2026-01-18T01:41:35.739Z", + "endDate": "2026-01-18T01:42:05.364Z", + "value": 1.1, + "unit": "U/hour" + }, + { + "type": "suspend", + "startDate": "2026-01-18T01:42:05.365Z", + "endDate": "2026-01-18T01:42:05.873Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr" + }, + { + "type": "basal", + "startDate": "2026-01-18T01:42:05.874Z", + "endDate": "2026-01-18T01:42:32.485Z", + "value": 1.1, + "unit": "U/hour" + }, + { + "type": "suspend", + "startDate": "2026-01-18T01:42:32.485Z", + "endDate": "2026-01-18T01:42:32.995Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr" + }, + { + "type": "basal", + "startDate": "2026-01-18T01:42:32.996Z", + "endDate": "2026-01-18T01:43:19.345Z", + "value": 1.1, + "unit": "U/hour" + }, + { + "type": "suspend", + "startDate": "2026-01-18T01:43:19.345Z", + "endDate": "2026-01-18T01:43:19.856Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr" + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T01:43:19.857Z", + "endDate": "2026-01-18T02:19:52.133Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-18T02:09:52.964Z", + "endDate": "2026-01-18T02:10:00.464Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-18T02:14:51.394Z", + "endDate": "2026-01-18T02:14:56.394Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T02:19:52.133Z", + "endDate": "2026-01-18T02:24:51.434Z", + "value": 0.6, + "unit": "U/hour", + "scheduledBasalRate": 0.6, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T02:24:51.435Z", + "endDate": "2026-01-18T02:24:51.437Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T02:24:51.438Z", + "endDate": "2026-01-18T02:34:52.989Z", + "value": 0.7, + "unit": "U/hour", + "scheduledBasalRate": 0.7, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T02:34:52.992Z", + "endDate": "2026-01-18T02:44:55.873Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T02:34:52.99Z", + "endDate": "2026-01-18T02:34:52.992Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T02:44:55.873Z", + "endDate": "2026-01-18T02:54:51.913Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-18T02:44:56.504Z", + "endDate": "2026-01-18T02:45:04.004Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-18T02:49:58.182Z", + "endDate": "2026-01-18T02:50:05.682Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T02:54:51.914Z", + "endDate": "2026-01-18T02:59:54.518Z", + "value": 0.9, + "unit": "U/hour", + "scheduledBasalRate": 0.9, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T02:59:54.518Z", + "endDate": "2026-01-18T02:59:54.520Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T02:59:54.521Z", + "endDate": "2026-01-18T03:04:51.126Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T03:04:51.127Z", + "endDate": "2026-01-18T03:04:51.129Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T03:04:51.13Z", + "endDate": "2026-01-18T03:09:50.180Z", + "value": 0.6, + "unit": "U/hour", + "scheduledBasalRate": 0.6, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T03:09:50.18Z", + "endDate": "2026-01-18T03:14:52.760Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-18T03:09:50.944Z", + "endDate": "2026-01-18T03:09:55.944Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T03:14:52.76Z", + "endDate": "2026-01-18T03:19:51.359Z", + "value": 0.2, + "unit": "U/hour", + "scheduledBasalRate": 0.2, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T03:19:51.361Z", + "endDate": "2026-01-18T03:29:52.917Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T03:19:51.36Z", + "endDate": "2026-01-18T03:19:51.361Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T03:29:52.918Z", + "endDate": "2026-01-18T03:39:57.763Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T03:39:57.764Z", + "endDate": "2026-01-18T03:54:50.299Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T03:54:50.3Z", + "endDate": "2026-01-18T03:59:50.356Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T03:59:50.356Z", + "endDate": "2026-01-18T04:19:50.451Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T04:19:50.452Z", + "endDate": "2026-01-18T04:19:50.455Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T04:19:50.455Z", + "endDate": "2026-01-18T04:39:52.552Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T04:39:52.553Z", + "endDate": "2026-01-18T05:14:50.959Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-18T04:59:56.591Z", + "endDate": "2026-01-18T05:00:11.591Z", + "value": 0.5, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-18T05:04:51.39Z", + "endDate": "2026-01-18T05:05:01.890Z", + "value": 0.35, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-18T05:09:51.547Z", + "endDate": "2026-01-18T05:09:56.547Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T05:14:50.959Z", + "endDate": "2026-01-18T05:19:50.473Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T05:19:50.473Z", + "endDate": "2026-01-18T05:19:50.475Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T05:19:50.476Z", + "endDate": "2026-01-18T05:24:50.452Z", + "value": 0.6, + "unit": "U/hour", + "scheduledBasalRate": 0.6, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T05:24:50.452Z", + "endDate": "2026-01-18T05:29:50.149Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-18T05:24:51.067Z", + "endDate": "2026-01-18T05:24:56.067Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T05:29:50.15Z", + "endDate": "2026-01-18T05:34:55.170Z", + "value": 0.85, + "unit": "U/hour", + "scheduledBasalRate": 0.85, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T05:34:55.171Z", + "endDate": "2026-01-18T05:34:55.173Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T05:34:55.173Z", + "endDate": "2026-01-18T05:39:52.353Z", + "value": 0.25, + "unit": "U/hour", + "scheduledBasalRate": 0.25, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T05:39:52.354Z", + "endDate": "2026-01-18T05:49:51.568Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-18T05:39:52.939Z", + "endDate": "2026-01-18T05:39:58.939Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-18T05:44:55.762Z", + "endDate": "2026-01-18T05:45:00.762Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T05:49:51.569Z", + "endDate": "2026-01-18T05:54:51.934Z", + "value": 0.35, + "unit": "U/hour", + "scheduledBasalRate": 0.35, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T05:54:51.935Z", + "endDate": "2026-01-18T07:24:50.149Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-18T05:54:52.564Z", + "endDate": "2026-01-18T05:54:57.564Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-18T05:59:53.74Z", + "endDate": "2026-01-18T05:59:58.740Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-18T06:09:50.395Z", + "endDate": "2026-01-18T06:09:55.395Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-18T06:24:52.475Z", + "endDate": "2026-01-18T06:24:57.475Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-18T07:09:50.691Z", + "endDate": "2026-01-18T07:09:55.691Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-18T07:14:52.401Z", + "endDate": "2026-01-18T07:14:57.401Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-18T07:19:52.358Z", + "endDate": "2026-01-18T07:19:57.358Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T07:24:50.149Z", + "endDate": "2026-01-18T07:29:50.395Z", + "value": 0.3, + "unit": "U/hour", + "scheduledBasalRate": 0.3, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T07:29:50.395Z", + "endDate": "2026-01-18T07:29:50.398Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T07:29:50.398Z", + "endDate": "2026-01-18T07:34:50.650Z", + "value": 0.35, + "unit": "U/hour", + "scheduledBasalRate": 0.35, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T07:34:50.651Z", + "endDate": "2026-01-18T07:59:59.999Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-18T07:34:51.266Z", + "endDate": "2026-01-18T07:34:56.266Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-18T07:39:50.816Z", + "endDate": "2026-01-18T07:39:55.816Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-18T07:44:51.686Z", + "endDate": "2026-01-18T07:44:56.686Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-18T07:49:52.376Z", + "endDate": "2026-01-18T07:49:57.376Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-18T07:59:52.079Z", + "endDate": "2026-01-18T07:59:57.079Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T08:00:00Z", + "endDate": "2026-01-18T08:14:50.255Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-18T08:09:50.586Z", + "endDate": "2026-01-18T08:09:55.586Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T08:14:50.255Z", + "endDate": "2026-01-18T08:19:52.970Z", + "value": 0.35, + "unit": "U/hour", + "scheduledBasalRate": 0.35, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T08:19:52.971Z", + "endDate": "2026-01-18T08:19:52.973Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T08:19:52.973Z", + "endDate": "2026-01-18T08:24:52.658Z", + "value": 0.45, + "unit": "U/hour", + "scheduledBasalRate": 0.45, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T08:24:52.659Z", + "endDate": "2026-01-18T08:39:52.032Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-18T08:29:50.605Z", + "endDate": "2026-01-18T08:29:58.105Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T08:39:52.032Z", + "endDate": "2026-01-18T08:59:53.734Z", + "value": 0.3, + "unit": "U/hour", + "scheduledBasalRate": 0.3, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T08:59:53.735Z", + "endDate": "2026-01-18T08:59:53.737Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T08:59:53.737Z", + "endDate": "2026-01-18T09:04:53.179Z", + "value": 0.2, + "unit": "U/hour", + "scheduledBasalRate": 0.2, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T09:04:53.183Z", + "endDate": "2026-01-18T09:09:53.058Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T09:04:53.18Z", + "endDate": "2026-01-18T09:04:53.183Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T09:09:53.059Z", + "endDate": "2026-01-18T09:09:53.062Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T09:09:53.062Z", + "endDate": "2026-01-18T09:14:52.865Z", + "value": 0.1, + "unit": "U/hour", + "scheduledBasalRate": 0.1, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T09:14:52.866Z", + "endDate": "2026-01-18T09:14:52.868Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T09:14:52.869Z", + "endDate": "2026-01-18T09:29:52.225Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T09:29:52.226Z", + "endDate": "2026-01-18T10:04:52.512Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-18T09:34:53.484Z", + "endDate": "2026-01-18T09:34:58.484Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-18T09:39:51.475Z", + "endDate": "2026-01-18T09:39:56.475Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-18T09:49:51.086Z", + "endDate": "2026-01-18T09:49:57.086Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-18T09:54:51.749Z", + "endDate": "2026-01-18T09:54:59.249Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T10:04:52.512Z", + "endDate": "2026-01-18T10:09:50.715Z", + "value": 0.1, + "unit": "U/hour", + "scheduledBasalRate": 0.1, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T10:09:50.716Z", + "endDate": "2026-01-18T10:09:50.719Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T10:09:50.719Z", + "endDate": "2026-01-18T10:14:51.255Z", + "value": 0.15, + "unit": "U/hour", + "scheduledBasalRate": 0.15, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T10:14:51.255Z", + "endDate": "2026-01-18T10:14:51.257Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T10:14:51.258Z", + "endDate": "2026-01-18T10:19:52.171Z", + "value": 0.4, + "unit": "U/hour", + "scheduledBasalRate": 0.4, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T10:19:52.171Z", + "endDate": "2026-01-18T10:19:52.173Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T10:19:52.174Z", + "endDate": "2026-01-18T10:24:50.660Z", + "value": 0.25, + "unit": "U/hour", + "scheduledBasalRate": 0.25, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T10:24:50.663Z", + "endDate": "2026-01-18T10:29:51.709Z", + "value": 0.3, + "unit": "U/hour", + "scheduledBasalRate": 0.3, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T10:24:50.66Z", + "endDate": "2026-01-18T10:24:50.662Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T10:29:51.709Z", + "endDate": "2026-01-18T10:29:51.711Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T10:29:51.712Z", + "endDate": "2026-01-18T10:34:51.982Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T10:34:51.982Z", + "endDate": "2026-01-18T11:09:51.465Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-18T10:39:53.271Z", + "endDate": "2026-01-18T10:39:58.271Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T11:09:51.466Z", + "endDate": "2026-01-18T11:14:53.097Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T11:14:53.097Z", + "endDate": "2026-01-18T12:29:52.778Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-18T11:14:53.743Z", + "endDate": "2026-01-18T11:14:58.743Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-18T11:29:51.411Z", + "endDate": "2026-01-18T11:29:56.411Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-18T11:34:51.068Z", + "endDate": "2026-01-18T11:34:56.068Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-18T11:39:53.007Z", + "endDate": "2026-01-18T11:39:58.007Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-18T11:49:52.325Z", + "endDate": "2026-01-18T11:49:57.325Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-18T11:54:52.914Z", + "endDate": "2026-01-18T11:54:57.914Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T12:29:52.778Z", + "endDate": "2026-01-18T12:34:51.961Z", + "value": 0.25, + "unit": "U/hour", + "scheduledBasalRate": 0.25, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T12:34:51.962Z", + "endDate": "2026-01-18T12:39:52.736Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T12:39:52.736Z", + "endDate": "2026-01-18T12:44:53.271Z", + "value": 0.45, + "unit": "U/hour", + "scheduledBasalRate": 0.45, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T12:44:53.271Z", + "endDate": "2026-01-18T12:59:52.939Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-18T12:44:54.021Z", + "endDate": "2026-01-18T12:44:59.021Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-18T12:49:51.653Z", + "endDate": "2026-01-18T12:49:57.653Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T12:59:52.94Z", + "endDate": "2026-01-18T13:04:55.545Z", + "value": 0.45, + "unit": "U/hour", + "scheduledBasalRate": 0.45, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T13:04:55.545Z", + "endDate": "2026-01-18T13:04:55.547Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T13:04:55.548Z", + "endDate": "2026-01-18T13:09:56.370Z", + "value": 0.4, + "unit": "U/hour", + "scheduledBasalRate": 0.4, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T13:09:56.371Z", + "endDate": "2026-01-18T13:09:56.373Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T13:09:56.373Z", + "endDate": "2026-01-18T13:14:51.047Z", + "value": 0.35, + "unit": "U/hour", + "scheduledBasalRate": 0.35, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T13:14:51.048Z", + "endDate": "2026-01-18T13:14:51.050Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T13:14:51.051Z", + "endDate": "2026-01-18T13:19:53.284Z", + "value": 0.4, + "unit": "U/hour", + "scheduledBasalRate": 0.4, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T13:19:53.284Z", + "endDate": "2026-01-18T13:19:53.286Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T13:19:53.287Z", + "endDate": "2026-01-18T13:39:50.850Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T13:39:50.851Z", + "endDate": "2026-01-18T13:39:50.852Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T13:39:50.852Z", + "endDate": "2026-01-18T13:49:53.750Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T13:49:53.75Z", + "endDate": "2026-01-18T14:39:52.699Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-18T14:09:52.46Z", + "endDate": "2026-01-18T14:09:57.460Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-18T14:14:52.836Z", + "endDate": "2026-01-18T14:14:57.836Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-18T14:19:51.817Z", + "endDate": "2026-01-18T14:19:56.817Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-18T14:24:51.355Z", + "endDate": "2026-01-18T14:24:56.355Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-18T14:29:51.445Z", + "endDate": "2026-01-18T14:29:56.445Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T14:39:52.699Z", + "endDate": "2026-01-18T14:54:53.493Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T14:54:53.494Z", + "endDate": "2026-01-18T14:54:53.497Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T14:54:53.497Z", + "endDate": "2026-01-18T15:04:51.409Z", + "value": 0.15, + "unit": "U/hour", + "scheduledBasalRate": 0.15, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T15:04:51.41Z", + "endDate": "2026-01-18T15:24:51.028Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-18T15:04:52.234Z", + "endDate": "2026-01-18T15:04:57.234Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-18T15:09:53.978Z", + "endDate": "2026-01-18T15:09:59.978Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-18T15:14:52.675Z", + "endDate": "2026-01-18T15:15:00.175Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-18T15:19:53.352Z", + "endDate": "2026-01-18T15:19:58.352Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T15:24:51.028Z", + "endDate": "2026-01-18T15:29:51.333Z", + "value": 0.75, + "unit": "U/hour", + "scheduledBasalRate": 0.75, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T15:29:51.333Z", + "endDate": "2026-01-18T15:34:51.245Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T15:34:51.246Z", + "endDate": "2026-01-18T15:44:51.565Z", + "value": 0.85, + "unit": "U/hour", + "scheduledBasalRate": 0.85, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T15:44:51.565Z", + "endDate": "2026-01-18T15:59:50.783Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-18T15:54:51.274Z", + "endDate": "2026-01-18T15:54:56.274Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T15:59:50.783Z", + "endDate": "2026-01-18T16:04:51.700Z", + "value": 0.9, + "unit": "U/hour", + "scheduledBasalRate": 0.9, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T16:04:51.701Z", + "endDate": "2026-01-18T16:04:51.704Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T16:04:51.705Z", + "endDate": "2026-01-18T16:09:52.127Z", + "value": 0.45, + "unit": "U/hour", + "scheduledBasalRate": 0.45, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T16:09:52.127Z", + "endDate": "2026-01-18T16:29:53.362Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-18T16:14:54.036Z", + "endDate": "2026-01-18T16:14:59.036Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-18T16:19:53.302Z", + "endDate": "2026-01-18T16:19:58.302Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T16:29:53.362Z", + "endDate": "2026-01-18T16:34:53.421Z", + "value": 0.45, + "unit": "U/hour", + "scheduledBasalRate": 0.45, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T16:34:53.422Z", + "endDate": "2026-01-18T16:34:53.425Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T16:34:53.426Z", + "endDate": "2026-01-18T16:39:53.062Z", + "value": 0.5, + "unit": "U/hour", + "scheduledBasalRate": 0.5, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T16:39:53.063Z", + "endDate": "2026-01-18T17:09:52.871Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-18T16:49:52.498Z", + "endDate": "2026-01-18T16:49:57.498Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-18T16:59:52.141Z", + "endDate": "2026-01-18T16:59:59.641Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T17:09:52.871Z", + "endDate": "2026-01-18T17:14:55.431Z", + "value": 0.5, + "unit": "U/hour", + "scheduledBasalRate": 0.5, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T17:14:55.432Z", + "endDate": "2026-01-18T17:27:36.775Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-18T17:14:57.098Z", + "endDate": "2026-01-18T17:15:03.098Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-18T17:24:55.935Z", + "endDate": "2026-01-18T17:25:03.435Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T17:27:36.775Z", + "endDate": "2026-01-18T17:29:53.011Z", + "value": 0.4, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T17:29:53.012Z", + "endDate": "2026-01-18T17:49:54.391Z", + "value": 0.4, + "unit": "U/hour", + "scheduledBasalRate": 0.4, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T17:49:54.391Z", + "endDate": "2026-01-18T17:49:54.392Z", + "value": 0.4, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T17:49:54.393Z", + "endDate": "2026-01-18T18:09:51.865Z", + "value": 0.4, + "unit": "U/hour", + "scheduledBasalRate": 0.4, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-18T17:54:51.59Z", + "endDate": "2026-01-18T17:54:59.090Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-18T17:59:52.176Z", + "endDate": "2026-01-18T17:59:58.176Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T18:09:51.865Z", + "endDate": "2026-01-18T18:09:51.867Z", + "value": 0.4, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T18:09:51.868Z", + "endDate": "2026-01-18T18:29:52.044Z", + "value": 0.4, + "unit": "U/hour", + "scheduledBasalRate": 0.4, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-18T18:14:52.26Z", + "endDate": "2026-01-18T18:14:57.260Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-18T18:19:53.87Z", + "endDate": "2026-01-18T18:19:59.870Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T18:29:52.044Z", + "endDate": "2026-01-18T18:34:51.516Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T18:34:51.516Z", + "endDate": "2026-01-18T18:39:52.720Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T18:39:52.721Z", + "endDate": "2026-01-18T18:44:53.580Z", + "value": 0.6, + "unit": "U/hour", + "scheduledBasalRate": 0.6, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T18:39:52.72Z", + "endDate": "2026-01-18T18:39:52.721Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T18:44:53.581Z", + "endDate": "2026-01-18T18:44:53.583Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T18:44:53.584Z", + "endDate": "2026-01-18T18:50:00.481Z", + "value": 0.35, + "unit": "U/hour", + "scheduledBasalRate": 0.35, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T18:50:00.481Z", + "endDate": "2026-01-18T18:59:51.857Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T18:59:51.857Z", + "endDate": "2026-01-18T19:09:51.704Z", + "value": 0.25, + "unit": "U/hour", + "scheduledBasalRate": 0.25, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T19:09:51.705Z", + "endDate": "2026-01-18T19:34:50.969Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-18T19:09:52.213Z", + "endDate": "2026-01-18T19:09:58.213Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-18T19:14:51.725Z", + "endDate": "2026-01-18T19:14:57.725Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-18T19:19:51.297Z", + "endDate": "2026-01-18T19:19:56.297Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T19:34:50.969Z", + "endDate": "2026-01-18T19:44:52.486Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T19:44:52.487Z", + "endDate": "2026-01-18T19:54:51.029Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-18T19:44:53.192Z", + "endDate": "2026-01-18T19:44:58.192Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T19:54:51.029Z", + "endDate": "2026-01-18T19:59:53.283Z", + "value": 0.55, + "unit": "U/hour", + "scheduledBasalRate": 0.55, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T19:59:53.284Z", + "endDate": "2026-01-18T21:59:59.999Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-18T19:59:53.897Z", + "endDate": "2026-01-18T19:59:58.897Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-18T20:02:45.397Z", + "endDate": "2026-01-18T20:04:40.897Z", + "value": 3.85, + "unit": "U", + "isMutable": false + }, + { + "type": "bolus", + "startDate": "2026-01-18T20:07:00.468Z", + "endDate": "2026-01-18T20:08:34.968Z", + "value": 3.15, + "unit": "U", + "isMutable": false + }, + { + "type": "bolus", + "startDate": "2026-01-18T20:20:02.71Z", + "endDate": "2026-01-18T20:20:26.710Z", + "value": 0.8, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-18T20:24:59.986Z", + "endDate": "2026-01-18T20:25:19.486Z", + "value": 0.65, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-18T20:30:11.275Z", + "endDate": "2026-01-18T20:30:29.275Z", + "value": 0.6, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-18T20:49:55.7Z", + "endDate": "2026-01-18T20:50:16.700Z", + "value": 0.7, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-18T21:29:57.532Z", + "endDate": "2026-01-18T21:30:18.532Z", + "value": 0.7, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-18T21:34:54.081Z", + "endDate": "2026-01-18T21:35:15.081Z", + "value": 0.7, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-18T21:39:51.708Z", + "endDate": "2026-01-18T21:40:09.708Z", + "value": 0.6, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-18T21:50:00.235Z", + "endDate": "2026-01-18T21:50:13.735Z", + "value": 0.45, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-18T21:54:59.546Z", + "endDate": "2026-01-18T21:55:10.046Z", + "value": 0.35, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T22:00:00Z", + "endDate": "2026-01-18T22:19:52.489Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T22:19:52.489Z", + "endDate": "2026-01-18T22:24:52.806Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T22:24:52.807Z", + "endDate": "2026-01-18T23:09:54.287Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-18T22:24:53.468Z", + "endDate": "2026-01-18T22:24:58.468Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-18T22:29:54.144Z", + "endDate": "2026-01-18T22:29:59.144Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-18T22:34:57.355Z", + "endDate": "2026-01-18T22:35:02.355Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-18T22:48:06.868Z", + "endDate": "2026-01-18T22:49:54.868Z", + "value": 3.6, + "unit": "U", + "isMutable": false + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T23:09:54.288Z", + "endDate": "2026-01-18T23:24:54.074Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T23:24:54.075Z", + "endDate": "2026-01-18T23:54:56.922Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T23:54:56.922Z", + "endDate": "2026-01-18T23:59:59.069Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-18T23:59:59.07Z", + "endDate": "2026-01-19T00:34:56.644Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-19T00:14:51.965Z", + "endDate": "2026-01-19T00:14:56.965Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-19T00:19:51.522Z", + "endDate": "2026-01-19T00:19:56.522Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-19T00:24:52.213Z", + "endDate": "2026-01-19T00:24:57.213Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T00:34:56.645Z", + "endDate": "2026-01-19T00:39:54.658Z", + "value": 0.6, + "unit": "U/hour", + "scheduledBasalRate": 0.6, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T00:39:54.658Z", + "endDate": "2026-01-19T00:59:54.739Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-19T00:44:55.168Z", + "endDate": "2026-01-19T00:45:00.168Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T00:59:54.739Z", + "endDate": "2026-01-19T01:04:53.265Z", + "value": 0.7, + "unit": "U/hour", + "scheduledBasalRate": 0.7, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T01:04:53.266Z", + "endDate": "2026-01-19T01:34:56.790Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-19T01:19:44.362Z", + "endDate": "2026-01-19T01:22:17.362Z", + "value": 5.1, + "unit": "U", + "isMutable": false + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T01:34:56.79Z", + "endDate": "2026-01-19T01:54:53.382Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T01:54:53.383Z", + "endDate": "2026-01-19T01:54:53.387Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T01:54:53.387Z", + "endDate": "2026-01-19T01:59:57.511Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T01:59:57.512Z", + "endDate": "2026-01-19T05:09:52.440Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-19T03:05:03.233Z", + "endDate": "2026-01-19T03:05:08.233Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-19T03:09:54.507Z", + "endDate": "2026-01-19T03:09:59.507Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-19T04:44:53.974Z", + "endDate": "2026-01-19T04:45:02.974Z", + "value": 0.3, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-19T04:49:52.349Z", + "endDate": "2026-01-19T04:50:04.349Z", + "value": 0.4, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-19T04:54:52.985Z", + "endDate": "2026-01-19T04:55:18.485Z", + "value": 0.85, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-19T04:59:54.011Z", + "endDate": "2026-01-19T05:00:09.011Z", + "value": 0.5, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T05:09:52.44Z", + "endDate": "2026-01-19T05:14:52.604Z", + "value": 0.1, + "unit": "U/hour", + "scheduledBasalRate": 0.1, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T05:14:52.604Z", + "endDate": "2026-01-19T05:14:52.608Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T05:14:52.608Z", + "endDate": "2026-01-19T05:34:54.152Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T05:34:54.152Z", + "endDate": "2026-01-19T05:34:54.154Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T05:34:54.154Z", + "endDate": "2026-01-19T05:54:51.989Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T05:54:51.993Z", + "endDate": "2026-01-19T05:59:54.365Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T05:54:51.99Z", + "endDate": "2026-01-19T05:54:51.993Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T05:59:54.366Z", + "endDate": "2026-01-19T05:59:54.368Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T05:59:54.368Z", + "endDate": "2026-01-19T06:04:53.368Z", + "value": 0.1, + "unit": "U/hour", + "scheduledBasalRate": 0.1, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T06:04:53.369Z", + "endDate": "2026-01-19T06:04:53.372Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T06:04:53.372Z", + "endDate": "2026-01-19T06:09:54.365Z", + "value": 0.15, + "unit": "U/hour", + "scheduledBasalRate": 0.15, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T06:09:54.366Z", + "endDate": "2026-01-19T06:09:54.369Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T06:09:54.369Z", + "endDate": "2026-01-19T06:19:52.308Z", + "value": 0.05, + "unit": "U/hour", + "scheduledBasalRate": 0.05, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T06:19:52.308Z", + "endDate": "2026-01-19T06:19:52.311Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T06:19:52.312Z", + "endDate": "2026-01-19T06:24:54.379Z", + "value": 0.3, + "unit": "U/hour", + "scheduledBasalRate": 0.3, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T06:24:54.383Z", + "endDate": "2026-01-19T06:34:51.971Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T06:24:54.38Z", + "endDate": "2026-01-19T06:24:54.383Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T06:34:51.971Z", + "endDate": "2026-01-19T06:39:51.702Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T06:39:51.703Z", + "endDate": "2026-01-19T06:44:53.658Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T06:44:53.659Z", + "endDate": "2026-01-19T06:54:53.458Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T06:54:53.458Z", + "endDate": "2026-01-19T07:14:54.017Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T07:14:54.017Z", + "endDate": "2026-01-19T07:19:52.419Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T07:19:52.419Z", + "endDate": "2026-01-19T07:39:52.838Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T07:39:52.838Z", + "endDate": "2026-01-19T07:39:52.843Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T07:39:52.844Z", + "endDate": "2026-01-19T07:59:52.049Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T07:59:52.05Z", + "endDate": "2026-01-19T08:00:00.000Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T08:00:00Z", + "endDate": "2026-01-19T08:09:51.803Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T08:09:51.803Z", + "endDate": "2026-01-19T08:29:53.667Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T08:29:53.667Z", + "endDate": "2026-01-19T08:29:53.668Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T08:29:53.669Z", + "endDate": "2026-01-19T08:39:52.594Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T08:39:52.595Z", + "endDate": "2026-01-19T09:09:54.082Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T09:09:54.082Z", + "endDate": "2026-01-19T09:19:52.150Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T09:19:52.151Z", + "endDate": "2026-01-19T09:59:54.281Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T09:59:54.281Z", + "endDate": "2026-01-19T10:19:54.607Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T10:19:54.607Z", + "endDate": "2026-01-19T10:24:51.826Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T10:24:51.827Z", + "endDate": "2026-01-19T10:44:52.290Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T10:44:52.293Z", + "endDate": "2026-01-19T10:49:53.811Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T10:44:52.29Z", + "endDate": "2026-01-19T10:44:52.293Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T10:49:53.812Z", + "endDate": "2026-01-19T11:39:53.402Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-19T11:24:52.345Z", + "endDate": "2026-01-19T11:25:01.345Z", + "value": 0.3, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T11:39:53.402Z", + "endDate": "2026-01-19T11:59:53.011Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T11:59:53.012Z", + "endDate": "2026-01-19T11:59:53.014Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T11:59:53.014Z", + "endDate": "2026-01-19T12:19:52.388Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T12:19:52.388Z", + "endDate": "2026-01-19T12:19:52.391Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T12:19:52.392Z", + "endDate": "2026-01-19T12:34:54.662Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T12:34:54.662Z", + "endDate": "2026-01-19T13:19:53.569Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-19T13:04:54.347Z", + "endDate": "2026-01-19T13:05:03.347Z", + "value": 0.3, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-19T13:09:54.97Z", + "endDate": "2026-01-19T13:10:03.970Z", + "value": 0.3, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T13:19:53.569Z", + "endDate": "2026-01-19T13:29:52.569Z", + "value": 0.2, + "unit": "U/hour", + "scheduledBasalRate": 0.2, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T13:29:52.569Z", + "endDate": "2026-01-19T13:29:52.571Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T13:29:52.572Z", + "endDate": "2026-01-19T13:34:53.414Z", + "value": 0.25, + "unit": "U/hour", + "scheduledBasalRate": 0.25, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T13:34:53.414Z", + "endDate": "2026-01-19T13:39:54.393Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T13:39:54.393Z", + "endDate": "2026-01-19T13:59:53.411Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T13:59:53.411Z", + "endDate": "2026-01-19T13:59:53.464Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T13:59:53.465Z", + "endDate": "2026-01-19T14:19:53.977Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T14:19:53.978Z", + "endDate": "2026-01-19T14:19:53.981Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T14:19:53.981Z", + "endDate": "2026-01-19T14:29:55.675Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T14:29:55.676Z", + "endDate": "2026-01-19T14:59:59.999Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-19T14:44:52.79Z", + "endDate": "2026-01-19T14:45:01.790Z", + "value": 0.3, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-19T14:49:52.763Z", + "endDate": "2026-01-19T14:49:57.763Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-19T14:54:54.865Z", + "endDate": "2026-01-19T14:54:59.865Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T15:00:00Z", + "endDate": "2026-01-19T15:04:52.028Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T15:04:52.029Z", + "endDate": "2026-01-19T15:24:55.013Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T15:24:55.013Z", + "endDate": "2026-01-19T15:24:55.014Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T15:24:55.014Z", + "endDate": "2026-01-19T15:44:54.573Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T15:44:54.574Z", + "endDate": "2026-01-19T15:44:54.576Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T15:44:54.577Z", + "endDate": "2026-01-19T15:59:55.670Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T15:59:55.67Z", + "endDate": "2026-01-19T15:59:59.999Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T16:00:00Z", + "endDate": "2026-01-19T17:04:54.217Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-19T16:54:53.115Z", + "endDate": "2026-01-19T16:54:59.115Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-19T16:59:53.165Z", + "endDate": "2026-01-19T16:59:58.165Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T17:04:54.218Z", + "endDate": "2026-01-19T17:09:54.150Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T17:09:54.15Z", + "endDate": "2026-01-19T17:19:52.195Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T17:19:52.196Z", + "endDate": "2026-01-19T17:39:52.865Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T17:39:52.866Z", + "endDate": "2026-01-19T17:39:52.868Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T17:39:52.868Z", + "endDate": "2026-01-19T17:45:00.444Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T17:45:00.445Z", + "endDate": "2026-01-19T17:59:55.487Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-19T17:49:59.982Z", + "endDate": "2026-01-19T17:50:04.982Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T17:59:55.487Z", + "endDate": "2026-01-19T18:04:54.115Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T18:04:54.116Z", + "endDate": "2026-01-19T18:39:54.832Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-19T18:09:53.249Z", + "endDate": "2026-01-19T18:10:00.749Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-19T18:14:53.78Z", + "endDate": "2026-01-19T18:14:58.780Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-19T18:34:53.903Z", + "endDate": "2026-01-19T18:34:58.903Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T18:39:54.832Z", + "endDate": "2026-01-19T19:00:10.114Z", + "value": 0.1, + "unit": "U/hour", + "scheduledBasalRate": 0.1, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T19:00:10.114Z", + "endDate": "2026-01-19T19:00:10.118Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T19:00:10.119Z", + "endDate": "2026-01-19T19:14:53.710Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T19:14:53.71Z", + "endDate": "2026-01-19T19:54:53.061Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-19T19:27:10.352Z", + "endDate": "2026-01-19T19:27:41.852Z", + "value": 1.05, + "unit": "U", + "isMutable": false + }, + { + "type": "bolus", + "startDate": "2026-01-19T19:39:53.204Z", + "endDate": "2026-01-19T19:39:58.204Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-19T19:44:53.231Z", + "endDate": "2026-01-19T19:44:58.231Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T19:54:53.061Z", + "endDate": "2026-01-19T20:00:07.541Z", + "value": 0.65, + "unit": "U/hour", + "scheduledBasalRate": 0.65, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T20:00:07.541Z", + "endDate": "2026-01-19T20:00:07.545Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T20:00:07.546Z", + "endDate": "2026-01-19T20:04:54.659Z", + "value": 0.55, + "unit": "U/hour", + "scheduledBasalRate": 0.55, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T20:04:54.66Z", + "endDate": "2026-01-19T20:39:55.753Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-19T20:04:55.238Z", + "endDate": "2026-01-19T20:05:00.238Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-19T20:09:52.782Z", + "endDate": "2026-01-19T20:09:57.782Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-19T20:15:07.932Z", + "endDate": "2026-01-19T20:15:12.932Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-19T20:24:58.325Z", + "endDate": "2026-01-19T20:25:03.325Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-19T20:34:53.715Z", + "endDate": "2026-01-19T20:35:01.215Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T20:39:55.754Z", + "endDate": "2026-01-19T20:40:01.516Z", + "value": 0.5, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T20:40:01.516Z", + "endDate": "2026-01-19T20:44:58.134Z", + "value": 1, + "unit": "U/hour", + "scheduledBasalRate": 1, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T20:44:58.135Z", + "endDate": "2026-01-19T20:44:58.138Z", + "value": 0.5, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T20:44:58.139Z", + "endDate": "2026-01-19T21:04:55.182Z", + "value": 0.5, + "unit": "U/hour", + "scheduledBasalRate": 0.5, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-19T20:49:59.279Z", + "endDate": "2026-01-19T20:50:04.279Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-19T20:59:55.988Z", + "endDate": "2026-01-19T21:00:00.988Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T21:04:55.183Z", + "endDate": "2026-01-19T21:04:55.185Z", + "value": 0.5, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T21:04:55.185Z", + "endDate": "2026-01-19T21:19:53.110Z", + "value": 0.5, + "unit": "U/hour", + "scheduledBasalRate": 0.5, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-19T21:04:56.321Z", + "endDate": "2026-01-19T21:05:01.321Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-19T21:14:53.298Z", + "endDate": "2026-01-19T21:14:58.298Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T21:19:53.11Z", + "endDate": "2026-01-19T21:38:32.356Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-19T21:19:53.991Z", + "endDate": "2026-01-19T21:20:01.491Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-19T21:24:54.955Z", + "endDate": "2026-01-19T21:25:12.955Z", + "value": 0.6, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-19T21:29:54.161Z", + "endDate": "2026-01-19T21:30:06.161Z", + "value": 0.4, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-19T21:34:54.417Z", + "endDate": "2026-01-19T21:34:59.417Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "suspend", + "startDate": "2026-01-19T21:38:32.357Z", + "endDate": "2026-01-19T21:41:02.960Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr" + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T21:41:02.96Z", + "endDate": "2026-01-19T21:59:54.262Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-19T21:44:54.17Z", + "endDate": "2026-01-19T21:44:59.170Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-19T21:49:54.699Z", + "endDate": "2026-01-19T21:50:00.699Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-19T21:54:54.435Z", + "endDate": "2026-01-19T21:54:59.435Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T21:59:54.263Z", + "endDate": "2026-01-19T22:04:56.861Z", + "value": 0.5, + "unit": "U/hour", + "scheduledBasalRate": 0.5, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T22:04:56.861Z", + "endDate": "2026-01-19T22:04:56.864Z", + "value": 0.45, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T22:04:56.865Z", + "endDate": "2026-01-19T22:09:54.950Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T22:09:54.953Z", + "endDate": "2026-01-19T22:20:04.514Z", + "value": 0.45, + "unit": "U/hour", + "scheduledBasalRate": 0.45, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T22:09:54.95Z", + "endDate": "2026-01-19T22:09:54.952Z", + "value": 0.45, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-19T22:14:57.908Z", + "endDate": "2026-01-19T22:15:03.908Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T22:20:04.515Z", + "endDate": "2026-01-19T22:20:04.517Z", + "value": 0.45, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T22:20:04.517Z", + "endDate": "2026-01-19T22:35:04.826Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T22:35:04.827Z", + "endDate": "2026-01-19T22:35:04.829Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T22:35:04.83Z", + "endDate": "2026-01-19T22:39:53.551Z", + "value": 0.65, + "unit": "U/hour", + "scheduledBasalRate": 0.65, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T22:39:53.551Z", + "endDate": "2026-01-19T22:49:56.580Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T22:49:56.581Z", + "endDate": "2026-01-19T22:54:53.491Z", + "value": 0.45, + "unit": "U/hour", + "scheduledBasalRate": 0.45, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T22:54:53.491Z", + "endDate": "2026-01-19T22:54:53.492Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T22:54:53.493Z", + "endDate": "2026-01-19T23:24:53.493Z", + "value": 0.7, + "unit": "U/hour", + "scheduledBasalRate": 0.7, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-19T23:24:53.493Z", + "endDate": "2026-01-20T00:14:54.900Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-19T23:39:55.896Z", + "endDate": "2026-01-19T23:40:00.896Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-20T00:09:55.678Z", + "endDate": "2026-01-20T00:10:00.678Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T00:14:54.901Z", + "endDate": "2026-01-20T00:19:55.401Z", + "value": 0.7, + "unit": "U/hour", + "scheduledBasalRate": 0.7, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T00:19:55.401Z", + "endDate": "2026-01-20T00:19:55.404Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T00:19:55.405Z", + "endDate": "2026-01-20T00:24:55.014Z", + "value": 0.55, + "unit": "U/hour", + "scheduledBasalRate": 0.55, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T00:24:55.014Z", + "endDate": "2026-01-20T00:24:55.016Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T00:24:55.016Z", + "endDate": "2026-01-20T00:30:08.414Z", + "value": 0.65, + "unit": "U/hour", + "scheduledBasalRate": 0.65, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T00:30:08.415Z", + "endDate": "2026-01-20T00:34:54.960Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T00:34:54.96Z", + "endDate": "2026-01-20T00:49:54.155Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T00:49:54.156Z", + "endDate": "2026-01-20T00:49:54.158Z", + "value": 0.45, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T00:49:54.159Z", + "endDate": "2026-01-20T00:59:54.899Z", + "value": 0.45, + "unit": "U/hour", + "scheduledBasalRate": 0.45, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T00:59:54.9Z", + "endDate": "2026-01-20T01:00:00.000Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-20T00:59:55.619Z", + "endDate": "2026-01-20T01:00:03.119Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T01:00:00Z", + "endDate": "2026-01-20T01:55:07.646Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-20T01:04:53.78Z", + "endDate": "2026-01-20T01:04:58.780Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-20T01:14:59.806Z", + "endDate": "2026-01-20T01:15:04.806Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-20T01:19:58.52Z", + "endDate": "2026-01-20T01:20:03.520Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-20T01:25:05.633Z", + "endDate": "2026-01-20T01:25:10.633Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-20T01:29:57.822Z", + "endDate": "2026-01-20T01:30:02.822Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-20T01:34:43.291Z", + "endDate": "2026-01-20T01:36:59.791Z", + "value": 4.55, + "unit": "U", + "isMutable": false + }, + { + "type": "bolus", + "startDate": "2026-01-20T01:39:57.743Z", + "endDate": "2026-01-20T01:40:05.243Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-20T01:44:53.918Z", + "endDate": "2026-01-20T01:44:58.918Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T01:55:07.647Z", + "endDate": "2026-01-20T02:04:55.105Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T02:04:55.105Z", + "endDate": "2026-01-20T02:04:55.160Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T02:04:55.161Z", + "endDate": "2026-01-20T02:09:55.573Z", + "value": 0.6, + "unit": "U/hour", + "scheduledBasalRate": 0.6, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T02:09:55.573Z", + "endDate": "2026-01-20T02:09:55.576Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T02:09:55.577Z", + "endDate": "2026-01-20T02:19:53.649Z", + "value": 0.8, + "unit": "U/hour", + "scheduledBasalRate": 0.8, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T02:19:53.649Z", + "endDate": "2026-01-20T02:19:53.650Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T02:19:53.651Z", + "endDate": "2026-01-20T02:24:53.982Z", + "value": 0.65, + "unit": "U/hour", + "scheduledBasalRate": 0.65, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T02:24:53.982Z", + "endDate": "2026-01-20T02:24:53.986Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T02:24:53.987Z", + "endDate": "2026-01-20T02:29:53.488Z", + "value": 0.7, + "unit": "U/hour", + "scheduledBasalRate": 0.7, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T02:29:53.488Z", + "endDate": "2026-01-20T03:04:53.721Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-20T02:54:57.711Z", + "endDate": "2026-01-20T02:55:02.711Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T03:04:53.721Z", + "endDate": "2026-01-20T03:10:03.983Z", + "value": 0.55, + "unit": "U/hour", + "scheduledBasalRate": 0.55, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T03:10:03.984Z", + "endDate": "2026-01-20T03:24:52.907Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-20T03:10:04.643Z", + "endDate": "2026-01-20T03:10:09.643Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-20T03:14:54.973Z", + "endDate": "2026-01-20T03:14:59.973Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T03:24:52.908Z", + "endDate": "2026-01-20T03:29:53.704Z", + "value": 0.7, + "unit": "U/hour", + "scheduledBasalRate": 0.7, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T03:29:53.704Z", + "endDate": "2026-01-20T04:19:55.731Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-20T03:29:54.32Z", + "endDate": "2026-01-20T03:29:59.320Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-20T03:34:56.466Z", + "endDate": "2026-01-20T03:35:03.966Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-20T03:39:54.399Z", + "endDate": "2026-01-20T03:39:59.399Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-20T03:45:13.032Z", + "endDate": "2026-01-20T03:45:18.032Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-20T03:49:54.06Z", + "endDate": "2026-01-20T03:49:59.060Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-20T03:54:55.5Z", + "endDate": "2026-01-20T03:55:01.500Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-20T03:59:55.232Z", + "endDate": "2026-01-20T04:00:00.232Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-20T04:05:03.452Z", + "endDate": "2026-01-20T04:05:09.452Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-20T04:09:59.347Z", + "endDate": "2026-01-20T04:10:06.847Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-20T04:14:54.634Z", + "endDate": "2026-01-20T04:14:59.634Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T04:19:55.732Z", + "endDate": "2026-01-20T04:24:55.324Z", + "value": 0.6, + "unit": "U/hour", + "scheduledBasalRate": 0.6, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T04:24:55.325Z", + "endDate": "2026-01-20T04:24:55.327Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T04:24:55.328Z", + "endDate": "2026-01-20T04:29:56.256Z", + "value": 0.35, + "unit": "U/hour", + "scheduledBasalRate": 0.35, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T04:29:56.256Z", + "endDate": "2026-01-20T04:39:55.557Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-20T04:34:57.093Z", + "endDate": "2026-01-20T04:35:02.093Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T04:39:55.557Z", + "endDate": "2026-01-20T04:44:56.687Z", + "value": 0.55, + "unit": "U/hour", + "scheduledBasalRate": 0.55, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T04:44:56.688Z", + "endDate": "2026-01-20T04:44:56.690Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T04:44:56.691Z", + "endDate": "2026-01-20T04:49:55.503Z", + "value": 0.6, + "unit": "U/hour", + "scheduledBasalRate": 0.6, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T04:49:55.503Z", + "endDate": "2026-01-20T04:59:53.930Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T04:59:53.93Z", + "endDate": "2026-01-20T05:05:01.385Z", + "value": 0.85, + "unit": "U/hour", + "scheduledBasalRate": 0.85, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T05:05:01.386Z", + "endDate": "2026-01-20T05:30:00.000Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-20T05:05:02.031Z", + "endDate": "2026-01-20T05:05:07.031Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-20T05:09:58.934Z", + "endDate": "2026-01-20T05:10:03.934Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T05:30:00Z", + "endDate": "2026-01-20T05:39:55.688Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T05:39:55.688Z", + "endDate": "2026-01-20T05:44:55.446Z", + "value": 0.4, + "unit": "U/hour", + "scheduledBasalRate": 0.4, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T05:44:55.447Z", + "endDate": "2026-01-20T05:44:55.449Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T05:44:55.449Z", + "endDate": "2026-01-20T05:49:55.471Z", + "value": 0.35, + "unit": "U/hour", + "scheduledBasalRate": 0.35, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T05:49:55.471Z", + "endDate": "2026-01-20T05:49:55.473Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T05:49:55.473Z", + "endDate": "2026-01-20T05:54:56.213Z", + "value": 0.5, + "unit": "U/hour", + "scheduledBasalRate": 0.5, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T05:54:56.214Z", + "endDate": "2026-01-20T05:54:56.216Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T05:54:56.217Z", + "endDate": "2026-01-20T05:59:54.163Z", + "value": 0.3, + "unit": "U/hour", + "scheduledBasalRate": 0.3, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T05:59:54.163Z", + "endDate": "2026-01-20T05:59:54.164Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T05:59:54.164Z", + "endDate": "2026-01-20T06:09:53.460Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T06:09:53.461Z", + "endDate": "2026-01-20T06:19:54.052Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-20T06:09:54.075Z", + "endDate": "2026-01-20T06:09:59.075Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T06:19:54.052Z", + "endDate": "2026-01-20T06:39:55.628Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T06:39:55.629Z", + "endDate": "2026-01-20T06:39:55.682Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T06:39:55.683Z", + "endDate": "2026-01-20T06:59:54.367Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T06:59:54.367Z", + "endDate": "2026-01-20T06:59:54.369Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T06:59:54.369Z", + "endDate": "2026-01-20T07:19:55.022Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T07:19:55.023Z", + "endDate": "2026-01-20T07:24:53.342Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T07:24:53.342Z", + "endDate": "2026-01-20T07:44:56.238Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T07:44:56.238Z", + "endDate": "2026-01-20T07:44:56.239Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T07:44:56.239Z", + "endDate": "2026-01-20T08:04:54.714Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T08:04:54.714Z", + "endDate": "2026-01-20T08:04:54.716Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T08:04:54.717Z", + "endDate": "2026-01-20T08:24:53.713Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T08:24:53.714Z", + "endDate": "2026-01-20T08:24:53.716Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T08:24:53.716Z", + "endDate": "2026-01-20T08:44:53.874Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T08:44:53.875Z", + "endDate": "2026-01-20T08:44:53.875Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T08:44:53.876Z", + "endDate": "2026-01-20T09:04:55.368Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T09:04:55.368Z", + "endDate": "2026-01-20T09:04:55.370Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T09:04:55.371Z", + "endDate": "2026-01-20T09:14:54.268Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T09:14:54.268Z", + "endDate": "2026-01-20T09:24:53.628Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T09:24:53.629Z", + "endDate": "2026-01-20T09:44:55.192Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T09:44:55.192Z", + "endDate": "2026-01-20T09:44:55.195Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T09:44:55.196Z", + "endDate": "2026-01-20T10:04:53.872Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T10:04:53.872Z", + "endDate": "2026-01-20T10:04:53.875Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T10:04:53.875Z", + "endDate": "2026-01-20T10:19:54.843Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T10:19:54.844Z", + "endDate": "2026-01-20T10:24:53.643Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T10:24:53.643Z", + "endDate": "2026-01-20T10:44:54.239Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T10:44:54.239Z", + "endDate": "2026-01-20T10:44:54.241Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T10:44:54.242Z", + "endDate": "2026-01-20T10:59:55.657Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T10:59:55.658Z", + "endDate": "2026-01-20T11:34:55.413Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T11:34:55.413Z", + "endDate": "2026-01-20T11:44:58.198Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T11:44:58.199Z", + "endDate": "2026-01-20T11:54:53.790Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T11:54:53.79Z", + "endDate": "2026-01-20T11:59:56.607Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T11:59:56.608Z", + "endDate": "2026-01-20T12:09:56.164Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T12:09:56.164Z", + "endDate": "2026-01-20T12:19:55.572Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T12:19:55.573Z", + "endDate": "2026-01-20T12:24:55.427Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T12:24:55.428Z", + "endDate": "2026-01-20T12:44:53.793Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T12:44:53.794Z", + "endDate": "2026-01-20T12:44:53.795Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T12:44:53.795Z", + "endDate": "2026-01-20T12:49:55.799Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T12:49:55.8Z", + "endDate": "2026-01-20T13:44:54.218Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T13:44:54.219Z", + "endDate": "2026-01-20T14:04:55.953Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T14:04:55.953Z", + "endDate": "2026-01-20T14:04:55.957Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T14:04:55.957Z", + "endDate": "2026-01-20T14:14:58.551Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T14:14:58.552Z", + "endDate": "2026-01-20T14:50:04.621Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-20T14:24:54.144Z", + "endDate": "2026-01-20T14:25:06.144Z", + "value": 0.4, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-20T14:29:59.558Z", + "endDate": "2026-01-20T14:30:05.558Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-20T14:34:58.165Z", + "endDate": "2026-01-20T14:35:03.165Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-20T14:39:54.175Z", + "endDate": "2026-01-20T14:39:59.175Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T14:50:04.621Z", + "endDate": "2026-01-20T15:00:05.636Z", + "value": 0.45, + "unit": "U/hour", + "scheduledBasalRate": 0.45, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T15:00:05.637Z", + "endDate": "2026-01-20T15:00:05.639Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T15:00:05.639Z", + "endDate": "2026-01-20T15:04:54.600Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T15:04:54.602Z", + "endDate": "2026-01-20T15:09:55.562Z", + "value": 0.3, + "unit": "U/hour", + "scheduledBasalRate": 0.3, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T15:04:54.6Z", + "endDate": "2026-01-20T15:04:54.601Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T15:09:55.562Z", + "endDate": "2026-01-20T15:09:55.563Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T15:09:55.563Z", + "endDate": "2026-01-20T15:14:56.117Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T15:14:56.117Z", + "endDate": "2026-01-20T15:14:56.119Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T15:14:56.12Z", + "endDate": "2026-01-20T15:19:54.140Z", + "value": 0.05, + "unit": "U/hour", + "scheduledBasalRate": 0.05, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T15:19:54.141Z", + "endDate": "2026-01-20T15:19:54.142Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T15:19:54.143Z", + "endDate": "2026-01-20T15:24:56.425Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T15:24:56.426Z", + "endDate": "2026-01-20T15:29:53.952Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T15:29:53.952Z", + "endDate": "2026-01-20T15:34:55.146Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T15:34:55.146Z", + "endDate": "2026-01-20T15:39:53.211Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T15:39:53.211Z", + "endDate": "2026-01-20T15:39:54.489Z", + "value": 0.55, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T15:39:54.49Z", + "endDate": "2026-01-20T15:44:54.571Z", + "value": 1.1, + "unit": "U/hour", + "scheduledBasalRate": 1.1, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T15:44:54.571Z", + "endDate": "2026-01-20T15:59:59.999Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-20T15:44:55.218Z", + "endDate": "2026-01-20T15:45:00.218Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-20T15:54:53.974Z", + "endDate": "2026-01-20T15:54:58.974Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-20T15:59:54.735Z", + "endDate": "2026-01-20T16:00:03.735Z", + "value": 0.3, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T16:00:00Z", + "endDate": "2026-01-20T16:14:55.152Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-20T16:04:56.887Z", + "endDate": "2026-01-20T16:05:04.387Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-20T16:09:57.179Z", + "endDate": "2026-01-20T16:10:02.179Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T16:14:55.152Z", + "endDate": "2026-01-20T16:19:54.289Z", + "value": 0.35, + "unit": "U/hour", + "scheduledBasalRate": 0.35, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T16:19:54.289Z", + "endDate": "2026-01-20T16:19:54.343Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T16:19:54.344Z", + "endDate": "2026-01-20T16:24:56.230Z", + "value": 0.15, + "unit": "U/hour", + "scheduledBasalRate": 0.15, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T16:24:56.232Z", + "endDate": "2026-01-20T16:29:54.115Z", + "value": 0.5, + "unit": "U/hour", + "scheduledBasalRate": 0.5, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T16:24:56.23Z", + "endDate": "2026-01-20T16:24:56.232Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T16:29:54.116Z", + "endDate": "2026-01-20T16:29:54.118Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T16:29:54.118Z", + "endDate": "2026-01-20T16:34:55.409Z", + "value": 0.2, + "unit": "U/hour", + "scheduledBasalRate": 0.2, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T16:34:55.413Z", + "endDate": "2026-01-20T16:44:59.299Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T16:34:55.41Z", + "endDate": "2026-01-20T16:34:55.413Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T16:44:59.299Z", + "endDate": "2026-01-20T16:44:59.302Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T16:44:59.303Z", + "endDate": "2026-01-20T16:49:55.609Z", + "value": 0.25, + "unit": "U/hour", + "scheduledBasalRate": 0.25, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T16:49:55.61Z", + "endDate": "2026-01-20T17:49:59.664Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-20T16:59:54.073Z", + "endDate": "2026-01-20T16:59:59.073Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-20T17:04:55.081Z", + "endDate": "2026-01-20T17:05:00.081Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-20T17:09:56.954Z", + "endDate": "2026-01-20T17:10:01.954Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-20T17:14:54.032Z", + "endDate": "2026-01-20T17:14:59.032Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-20T17:19:59.387Z", + "endDate": "2026-01-20T17:20:05.387Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-20T17:24:56.391Z", + "endDate": "2026-01-20T17:25:01.391Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-20T17:29:53.994Z", + "endDate": "2026-01-20T17:29:58.994Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T17:49:59.664Z", + "endDate": "2026-01-20T17:54:54.142Z", + "value": 0.45, + "unit": "U/hour", + "scheduledBasalRate": 0.45, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T17:54:54.143Z", + "endDate": "2026-01-20T17:54:54.151Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T17:54:54.152Z", + "endDate": "2026-01-20T17:59:55.723Z", + "value": 0.5, + "unit": "U/hour", + "scheduledBasalRate": 0.5, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T17:59:55.723Z", + "endDate": "2026-01-20T17:59:55.725Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T17:59:55.726Z", + "endDate": "2026-01-20T18:09:55.553Z", + "value": 0.4, + "unit": "U/hour", + "scheduledBasalRate": 0.4, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T18:09:55.553Z", + "endDate": "2026-01-20T18:09:55.555Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T18:09:55.555Z", + "endDate": "2026-01-20T18:14:54.882Z", + "value": 0.6, + "unit": "U/hour", + "scheduledBasalRate": 0.6, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T18:14:54.883Z", + "endDate": "2026-01-20T18:14:54.885Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T18:14:54.886Z", + "endDate": "2026-01-20T18:19:54.531Z", + "value": 0.4, + "unit": "U/hour", + "scheduledBasalRate": 0.4, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T18:19:54.531Z", + "endDate": "2026-01-20T19:00:00.000Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T19:00:00Z", + "endDate": "2026-01-20T19:14:53.658Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T19:14:53.658Z", + "endDate": "2026-01-20T19:19:54.335Z", + "value": 0.4, + "unit": "U/hour", + "scheduledBasalRate": 0.4, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T19:19:54.336Z", + "endDate": "2026-01-20T19:29:54.046Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T19:29:54.046Z", + "endDate": "2026-01-20T19:34:54.748Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T19:34:54.748Z", + "endDate": "2026-01-20T20:34:55.166Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-20T19:35:02.234Z", + "endDate": "2026-01-20T19:38:17.234Z", + "value": 6.5, + "unit": "U", + "isMutable": false + }, + { + "type": "bolus", + "startDate": "2026-01-20T20:04:56.734Z", + "endDate": "2026-01-20T20:05:04.234Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-20T20:09:55.119Z", + "endDate": "2026-01-20T20:10:02.619Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-20T20:14:55.86Z", + "endDate": "2026-01-20T20:15:01.860Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-20T20:19:54.812Z", + "endDate": "2026-01-20T20:19:59.812Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-20T20:24:56.241Z", + "endDate": "2026-01-20T20:25:01.241Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T20:34:55.167Z", + "endDate": "2026-01-20T20:39:54.469Z", + "value": 0.6, + "unit": "U/hour", + "scheduledBasalRate": 0.6, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T20:39:54.469Z", + "endDate": "2026-01-20T20:39:54.472Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T20:39:54.473Z", + "endDate": "2026-01-20T20:44:54.285Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T20:44:54.286Z", + "endDate": "2026-01-20T20:44:54.287Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T20:44:54.287Z", + "endDate": "2026-01-20T20:49:55.896Z", + "value": 0.05, + "unit": "U/hour", + "scheduledBasalRate": 0.05, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T20:49:55.897Z", + "endDate": "2026-01-20T20:49:55.898Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T20:49:55.898Z", + "endDate": "2026-01-20T20:54:54.986Z", + "value": 0.55, + "unit": "U/hour", + "scheduledBasalRate": 0.55, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T20:54:54.987Z", + "endDate": "2026-01-20T20:54:54.989Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T20:54:54.989Z", + "endDate": "2026-01-20T20:59:54.853Z", + "value": 0.75, + "unit": "U/hour", + "scheduledBasalRate": 0.75, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T20:59:54.853Z", + "endDate": "2026-01-20T21:09:54.911Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-20T20:59:55.38Z", + "endDate": "2026-01-20T21:00:00.380Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T21:09:54.912Z", + "endDate": "2026-01-20T21:14:55.495Z", + "value": 0.8, + "unit": "U/hour", + "scheduledBasalRate": 0.8, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T21:14:55.495Z", + "endDate": "2026-01-20T21:59:59.999Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-20T21:19:54.208Z", + "endDate": "2026-01-20T21:20:00.208Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-20T21:24:54.577Z", + "endDate": "2026-01-20T21:25:02.077Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-20T21:29:55.089Z", + "endDate": "2026-01-20T21:30:00.089Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-20T21:34:54.913Z", + "endDate": "2026-01-20T21:35:00.913Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-20T21:39:55.547Z", + "endDate": "2026-01-20T21:40:07.547Z", + "value": 0.4, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-20T21:44:54.681Z", + "endDate": "2026-01-20T21:45:06.681Z", + "value": 0.4, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-20T21:49:56.153Z", + "endDate": "2026-01-20T21:50:02.153Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-20T21:54:55.947Z", + "endDate": "2026-01-20T21:55:03.447Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-20T21:59:56.251Z", + "endDate": "2026-01-20T22:00:05.251Z", + "value": 0.3, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T22:00:00Z", + "endDate": "2026-01-20T22:24:56.174Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-20T22:04:56.897Z", + "endDate": "2026-01-20T22:05:04.397Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-20T22:10:00.098Z", + "endDate": "2026-01-20T22:10:05.098Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-20T22:14:55.77Z", + "endDate": "2026-01-20T22:15:03.270Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-20T22:19:55.074Z", + "endDate": "2026-01-20T22:20:00.074Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T22:24:56.174Z", + "endDate": "2026-01-20T22:29:57.318Z", + "value": 0.05, + "unit": "U/hour", + "scheduledBasalRate": 0.05, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T22:29:57.319Z", + "endDate": "2026-01-20T22:29:57.321Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T22:29:57.321Z", + "endDate": "2026-01-20T22:34:55.300Z", + "value": 0.65, + "unit": "U/hour", + "scheduledBasalRate": 0.65, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T22:34:55.301Z", + "endDate": "2026-01-20T22:50:00.223Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-20T22:34:55.944Z", + "endDate": "2026-01-20T22:35:00.944Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-20T22:39:54.792Z", + "endDate": "2026-01-20T22:39:59.792Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T22:50:00.223Z", + "endDate": "2026-01-20T22:54:59.679Z", + "value": 0.45, + "unit": "U/hour", + "scheduledBasalRate": 0.45, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T22:54:59.68Z", + "endDate": "2026-01-20T23:39:55.559Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-20T22:55:00.58Z", + "endDate": "2026-01-20T22:55:05.580Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-20T22:59:54.988Z", + "endDate": "2026-01-20T23:00:00.988Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-20T23:04:56.297Z", + "endDate": "2026-01-20T23:05:01.297Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-20T23:09:55.221Z", + "endDate": "2026-01-20T23:10:00.221Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-20T23:24:56.387Z", + "endDate": "2026-01-20T23:25:01.387Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-20T23:29:54.591Z", + "endDate": "2026-01-20T23:30:02.091Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-20T23:34:58.569Z", + "endDate": "2026-01-20T23:35:03.569Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T23:39:55.56Z", + "endDate": "2026-01-20T23:45:02.008Z", + "value": 0.4, + "unit": "U/hour", + "scheduledBasalRate": 0.4, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T23:45:02.008Z", + "endDate": "2026-01-20T23:50:06.219Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-20T23:50:06.22Z", + "endDate": "2026-01-21T00:09:58.937Z", + "value": 0.7, + "unit": "U/hour", + "scheduledBasalRate": 0.7, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T00:09:58.937Z", + "endDate": "2026-01-21T00:09:58.939Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T00:09:58.94Z", + "endDate": "2026-01-21T00:15:13.788Z", + "value": 0.15, + "unit": "U/hour", + "scheduledBasalRate": 0.15, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T00:15:13.789Z", + "endDate": "2026-01-21T00:15:13.789Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T00:15:13.79Z", + "endDate": "2026-01-21T00:40:57.714Z", + "value": 0.7, + "unit": "U/hour", + "scheduledBasalRate": 0.7, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T00:40:57.714Z", + "endDate": "2026-01-21T00:55:04.429Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-21T00:51:58.891Z", + "endDate": "2026-01-21T00:53:42.391Z", + "value": 3.45, + "unit": "U", + "isMutable": false + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T00:55:04.43Z", + "endDate": "2026-01-21T00:59:56.079Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T00:59:56.079Z", + "endDate": "2026-01-21T00:59:59.999Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T01:00:00Z", + "endDate": "2026-01-21T01:04:54.829Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T01:04:54.83Z", + "endDate": "2026-01-21T01:09:56.219Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T01:09:56.219Z", + "endDate": "2026-01-21T01:44:55.891Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-21T01:14:56.901Z", + "endDate": "2026-01-21T01:15:01.901Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-21T01:19:55.272Z", + "endDate": "2026-01-21T01:20:00.272Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-21T01:24:54.872Z", + "endDate": "2026-01-21T01:24:59.872Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-21T01:40:19.024Z", + "endDate": "2026-01-21T01:41:25.024Z", + "value": 2.2, + "unit": "U", + "isMutable": false + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T01:44:55.891Z", + "endDate": "2026-01-21T01:49:54.961Z", + "value": 0.65, + "unit": "U/hour", + "scheduledBasalRate": 0.65, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T01:49:54.962Z", + "endDate": "2026-01-21T01:49:54.966Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T01:49:54.966Z", + "endDate": "2026-01-21T01:54:54.568Z", + "value": 0.55, + "unit": "U/hour", + "scheduledBasalRate": 0.55, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-21T01:52:54.99Z", + "endDate": "2026-01-21T01:55:33.990Z", + "value": 5.3, + "unit": "U", + "isMutable": false + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T01:54:54.569Z", + "endDate": "2026-01-21T02:54:55.980Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-21T02:05:21.488Z", + "endDate": "2026-01-21T02:07:36.488Z", + "value": 4.5, + "unit": "U", + "isMutable": false + }, + { + "type": "bolus", + "startDate": "2026-01-21T02:34:57.203Z", + "endDate": "2026-01-21T02:35:02.203Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-21T02:39:57.415Z", + "endDate": "2026-01-21T02:40:02.415Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-21T02:44:59.504Z", + "endDate": "2026-01-21T02:45:04.504Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T02:54:55.981Z", + "endDate": "2026-01-21T03:04:58.834Z", + "value": 0.85, + "unit": "U/hour", + "scheduledBasalRate": 0.85, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T03:04:58.834Z", + "endDate": "2026-01-21T03:24:55.909Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T03:24:55.91Z", + "endDate": "2026-01-21T03:30:00.220Z", + "value": 0.6, + "unit": "U/hour", + "scheduledBasalRate": 0.6, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T03:30:00.221Z", + "endDate": "2026-01-21T04:04:57.579Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-21T03:30:00.931Z", + "endDate": "2026-01-21T03:30:05.931Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-21T03:34:55.936Z", + "endDate": "2026-01-21T03:35:00.936Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-21T03:39:58.636Z", + "endDate": "2026-01-21T03:40:03.636Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-21T03:44:57.004Z", + "endDate": "2026-01-21T03:45:02.004Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-21T03:49:59.737Z", + "endDate": "2026-01-21T03:50:04.737Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-21T03:54:57.399Z", + "endDate": "2026-01-21T03:55:02.399Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T04:04:57.579Z", + "endDate": "2026-01-21T04:09:57.645Z", + "value": 0.7, + "unit": "U/hour", + "scheduledBasalRate": 0.7, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T04:09:57.646Z", + "endDate": "2026-01-21T04:09:57.650Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T04:09:57.65Z", + "endDate": "2026-01-21T04:15:01.981Z", + "value": 0.3, + "unit": "U/hour", + "scheduledBasalRate": 0.3, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T04:15:01.981Z", + "endDate": "2026-01-21T04:15:01.982Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T04:15:01.983Z", + "endDate": "2026-01-21T04:19:55.174Z", + "value": 0.1, + "unit": "U/hour", + "scheduledBasalRate": 0.1, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T04:19:55.174Z", + "endDate": "2026-01-21T04:19:55.175Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T04:19:55.175Z", + "endDate": "2026-01-21T04:24:55.235Z", + "value": 0.65, + "unit": "U/hour", + "scheduledBasalRate": 0.65, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T04:24:55.236Z", + "endDate": "2026-01-21T04:24:55.238Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T04:24:55.239Z", + "endDate": "2026-01-21T04:30:07.582Z", + "value": 0.75, + "unit": "U/hour", + "scheduledBasalRate": 0.75, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T04:30:07.582Z", + "endDate": "2026-01-21T04:30:07.584Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T04:30:07.585Z", + "endDate": "2026-01-21T04:34:56.575Z", + "value": 0.85, + "unit": "U/hour", + "scheduledBasalRate": 0.85, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T04:34:56.575Z", + "endDate": "2026-01-21T05:29:54.330Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-21T04:44:59.193Z", + "endDate": "2026-01-21T04:45:04.193Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-21T04:49:57.888Z", + "endDate": "2026-01-21T04:50:02.888Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-21T04:54:57.454Z", + "endDate": "2026-01-21T04:55:03.454Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-21T04:59:55.521Z", + "endDate": "2026-01-21T05:00:01.521Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-21T05:05:05.182Z", + "endDate": "2026-01-21T05:05:11.182Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-21T05:09:57.158Z", + "endDate": "2026-01-21T05:10:02.158Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-21T05:14:58.755Z", + "endDate": "2026-01-21T05:15:03.755Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-21T05:19:59.199Z", + "endDate": "2026-01-21T05:20:04.199Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-21T05:24:55.45Z", + "endDate": "2026-01-21T05:25:00.450Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T05:29:54.331Z", + "endDate": "2026-01-21T05:34:57.559Z", + "value": 0.85, + "unit": "U/hour", + "scheduledBasalRate": 0.85, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T05:34:57.559Z", + "endDate": "2026-01-21T05:34:57.612Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T05:34:57.613Z", + "endDate": "2026-01-21T05:39:54.949Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T05:39:54.949Z", + "endDate": "2026-01-21T06:14:55.207Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-21T05:39:55.663Z", + "endDate": "2026-01-21T05:40:00.663Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-21T05:44:56.209Z", + "endDate": "2026-01-21T05:45:03.709Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-21T05:49:54.935Z", + "endDate": "2026-01-21T05:49:59.935Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-21T05:54:56.891Z", + "endDate": "2026-01-21T05:55:01.891Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-21T05:59:54.988Z", + "endDate": "2026-01-21T05:59:59.988Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-21T06:04:58.054Z", + "endDate": "2026-01-21T06:05:03.054Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-21T06:09:54.937Z", + "endDate": "2026-01-21T06:09:59.937Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T06:14:55.208Z", + "endDate": "2026-01-21T06:19:56.521Z", + "value": 0.35, + "unit": "U/hour", + "scheduledBasalRate": 0.35, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T06:19:56.521Z", + "endDate": "2026-01-21T06:34:56.622Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-21T06:24:55.685Z", + "endDate": "2026-01-21T06:25:01.685Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-21T06:29:55.869Z", + "endDate": "2026-01-21T06:30:00.869Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T06:34:56.623Z", + "endDate": "2026-01-21T06:39:55.265Z", + "value": 0.25, + "unit": "U/hour", + "scheduledBasalRate": 0.25, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T06:39:55.266Z", + "endDate": "2026-01-21T06:44:57.054Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T06:44:57.055Z", + "endDate": "2026-01-21T06:49:56.829Z", + "value": 0.1, + "unit": "U/hour", + "scheduledBasalRate": 0.1, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T06:49:56.829Z", + "endDate": "2026-01-21T06:49:56.833Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T06:49:56.834Z", + "endDate": "2026-01-21T06:54:56.428Z", + "value": 0.45, + "unit": "U/hour", + "scheduledBasalRate": 0.45, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T06:54:56.429Z", + "endDate": "2026-01-21T07:14:55.599Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-21T06:54:57.194Z", + "endDate": "2026-01-21T06:55:02.194Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-21T07:04:55.253Z", + "endDate": "2026-01-21T07:05:00.253Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-21T07:09:55.122Z", + "endDate": "2026-01-21T07:10:00.122Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T07:14:55.599Z", + "endDate": "2026-01-21T07:19:54.932Z", + "value": 0.55, + "unit": "U/hour", + "scheduledBasalRate": 0.55, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T07:19:54.933Z", + "endDate": "2026-01-21T07:24:56.903Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-21T07:19:55.699Z", + "endDate": "2026-01-21T07:20:00.699Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T07:24:56.904Z", + "endDate": "2026-01-21T07:34:57.613Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T07:34:57.613Z", + "endDate": "2026-01-21T07:49:56.112Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-21T07:34:58.347Z", + "endDate": "2026-01-21T07:35:03.347Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-21T07:39:55.155Z", + "endDate": "2026-01-21T07:40:00.155Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T07:49:56.112Z", + "endDate": "2026-01-21T07:54:56.409Z", + "value": 0.25, + "unit": "U/hour", + "scheduledBasalRate": 0.25, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T07:54:56.409Z", + "endDate": "2026-01-21T07:54:56.412Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T07:54:56.412Z", + "endDate": "2026-01-21T07:59:57.343Z", + "value": 0.3, + "unit": "U/hour", + "scheduledBasalRate": 0.3, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T07:59:57.344Z", + "endDate": "2026-01-21T08:00:00.000Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T08:00:00Z", + "endDate": "2026-01-21T08:04:55.172Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T08:04:55.172Z", + "endDate": "2026-01-21T08:14:56.139Z", + "value": 0.4, + "unit": "U/hour", + "scheduledBasalRate": 0.4, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T08:14:56.14Z", + "endDate": "2026-01-21T08:19:57.850Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T08:19:57.85Z", + "endDate": "2026-01-21T08:34:55.121Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T08:34:55.122Z", + "endDate": "2026-01-21T08:54:55.767Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T08:54:55.767Z", + "endDate": "2026-01-21T09:14:56.378Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T09:14:56.378Z", + "endDate": "2026-01-21T09:14:56.380Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T09:14:56.381Z", + "endDate": "2026-01-21T09:29:57.008Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T09:29:57.008Z", + "endDate": "2026-01-21T09:39:56.454Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T09:39:56.455Z", + "endDate": "2026-01-21T09:49:55.130Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T09:49:55.13Z", + "endDate": "2026-01-21T09:54:56.895Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T09:54:56.896Z", + "endDate": "2026-01-21T10:14:55.437Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T10:14:55.438Z", + "endDate": "2026-01-21T10:14:55.440Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T10:14:55.44Z", + "endDate": "2026-01-21T10:34:55.316Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T10:34:55.317Z", + "endDate": "2026-01-21T10:34:55.319Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T10:34:55.32Z", + "endDate": "2026-01-21T10:54:57.608Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T10:54:57.609Z", + "endDate": "2026-01-21T10:54:57.613Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T10:54:57.613Z", + "endDate": "2026-01-21T11:14:55.461Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T11:14:55.462Z", + "endDate": "2026-01-21T11:14:55.464Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T11:14:55.464Z", + "endDate": "2026-01-21T11:34:55.085Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T11:34:55.085Z", + "endDate": "2026-01-21T11:34:55.087Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T11:34:55.088Z", + "endDate": "2026-01-21T11:54:55.382Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T11:54:55.383Z", + "endDate": "2026-01-21T11:54:55.386Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T11:54:55.386Z", + "endDate": "2026-01-21T12:04:55.279Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T12:04:55.28Z", + "endDate": "2026-01-21T12:29:56.997Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T12:29:56.998Z", + "endDate": "2026-01-21T12:34:55.801Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T12:34:55.801Z", + "endDate": "2026-01-21T12:39:54.787Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T12:39:54.788Z", + "endDate": "2026-01-21T12:49:57.653Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T12:49:57.654Z", + "endDate": "2026-01-21T13:09:55.599Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T13:09:55.599Z", + "endDate": "2026-01-21T13:19:57.189Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T13:19:57.19Z", + "endDate": "2026-01-21T13:29:56.944Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T13:29:56.944Z", + "endDate": "2026-01-21T13:34:57.213Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T13:34:57.214Z", + "endDate": "2026-01-21T14:29:55.034Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-21T14:09:57.585Z", + "endDate": "2026-01-21T14:10:06.585Z", + "value": 0.3, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-21T14:14:56.433Z", + "endDate": "2026-01-21T14:15:02.433Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-21T14:19:56.962Z", + "endDate": "2026-01-21T14:20:01.962Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T14:29:55.034Z", + "endDate": "2026-01-21T14:34:55.352Z", + "value": 0.15, + "unit": "U/hour", + "scheduledBasalRate": 0.15, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T14:34:55.352Z", + "endDate": "2026-01-21T14:34:55.379Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T14:34:55.38Z", + "endDate": "2026-01-21T14:39:55.445Z", + "value": 0.1, + "unit": "U/hour", + "scheduledBasalRate": 0.1, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T14:39:55.446Z", + "endDate": "2026-01-21T14:39:55.448Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T14:39:55.448Z", + "endDate": "2026-01-21T14:44:57.051Z", + "value": 0.45, + "unit": "U/hour", + "scheduledBasalRate": 0.45, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T14:44:57.052Z", + "endDate": "2026-01-21T14:59:57.485Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-21T14:44:57.668Z", + "endDate": "2026-01-21T14:45:02.668Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-21T14:49:57.326Z", + "endDate": "2026-01-21T14:50:02.326Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T14:59:57.485Z", + "endDate": "2026-01-21T15:04:55.607Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T15:04:55.607Z", + "endDate": "2026-01-21T15:04:55.609Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T15:04:55.61Z", + "endDate": "2026-01-21T15:09:57.485Z", + "value": 0.2, + "unit": "U/hour", + "scheduledBasalRate": 0.2, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T15:09:57.485Z", + "endDate": "2026-01-21T15:19:57.187Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-21T15:09:58.101Z", + "endDate": "2026-01-21T15:10:03.101Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T15:19:57.188Z", + "endDate": "2026-01-21T15:24:56.051Z", + "value": 0.55, + "unit": "U/hour", + "scheduledBasalRate": 0.55, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T15:24:56.052Z", + "endDate": "2026-01-21T15:24:56.053Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T15:24:56.054Z", + "endDate": "2026-01-21T15:29:57.165Z", + "value": 0.85, + "unit": "U/hour", + "scheduledBasalRate": 0.85, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T15:29:57.165Z", + "endDate": "2026-01-21T15:59:59.999Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-21T15:29:57.811Z", + "endDate": "2026-01-21T15:30:02.811Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-21T15:35:00.138Z", + "endDate": "2026-01-21T15:35:05.138Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-21T15:39:57.502Z", + "endDate": "2026-01-21T15:40:02.502Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-21T15:44:56.199Z", + "endDate": "2026-01-21T15:45:01.199Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-21T15:49:59.442Z", + "endDate": "2026-01-21T15:50:04.442Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-21T15:55:01.066Z", + "endDate": "2026-01-21T15:55:06.066Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-21T15:59:58.01Z", + "endDate": "2026-01-21T16:00:03.010Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T16:00:00Z", + "endDate": "2026-01-21T16:19:59.974Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T16:19:59.975Z", + "endDate": "2026-01-21T16:24:55.342Z", + "value": 0.35, + "unit": "U/hour", + "scheduledBasalRate": 0.35, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T16:24:55.343Z", + "endDate": "2026-01-21T16:24:55.344Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T16:24:55.344Z", + "endDate": "2026-01-21T16:29:55.730Z", + "value": 0.6, + "unit": "U/hour", + "scheduledBasalRate": 0.6, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T16:29:55.73Z", + "endDate": "2026-01-21T16:44:55.377Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-21T16:29:56.346Z", + "endDate": "2026-01-21T16:30:01.346Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T16:44:55.378Z", + "endDate": "2026-01-21T16:49:59.224Z", + "value": 0.55, + "unit": "U/hour", + "scheduledBasalRate": 0.55, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T16:49:59.224Z", + "endDate": "2026-01-21T16:49:59.227Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T16:49:59.228Z", + "endDate": "2026-01-21T16:54:55.943Z", + "value": 0.15, + "unit": "U/hour", + "scheduledBasalRate": 0.15, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T16:54:55.943Z", + "endDate": "2026-01-21T17:05:08.668Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-21T16:54:56.812Z", + "endDate": "2026-01-21T16:55:02.812Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-21T16:59:56.5Z", + "endDate": "2026-01-21T17:00:04.000Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T17:05:08.669Z", + "endDate": "2026-01-21T17:25:10.597Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T17:25:10.597Z", + "endDate": "2026-01-21T17:25:10.599Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T17:25:10.6Z", + "endDate": "2026-01-21T17:39:57.067Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T17:39:57.067Z", + "endDate": "2026-01-21T18:09:57.108Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-21T17:39:57.818Z", + "endDate": "2026-01-21T17:40:05.318Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-21T17:44:58.077Z", + "endDate": "2026-01-21T17:45:03.077Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T18:09:57.108Z", + "endDate": "2026-01-21T18:14:58.299Z", + "value": 0.5, + "unit": "U/hour", + "scheduledBasalRate": 0.5, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T18:14:58.302Z", + "endDate": "2026-01-21T18:19:55.620Z", + "value": 0.15, + "unit": "U/hour", + "scheduledBasalRate": 0.15, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T18:14:58.3Z", + "endDate": "2026-01-21T18:14:58.302Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T18:19:55.621Z", + "endDate": "2026-01-21T18:19:55.622Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T18:19:55.623Z", + "endDate": "2026-01-21T18:24:56.344Z", + "value": 0.3, + "unit": "U/hour", + "scheduledBasalRate": 0.3, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T18:24:56.344Z", + "endDate": "2026-01-21T18:24:56.345Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T18:24:56.345Z", + "endDate": "2026-01-21T18:29:57.637Z", + "value": 0.35, + "unit": "U/hour", + "scheduledBasalRate": 0.35, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T18:29:57.638Z", + "endDate": "2026-01-21T18:29:57.640Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T18:29:57.64Z", + "endDate": "2026-01-21T18:34:58.421Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T18:34:58.422Z", + "endDate": "2026-01-21T18:54:58.267Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T18:54:58.268Z", + "endDate": "2026-01-21T18:59:58.004Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T18:59:58.004Z", + "endDate": "2026-01-21T19:00:00.000Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T19:00:00Z", + "endDate": "2026-01-21T19:54:55.529Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-21T19:04:57.303Z", + "endDate": "2026-01-21T19:05:02.303Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-21T19:09:56.184Z", + "endDate": "2026-01-21T19:10:01.184Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-21T19:24:56.332Z", + "endDate": "2026-01-21T19:25:01.332Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-21T19:34:58.23Z", + "endDate": "2026-01-21T19:35:03.230Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-21T19:39:58.369Z", + "endDate": "2026-01-21T19:40:03.369Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T19:54:55.53Z", + "endDate": "2026-01-21T19:59:56.390Z", + "value": 0.65, + "unit": "U/hour", + "scheduledBasalRate": 0.65, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T19:59:56.393Z", + "endDate": "2026-01-21T20:04:55.767Z", + "value": 0.5, + "unit": "U/hour", + "scheduledBasalRate": 0.5, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T19:59:56.39Z", + "endDate": "2026-01-21T19:59:56.392Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T20:04:55.768Z", + "endDate": "2026-01-21T20:04:55.770Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T20:04:55.77Z", + "endDate": "2026-01-21T20:09:56.099Z", + "value": 0.75, + "unit": "U/hour", + "scheduledBasalRate": 0.75, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T20:09:56.102Z", + "endDate": "2026-01-21T20:29:56.010Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T20:09:56.1Z", + "endDate": "2026-01-21T20:09:56.102Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T20:29:56.011Z", + "endDate": "2026-01-21T20:29:56.013Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T20:29:56.013Z", + "endDate": "2026-01-21T20:34:55.878Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T20:34:55.878Z", + "endDate": "2026-01-21T21:00:00.031Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T21:00:00.031Z", + "endDate": "2026-01-21T21:04:56.082Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T21:04:56.083Z", + "endDate": "2026-01-21T21:34:55.622Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T21:34:55.622Z", + "endDate": "2026-01-21T21:54:57.261Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T21:54:57.261Z", + "endDate": "2026-01-21T21:54:57.314Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T21:54:57.315Z", + "endDate": "2026-01-21T22:09:57.843Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T22:09:57.844Z", + "endDate": "2026-01-21T22:30:01.763Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T22:30:01.763Z", + "endDate": "2026-01-21T22:39:56.089Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-21T22:37:09.121Z", + "endDate": "2026-01-21T22:37:25.621Z", + "value": 0.55, + "unit": "U", + "isMutable": false + }, + { + "type": "tempBasal", + "startDate": "2026-01-21T22:39:56.09Z", + "endDate": "2026-01-22T00:54:55.500Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-21T23:09:58.681Z", + "endDate": "2026-01-21T23:10:07.681Z", + "value": 0.3, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-21T23:14:57.604Z", + "endDate": "2026-01-21T23:15:05.104Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-21T23:19:59.278Z", + "endDate": "2026-01-21T23:20:04.278Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-21T23:39:56.376Z", + "endDate": "2026-01-21T23:40:01.376Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-22T00:05:01.384Z", + "endDate": "2026-01-22T00:05:06.384Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-22T00:19:55.901Z", + "endDate": "2026-01-22T00:20:01.901Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-22T00:24:56.418Z", + "endDate": "2026-01-22T00:25:02.418Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-22T00:29:57.783Z", + "endDate": "2026-01-22T00:30:02.783Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-22T00:44:58.17Z", + "endDate": "2026-01-22T00:45:03.170Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-22T00:49:56.226Z", + "endDate": "2026-01-22T00:50:01.226Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T00:54:55.5Z", + "endDate": "2026-01-22T00:59:56.131Z", + "value": 0.65, + "unit": "U/hour", + "scheduledBasalRate": 0.65, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T00:59:56.132Z", + "endDate": "2026-01-22T00:59:56.134Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T00:59:56.135Z", + "endDate": "2026-01-22T01:04:57.865Z", + "value": 0.55, + "unit": "U/hour", + "scheduledBasalRate": 0.55, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T01:04:57.865Z", + "endDate": "2026-01-22T01:24:55.900Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-22T01:14:28.499Z", + "endDate": "2026-01-22T01:15:37.499Z", + "value": 2.3, + "unit": "U", + "isMutable": false + }, + { + "type": "bolus", + "startDate": "2026-01-22T01:19:58.492Z", + "endDate": "2026-01-22T01:20:03.492Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T01:24:55.901Z", + "endDate": "2026-01-22T01:29:56.580Z", + "value": 0.8, + "unit": "U/hour", + "scheduledBasalRate": 0.8, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T01:29:56.581Z", + "endDate": "2026-01-22T02:04:59.605Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-22T01:29:57.197Z", + "endDate": "2026-01-22T01:30:02.197Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-22T01:35:00.79Z", + "endDate": "2026-01-22T01:35:05.790Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-22T01:43:55.303Z", + "endDate": "2026-01-22T01:49:31.303Z", + "value": 11.2, + "unit": "U", + "isMutable": false + }, + { + "type": "bolus", + "startDate": "2026-01-22T01:55:01.534Z", + "endDate": "2026-01-22T01:55:06.534Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-22T01:59:56.792Z", + "endDate": "2026-01-22T02:00:01.792Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T02:04:59.605Z", + "endDate": "2026-01-22T02:10:02.475Z", + "value": 0.8, + "unit": "U/hour", + "scheduledBasalRate": 0.8, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T02:10:02.476Z", + "endDate": "2026-01-22T02:10:02.478Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T02:10:02.478Z", + "endDate": "2026-01-22T02:19:58.542Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T02:19:58.543Z", + "endDate": "2026-01-22T02:19:58.545Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T02:19:58.546Z", + "endDate": "2026-01-22T02:24:56.096Z", + "value": 0.2, + "unit": "U/hour", + "scheduledBasalRate": 0.2, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T02:24:56.096Z", + "endDate": "2026-01-22T02:24:56.098Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T02:24:56.099Z", + "endDate": "2026-01-22T02:29:56.155Z", + "value": 0.85, + "unit": "U/hour", + "scheduledBasalRate": 0.85, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T02:29:56.156Z", + "endDate": "2026-01-22T02:59:57.894Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-22T02:44:58.297Z", + "endDate": "2026-01-22T02:45:03.297Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-22T02:49:58.52Z", + "endDate": "2026-01-22T02:50:03.520Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-22T02:55:02.721Z", + "endDate": "2026-01-22T02:55:07.721Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T02:59:57.895Z", + "endDate": "2026-01-22T03:09:58.763Z", + "value": 0.3, + "unit": "U/hour", + "scheduledBasalRate": 0.3, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T03:09:58.763Z", + "endDate": "2026-01-22T03:34:56.294Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T03:34:56.295Z", + "endDate": "2026-01-22T03:39:56.254Z", + "value": 0.85, + "unit": "U/hour", + "scheduledBasalRate": 0.85, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T03:39:56.255Z", + "endDate": "2026-01-22T03:54:56.137Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-22T03:39:56.913Z", + "endDate": "2026-01-22T03:40:01.913Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-22T03:44:57.906Z", + "endDate": "2026-01-22T03:45:02.906Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-22T03:49:57.239Z", + "endDate": "2026-01-22T03:50:02.239Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T03:54:56.137Z", + "endDate": "2026-01-22T04:00:01.845Z", + "value": 0.35, + "unit": "U/hour", + "scheduledBasalRate": 0.35, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T04:00:01.846Z", + "endDate": "2026-01-22T04:50:03.980Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-22T04:00:02.491Z", + "endDate": "2026-01-22T04:00:07.491Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-22T04:05:00.63Z", + "endDate": "2026-01-22T04:05:17.130Z", + "value": 0.55, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-22T04:10:02.078Z", + "endDate": "2026-01-22T04:10:15.578Z", + "value": 0.45, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-22T04:14:59.109Z", + "endDate": "2026-01-22T04:15:14.109Z", + "value": 0.5, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-22T04:19:58.177Z", + "endDate": "2026-01-22T04:20:14.677Z", + "value": 0.55, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-22T04:25:06.293Z", + "endDate": "2026-01-22T04:25:16.793Z", + "value": 0.35, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-22T04:29:57.515Z", + "endDate": "2026-01-22T04:30:06.515Z", + "value": 0.3, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-22T04:34:56.929Z", + "endDate": "2026-01-22T04:35:11.929Z", + "value": 0.5, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-22T04:39:57.019Z", + "endDate": "2026-01-22T04:40:06.019Z", + "value": 0.3, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-22T04:44:58.081Z", + "endDate": "2026-01-22T04:45:03.081Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T04:50:03.98Z", + "endDate": "2026-01-22T04:54:59.534Z", + "value": 0.85, + "unit": "U/hour", + "scheduledBasalRate": 0.85, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T04:54:59.535Z", + "endDate": "2026-01-22T05:09:56.154Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-22T05:00:00.569Z", + "endDate": "2026-01-22T05:00:09.569Z", + "value": 0.3, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-22T05:04:59.096Z", + "endDate": "2026-01-22T05:05:04.096Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T05:09:56.154Z", + "endDate": "2026-01-22T05:14:56.843Z", + "value": 0.65, + "unit": "U/hour", + "scheduledBasalRate": 0.65, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T05:14:56.843Z", + "endDate": "2026-01-22T05:29:59.999Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-22T05:14:57.654Z", + "endDate": "2026-01-22T05:15:02.654Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-22T05:19:59.243Z", + "endDate": "2026-01-22T05:20:04.243Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-22T05:30:00.514Z", + "endDate": "2026-01-22T05:30:05.514Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T05:30:00Z", + "endDate": "2026-01-22T06:14:58.462Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-22T05:34:56.297Z", + "endDate": "2026-01-22T05:35:03.797Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-22T05:39:58.126Z", + "endDate": "2026-01-22T05:40:04.126Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-22T05:44:57.792Z", + "endDate": "2026-01-22T05:45:02.792Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-22T05:49:56.787Z", + "endDate": "2026-01-22T05:50:01.787Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-22T06:05:17.057Z", + "endDate": "2026-01-22T06:05:22.057Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-22T06:09:57.986Z", + "endDate": "2026-01-22T06:10:02.986Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T06:14:58.463Z", + "endDate": "2026-01-22T06:19:57.038Z", + "value": 0.1, + "unit": "U/hour", + "scheduledBasalRate": 0.1, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T06:19:57.038Z", + "endDate": "2026-01-22T07:09:56.065Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-22T06:24:57.944Z", + "endDate": "2026-01-22T06:25:06.944Z", + "value": 0.3, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-22T06:29:58.056Z", + "endDate": "2026-01-22T06:30:13.056Z", + "value": 0.5, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-22T06:34:58.932Z", + "endDate": "2026-01-22T06:35:12.432Z", + "value": 0.45, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-22T06:39:58.488Z", + "endDate": "2026-01-22T06:40:07.488Z", + "value": 0.3, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-22T06:54:56.768Z", + "endDate": "2026-01-22T06:55:01.768Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-22T06:59:57.072Z", + "endDate": "2026-01-22T07:00:02.072Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-22T07:04:57.65Z", + "endDate": "2026-01-22T07:05:02.650Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T07:09:56.066Z", + "endDate": "2026-01-22T07:14:59.020Z", + "value": 0.15, + "unit": "U/hour", + "scheduledBasalRate": 0.15, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T07:14:59.022Z", + "endDate": "2026-01-22T07:29:58.758Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T07:14:59.02Z", + "endDate": "2026-01-22T07:14:59.021Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T07:29:58.758Z", + "endDate": "2026-01-22T07:29:58.763Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T07:29:58.764Z", + "endDate": "2026-01-22T07:34:57.593Z", + "value": 0.2, + "unit": "U/hour", + "scheduledBasalRate": 0.2, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T07:34:57.593Z", + "endDate": "2026-01-22T07:34:57.596Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T07:34:57.596Z", + "endDate": "2026-01-22T07:39:58.602Z", + "value": 0.1, + "unit": "U/hour", + "scheduledBasalRate": 0.1, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T07:39:58.603Z", + "endDate": "2026-01-22T07:39:58.605Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T07:39:58.605Z", + "endDate": "2026-01-22T07:44:59.508Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T07:44:59.509Z", + "endDate": "2026-01-22T07:44:59.511Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T07:44:59.512Z", + "endDate": "2026-01-22T07:49:58.122Z", + "value": 0.5, + "unit": "U/hour", + "scheduledBasalRate": 0.5, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T07:49:58.122Z", + "endDate": "2026-01-22T07:49:58.125Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T07:49:58.125Z", + "endDate": "2026-01-22T08:04:59.430Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T08:04:59.431Z", + "endDate": "2026-01-22T08:04:59.433Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T08:04:59.434Z", + "endDate": "2026-01-22T08:09:58.010Z", + "value": 0.4, + "unit": "U/hour", + "scheduledBasalRate": 0.4, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T08:09:58.01Z", + "endDate": "2026-01-22T08:24:57.218Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-22T08:09:58.747Z", + "endDate": "2026-01-22T08:10:03.747Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-22T08:14:59.183Z", + "endDate": "2026-01-22T08:15:11.183Z", + "value": 0.4, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-22T08:19:57.225Z", + "endDate": "2026-01-22T08:20:06.225Z", + "value": 0.3, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T08:24:57.219Z", + "endDate": "2026-01-22T08:39:58.658Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T08:39:58.659Z", + "endDate": "2026-01-22T08:44:57.366Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T08:44:57.366Z", + "endDate": "2026-01-22T08:49:58.727Z", + "value": 0.6, + "unit": "U/hour", + "scheduledBasalRate": 0.6, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T08:49:58.728Z", + "endDate": "2026-01-22T08:49:58.732Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T08:49:58.733Z", + "endDate": "2026-01-22T08:59:57.146Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T08:59:57.146Z", + "endDate": "2026-01-22T08:59:57.149Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T08:59:57.15Z", + "endDate": "2026-01-22T09:04:58.291Z", + "value": 0.25, + "unit": "U/hour", + "scheduledBasalRate": 0.25, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T09:04:58.291Z", + "endDate": "2026-01-22T09:04:58.316Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T09:04:58.317Z", + "endDate": "2026-01-22T09:09:56.530Z", + "value": 0.4, + "unit": "U/hour", + "scheduledBasalRate": 0.4, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T09:09:56.531Z", + "endDate": "2026-01-22T09:09:56.534Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T09:09:56.534Z", + "endDate": "2026-01-22T09:14:56.665Z", + "value": 0.25, + "unit": "U/hour", + "scheduledBasalRate": 0.25, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T09:14:56.665Z", + "endDate": "2026-01-22T09:14:56.666Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T09:14:56.666Z", + "endDate": "2026-01-22T09:19:59.071Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T09:19:59.072Z", + "endDate": "2026-01-22T09:24:56.922Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-22T09:19:59.807Z", + "endDate": "2026-01-22T09:20:05.807Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T09:24:56.922Z", + "endDate": "2026-01-22T09:34:58.633Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T09:34:58.633Z", + "endDate": "2026-01-22T09:39:57.159Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T09:39:57.16Z", + "endDate": "2026-01-22T09:49:56.925Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T09:49:56.925Z", + "endDate": "2026-01-22T09:59:57.071Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-22T09:49:57.703Z", + "endDate": "2026-01-22T09:50:02.703Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T09:59:57.072Z", + "endDate": "2026-01-22T10:19:57.210Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T10:19:57.211Z", + "endDate": "2026-01-22T10:24:56.520Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T10:24:56.52Z", + "endDate": "2026-01-22T10:34:58.651Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T10:34:58.651Z", + "endDate": "2026-01-22T10:39:56.342Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T10:39:56.343Z", + "endDate": "2026-01-22T10:44:56.812Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T10:44:56.812Z", + "endDate": "2026-01-22T11:34:56.472Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-22T10:59:56.573Z", + "endDate": "2026-01-22T11:00:05.573Z", + "value": 0.3, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-22T11:04:59.789Z", + "endDate": "2026-01-22T11:05:05.789Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-22T11:09:58.625Z", + "endDate": "2026-01-22T11:10:03.625Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-22T11:14:58.405Z", + "endDate": "2026-01-22T11:15:03.405Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-22T11:19:57.856Z", + "endDate": "2026-01-22T11:20:02.856Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-22T11:24:57.396Z", + "endDate": "2026-01-22T11:25:04.896Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T11:34:56.473Z", + "endDate": "2026-01-22T11:44:57.992Z", + "value": 0.15, + "unit": "U/hour", + "scheduledBasalRate": 0.15, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T11:44:57.992Z", + "endDate": "2026-01-22T11:44:57.995Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T11:44:57.996Z", + "endDate": "2026-01-22T12:04:56.840Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T12:04:56.844Z", + "endDate": "2026-01-22T12:24:56.787Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T12:04:56.84Z", + "endDate": "2026-01-22T12:04:56.844Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T12:24:56.788Z", + "endDate": "2026-01-22T13:14:57.603Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-22T12:40:01.401Z", + "endDate": "2026-01-22T12:40:06.401Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-22T12:44:56.98Z", + "endDate": "2026-01-22T12:45:01.980Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-22T12:49:58.936Z", + "endDate": "2026-01-22T12:50:03.936Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-22T12:54:57.606Z", + "endDate": "2026-01-22T12:55:02.606Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-22T12:59:58.539Z", + "endDate": "2026-01-22T13:00:03.539Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-22T13:04:58.918Z", + "endDate": "2026-01-22T13:05:04.918Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-22T13:09:58.577Z", + "endDate": "2026-01-22T13:10:03.577Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T13:14:57.603Z", + "endDate": "2026-01-22T13:34:58.335Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T13:34:58.336Z", + "endDate": "2026-01-22T13:34:58.340Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T13:34:58.341Z", + "endDate": "2026-01-22T13:54:58.206Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T13:54:58.206Z", + "endDate": "2026-01-22T14:34:59.846Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-22T14:09:57.007Z", + "endDate": "2026-01-22T14:10:02.007Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-22T14:19:57.675Z", + "endDate": "2026-01-22T14:20:02.675Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-22T14:24:57.08Z", + "endDate": "2026-01-22T14:25:06.080Z", + "value": 0.3, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-22T14:29:58.344Z", + "endDate": "2026-01-22T14:30:04.344Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T14:34:59.846Z", + "endDate": "2026-01-22T14:40:00.313Z", + "value": 0.25, + "unit": "U/hour", + "scheduledBasalRate": 0.25, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T14:40:00.313Z", + "endDate": "2026-01-22T14:40:00.315Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T14:40:00.316Z", + "endDate": "2026-01-22T14:44:58.617Z", + "value": 0.6, + "unit": "U/hour", + "scheduledBasalRate": 0.6, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T14:44:58.618Z", + "endDate": "2026-01-22T14:59:57.565Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-22T14:44:59.264Z", + "endDate": "2026-01-22T14:45:08.264Z", + "value": 0.3, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-22T14:49:59.905Z", + "endDate": "2026-01-22T14:50:04.905Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T14:59:57.565Z", + "endDate": "2026-01-22T15:04:57.282Z", + "value": 0.4, + "unit": "U/hour", + "scheduledBasalRate": 0.4, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T15:04:57.283Z", + "endDate": "2026-01-22T15:04:57.285Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T15:04:57.286Z", + "endDate": "2026-01-22T15:09:59.222Z", + "value": 0.75, + "unit": "U/hour", + "scheduledBasalRate": 0.75, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T15:09:59.222Z", + "endDate": "2026-01-22T15:19:58.072Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-22T15:10:00.107Z", + "endDate": "2026-01-22T15:10:05.107Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-22T15:14:59.943Z", + "endDate": "2026-01-22T15:15:04.943Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T15:19:58.073Z", + "endDate": "2026-01-22T15:24:59.670Z", + "value": 0.55, + "unit": "U/hour", + "scheduledBasalRate": 0.55, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T15:24:59.67Z", + "endDate": "2026-01-22T15:39:57.232Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-22T15:29:59.015Z", + "endDate": "2026-01-22T15:30:14.015Z", + "value": 0.5, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T15:39:57.233Z", + "endDate": "2026-01-22T15:45:00.258Z", + "value": 0.25, + "unit": "U/hour", + "scheduledBasalRate": 0.25, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T15:45:00.259Z", + "endDate": "2026-01-22T15:49:58.673Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-22T15:45:01.129Z", + "endDate": "2026-01-22T15:45:11.629Z", + "value": 0.35, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T15:49:58.673Z", + "endDate": "2026-01-22T15:55:10.634Z", + "value": 0.8, + "unit": "U/hour", + "scheduledBasalRate": 0.8, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T15:55:10.634Z", + "endDate": "2026-01-22T15:55:10.635Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T15:55:10.636Z", + "endDate": "2026-01-22T16:00:02.714Z", + "value": 0.75, + "unit": "U/hour", + "scheduledBasalRate": 0.75, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T16:00:02.714Z", + "endDate": "2026-01-22T16:04:57.078Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-22T16:00:03.584Z", + "endDate": "2026-01-22T16:00:08.584Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T16:04:57.078Z", + "endDate": "2026-01-22T16:09:58.479Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T16:09:58.482Z", + "endDate": "2026-01-22T16:15:05.501Z", + "value": 0.4, + "unit": "U/hour", + "scheduledBasalRate": 0.4, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T16:09:58.48Z", + "endDate": "2026-01-22T16:09:58.482Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T16:15:05.502Z", + "endDate": "2026-01-22T16:24:56.900Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-22T16:15:06.131Z", + "endDate": "2026-01-22T16:15:11.131Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T16:24:56.9Z", + "endDate": "2026-01-22T16:29:59.714Z", + "value": 0.5, + "unit": "U/hour", + "scheduledBasalRate": 0.5, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T16:29:59.715Z", + "endDate": "2026-01-22T16:29:59.718Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T16:29:59.719Z", + "endDate": "2026-01-22T16:34:58.831Z", + "value": 0.55, + "unit": "U/hour", + "scheduledBasalRate": 0.55, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T16:34:58.832Z", + "endDate": "2026-01-22T16:34:58.834Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T16:34:58.835Z", + "endDate": "2026-01-22T16:40:09.856Z", + "value": 0.5, + "unit": "U/hour", + "scheduledBasalRate": 0.5, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T16:40:09.856Z", + "endDate": "2026-01-22T17:04:57.194Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-22T16:40:10.517Z", + "endDate": "2026-01-22T16:40:15.517Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-22T16:50:04.559Z", + "endDate": "2026-01-22T16:50:09.559Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-22T16:55:03.568Z", + "endDate": "2026-01-22T16:55:09.568Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-22T16:59:58.063Z", + "endDate": "2026-01-22T17:00:04.063Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T17:04:57.195Z", + "endDate": "2026-01-22T17:09:59.180Z", + "value": 0.35, + "unit": "U/hour", + "scheduledBasalRate": 0.35, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T17:09:59.18Z", + "endDate": "2026-01-22T17:24:58.042Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-22T17:14:57.623Z", + "endDate": "2026-01-22T17:15:02.623Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-22T17:19:57.928Z", + "endDate": "2026-01-22T17:20:02.928Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T17:24:58.043Z", + "endDate": "2026-01-22T17:30:07.535Z", + "value": 0.5, + "unit": "U/hour", + "scheduledBasalRate": 0.5, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T17:30:07.535Z", + "endDate": "2026-01-22T17:30:07.538Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T17:30:07.538Z", + "endDate": "2026-01-22T17:35:13.163Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T17:35:13.164Z", + "endDate": "2026-01-22T17:35:13.166Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T17:35:13.167Z", + "endDate": "2026-01-22T17:40:09.284Z", + "value": 0.45, + "unit": "U/hour", + "scheduledBasalRate": 0.45, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T17:40:09.284Z", + "endDate": "2026-01-22T17:45:01.128Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-22T17:40:09.928Z", + "endDate": "2026-01-22T17:40:14.928Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T17:45:01.129Z", + "endDate": "2026-01-22T17:49:59.091Z", + "value": 0.4, + "unit": "U/hour", + "scheduledBasalRate": 0.4, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T17:49:59.091Z", + "endDate": "2026-01-22T18:34:59.235Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-22T18:00:02.611Z", + "endDate": "2026-01-22T18:00:07.611Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-22T18:04:58.456Z", + "endDate": "2026-01-22T18:05:03.456Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-22T18:10:06.573Z", + "endDate": "2026-01-22T18:10:11.573Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-22T18:19:57.819Z", + "endDate": "2026-01-22T18:20:02.819Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-22T18:25:00.794Z", + "endDate": "2026-01-22T18:25:05.794Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T18:34:59.236Z", + "endDate": "2026-01-22T18:45:00.144Z", + "value": 0.5, + "unit": "U/hour", + "scheduledBasalRate": 0.5, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T18:45:00.145Z", + "endDate": "2026-01-22T18:45:00.148Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T18:45:00.148Z", + "endDate": "2026-01-22T18:49:58.288Z", + "value": 0.55, + "unit": "U/hour", + "scheduledBasalRate": 0.55, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T18:49:58.288Z", + "endDate": "2026-01-22T18:49:58.290Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T18:49:58.29Z", + "endDate": "2026-01-22T18:54:57.736Z", + "value": 0.3, + "unit": "U/hour", + "scheduledBasalRate": 0.3, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T18:54:57.736Z", + "endDate": "2026-01-22T18:59:59.999Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T19:00:00Z", + "endDate": "2026-01-22T20:50:01.460Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-22T19:09:58.059Z", + "endDate": "2026-01-22T19:10:03.059Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-22T19:14:58.576Z", + "endDate": "2026-01-22T19:15:03.576Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-22T19:29:58.169Z", + "endDate": "2026-01-22T19:30:03.169Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-22T19:35:07.255Z", + "endDate": "2026-01-22T19:35:12.255Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-22T19:40:00.386Z", + "endDate": "2026-01-22T19:40:05.386Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-22T19:51:33.125Z", + "endDate": "2026-01-22T19:56:13.625Z", + "value": 9.35, + "unit": "U", + "isMutable": false + }, + { + "type": "bolus", + "startDate": "2026-01-22T20:15:01.827Z", + "endDate": "2026-01-22T20:15:07.827Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-22T20:19:59.357Z", + "endDate": "2026-01-22T20:20:06.857Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-22T20:25:00.637Z", + "endDate": "2026-01-22T20:25:05.637Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-22T20:30:00.141Z", + "endDate": "2026-01-22T20:30:05.141Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-22T20:34:57.403Z", + "endDate": "2026-01-22T20:35:02.403Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-22T20:39:58.669Z", + "endDate": "2026-01-22T20:40:03.669Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T20:50:01.46Z", + "endDate": "2026-01-22T20:54:59.223Z", + "value": 0.05, + "unit": "U/hour", + "scheduledBasalRate": 0.05, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T20:54:59.224Z", + "endDate": "2026-01-22T20:54:59.281Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T20:54:59.281Z", + "endDate": "2026-01-22T20:59:58.133Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T20:59:58.134Z", + "endDate": "2026-01-22T20:59:58.136Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T20:59:58.137Z", + "endDate": "2026-01-22T21:04:59.441Z", + "value": 0.65, + "unit": "U/hour", + "scheduledBasalRate": 0.65, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T21:04:59.441Z", + "endDate": "2026-01-22T21:04:59.444Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T21:04:59.444Z", + "endDate": "2026-01-22T21:09:59.937Z", + "value": 0.6, + "unit": "U/hour", + "scheduledBasalRate": 0.6, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T21:09:59.937Z", + "endDate": "2026-01-22T21:09:59.940Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T21:09:59.941Z", + "endDate": "2026-01-22T21:19:58.040Z", + "value": 0.4, + "unit": "U/hour", + "scheduledBasalRate": 0.4, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T21:19:58.04Z", + "endDate": "2026-01-22T21:24:59.501Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T21:24:59.501Z", + "endDate": "2026-01-22T21:29:57.291Z", + "value": 0.8, + "unit": "U/hour", + "scheduledBasalRate": 0.8, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T21:29:57.292Z", + "endDate": "2026-01-22T21:29:57.295Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T21:29:57.296Z", + "endDate": "2026-01-22T21:34:59.650Z", + "value": 0.5, + "unit": "U/hour", + "scheduledBasalRate": 0.5, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T21:34:59.652Z", + "endDate": "2026-01-22T21:39:58.208Z", + "value": 0.8, + "unit": "U/hour", + "scheduledBasalRate": 0.8, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T21:34:59.65Z", + "endDate": "2026-01-22T21:34:59.652Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T21:39:58.208Z", + "endDate": "2026-01-22T21:39:58.210Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T21:39:58.21Z", + "endDate": "2026-01-22T21:45:02.622Z", + "value": 0.7, + "unit": "U/hour", + "scheduledBasalRate": 0.7, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T21:45:02.623Z", + "endDate": "2026-01-22T21:50:12.153Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T21:50:12.154Z", + "endDate": "2026-01-22T21:54:58.078Z", + "value": 0.75, + "unit": "U/hour", + "scheduledBasalRate": 0.75, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T21:54:58.078Z", + "endDate": "2026-01-22T21:54:58.080Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T21:54:58.08Z", + "endDate": "2026-01-22T22:04:57.588Z", + "value": 0.5, + "unit": "U/hour", + "scheduledBasalRate": 0.5, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T22:04:57.589Z", + "endDate": "2026-01-22T22:04:57.592Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T22:04:57.592Z", + "endDate": "2026-01-22T22:09:59.733Z", + "value": 0.3, + "unit": "U/hour", + "scheduledBasalRate": 0.3, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T22:09:59.734Z", + "endDate": "2026-01-22T22:09:59.740Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T22:09:59.74Z", + "endDate": "2026-01-22T22:14:57.448Z", + "value": 0.5, + "unit": "U/hour", + "scheduledBasalRate": 0.5, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T22:14:57.449Z", + "endDate": "2026-01-22T22:14:57.451Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T22:14:57.451Z", + "endDate": "2026-01-22T22:19:59.943Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T22:19:59.943Z", + "endDate": "2026-01-22T22:35:00.442Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-22T22:20:00.708Z", + "endDate": "2026-01-22T22:20:05.708Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-22T22:24:57.683Z", + "endDate": "2026-01-22T22:25:06.683Z", + "value": 0.3, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-22T22:29:57.674Z", + "endDate": "2026-01-22T22:30:02.674Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T22:35:00.443Z", + "endDate": "2026-01-22T22:39:59.378Z", + "value": 0.55, + "unit": "U/hour", + "scheduledBasalRate": 0.55, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T22:39:59.378Z", + "endDate": "2026-01-22T22:50:04.847Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-22T22:40:00.277Z", + "endDate": "2026-01-22T22:40:05.277Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T22:50:04.847Z", + "endDate": "2026-01-22T22:54:58.912Z", + "value": 0.6, + "unit": "U/hour", + "scheduledBasalRate": 0.6, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T22:54:58.913Z", + "endDate": "2026-01-22T22:54:58.915Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T22:54:58.915Z", + "endDate": "2026-01-22T22:59:58.211Z", + "value": 0.5, + "unit": "U/hour", + "scheduledBasalRate": 0.5, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T22:59:58.212Z", + "endDate": "2026-01-22T22:59:58.213Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T22:59:58.214Z", + "endDate": "2026-01-22T23:05:00.090Z", + "value": 0.35, + "unit": "U/hour", + "scheduledBasalRate": 0.35, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T23:05:00.091Z", + "endDate": "2026-01-22T23:05:00.092Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T23:05:00.092Z", + "endDate": "2026-01-22T23:15:01.823Z", + "value": 0.5, + "unit": "U/hour", + "scheduledBasalRate": 0.5, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T23:15:01.823Z", + "endDate": "2026-01-22T23:15:01.824Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T23:15:01.825Z", + "endDate": "2026-01-22T23:19:59.354Z", + "value": 0.3, + "unit": "U/hour", + "scheduledBasalRate": 0.3, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T23:19:59.354Z", + "endDate": "2026-01-22T23:19:59.357Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T23:19:59.357Z", + "endDate": "2026-01-22T23:40:33.072Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T23:40:33.073Z", + "endDate": "2026-01-22T23:40:33.075Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-22T23:40:33.075Z", + "endDate": "2026-01-23T00:01:02.124Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T00:01:02.125Z", + "endDate": "2026-01-23T00:01:02.127Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T00:01:02.127Z", + "endDate": "2026-01-23T00:18:00.455Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T00:18:00.455Z", + "endDate": "2026-01-23T00:25:06.006Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T00:25:06.007Z", + "endDate": "2026-01-23T00:44:57.516Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T00:44:57.517Z", + "endDate": "2026-01-23T00:49:57.576Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T00:49:57.576Z", + "endDate": "2026-01-23T01:05:01.771Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-23T01:00:03.506Z", + "endDate": "2026-01-23T01:00:32.006Z", + "value": 0.95, + "unit": "U", + "isMutable": false + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T01:05:01.771Z", + "endDate": "2026-01-23T01:49:59.735Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-23T01:30:05.645Z", + "endDate": "2026-01-23T01:30:25.145Z", + "value": 0.65, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-23T01:35:02.812Z", + "endDate": "2026-01-23T01:35:14.812Z", + "value": 0.4, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-23T01:40:00.65Z", + "endDate": "2026-01-23T01:40:05.650Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T01:49:59.735Z", + "endDate": "2026-01-23T01:55:07.646Z", + "value": 0.9, + "unit": "U/hour", + "scheduledBasalRate": 0.9, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T01:55:07.647Z", + "endDate": "2026-01-23T01:55:07.649Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T01:55:07.649Z", + "endDate": "2026-01-23T02:00:05.577Z", + "value": 0.15, + "unit": "U/hour", + "scheduledBasalRate": 0.15, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-23T01:59:39.104Z", + "endDate": "2026-01-23T02:04:21.104Z", + "value": 9.4, + "unit": "U", + "isMutable": false + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T02:00:05.578Z", + "endDate": "2026-01-23T02:39:57.738Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-23T02:15:02.706Z", + "endDate": "2026-01-23T02:15:13.206Z", + "value": 0.35, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-23T02:20:01.345Z", + "endDate": "2026-01-23T02:20:11.845Z", + "value": 0.35, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-23T02:25:00.844Z", + "endDate": "2026-01-23T02:25:05.844Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-23T02:29:58.106Z", + "endDate": "2026-01-23T02:30:03.106Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T02:39:57.739Z", + "endDate": "2026-01-23T02:59:58.018Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T02:59:58.019Z", + "endDate": "2026-01-23T03:34:58.634Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-23T03:04:58.506Z", + "endDate": "2026-01-23T03:05:04.506Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-23T03:14:58.564Z", + "endDate": "2026-01-23T03:15:03.564Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-23T03:19:57.779Z", + "endDate": "2026-01-23T03:20:02.779Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-23T03:24:58.501Z", + "endDate": "2026-01-23T03:25:03.501Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T03:34:58.634Z", + "endDate": "2026-01-23T03:39:58.264Z", + "value": 0.8, + "unit": "U/hour", + "scheduledBasalRate": 0.8, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T03:39:58.264Z", + "endDate": "2026-01-23T03:39:58.265Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T03:39:58.266Z", + "endDate": "2026-01-23T03:45:24.270Z", + "value": 0.75, + "unit": "U/hour", + "scheduledBasalRate": 0.75, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T03:45:24.27Z", + "endDate": "2026-01-23T03:59:57.713Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-23T03:49:58.806Z", + "endDate": "2026-01-23T03:50:03.806Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T03:59:57.714Z", + "endDate": "2026-01-23T04:04:57.599Z", + "value": 0.75, + "unit": "U/hour", + "scheduledBasalRate": 0.75, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T04:04:57.599Z", + "endDate": "2026-01-23T04:29:57.466Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-23T04:09:58.564Z", + "endDate": "2026-01-23T04:10:03.564Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-23T04:14:58.375Z", + "endDate": "2026-01-23T04:15:03.375Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-23T04:19:59.94Z", + "endDate": "2026-01-23T04:20:05.940Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T04:29:57.467Z", + "endDate": "2026-01-23T04:34:58.132Z", + "value": 0.7, + "unit": "U/hour", + "scheduledBasalRate": 0.7, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T04:34:58.133Z", + "endDate": "2026-01-23T05:04:58.436Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-23T04:34:58.884Z", + "endDate": "2026-01-23T04:35:12.384Z", + "value": 0.45, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-23T04:39:58.075Z", + "endDate": "2026-01-23T04:40:22.075Z", + "value": 0.8, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-23T04:44:58.679Z", + "endDate": "2026-01-23T04:45:27.179Z", + "value": 0.95, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-23T04:50:04.095Z", + "endDate": "2026-01-23T04:50:26.595Z", + "value": 0.75, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-23T04:54:58.939Z", + "endDate": "2026-01-23T04:55:19.939Z", + "value": 0.7, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-23T04:59:57.981Z", + "endDate": "2026-01-23T05:00:18.981Z", + "value": 0.7, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-23T05:02:24.459Z", + "endDate": "2026-01-23T05:02:57.459Z", + "value": 1.1, + "unit": "U", + "isMutable": false + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T05:04:58.437Z", + "endDate": "2026-01-23T05:09:59.028Z", + "value": 1.1, + "unit": "U/hour", + "scheduledBasalRate": 1.1, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T05:09:59.028Z", + "endDate": "2026-01-23T05:09:59.029Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T05:09:59.029Z", + "endDate": "2026-01-23T05:14:57.700Z", + "value": 1.1, + "unit": "U/hour", + "scheduledBasalRate": 1.1, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T05:14:57.701Z", + "endDate": "2026-01-23T05:14:57.703Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T05:14:57.704Z", + "endDate": "2026-01-23T05:19:58.249Z", + "value": 1.1, + "unit": "U/hour", + "scheduledBasalRate": 1.1, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T05:19:58.249Z", + "endDate": "2026-01-23T05:19:58.250Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T05:19:58.251Z", + "endDate": "2026-01-23T05:20:33.633Z", + "value": 1.1, + "unit": "U/hour", + "scheduledBasalRate": 1.1, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "suspend", + "startDate": "2026-01-23T05:20:33.633Z", + "endDate": "2026-01-23T05:23:16.702Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr" + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T05:23:16.703Z", + "endDate": "2026-01-23T05:24:59.913Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T05:24:59.914Z", + "endDate": "2026-01-23T05:30:00.444Z", + "value": 1.1, + "unit": "U/hour", + "scheduledBasalRate": 1.1, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T05:30:00.444Z", + "endDate": "2026-01-23T05:30:00.445Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T05:30:00.446Z", + "endDate": "2026-01-23T05:34:58.562Z", + "value": 1.1, + "unit": "U/hour", + "scheduledBasalRate": 1.1, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T05:34:58.563Z", + "endDate": "2026-01-23T05:34:58.566Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T05:34:58.566Z", + "endDate": "2026-01-23T05:44:59.488Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T05:44:59.489Z", + "endDate": "2026-01-23T05:44:59.542Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T05:44:59.543Z", + "endDate": "2026-01-23T05:49:58.255Z", + "value": 0.15, + "unit": "U/hour", + "scheduledBasalRate": 0.15, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T05:49:58.255Z", + "endDate": "2026-01-23T06:09:57.674Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-23T05:49:58.901Z", + "endDate": "2026-01-23T05:50:03.901Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-23T05:54:58.173Z", + "endDate": "2026-01-23T05:55:10.173Z", + "value": 0.4, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-23T05:59:58.268Z", + "endDate": "2026-01-23T06:00:10.268Z", + "value": 0.4, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-23T06:04:57.901Z", + "endDate": "2026-01-23T06:05:02.901Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T06:09:57.675Z", + "endDate": "2026-01-23T06:19:58.122Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T06:19:58.122Z", + "endDate": "2026-01-23T07:44:59.062Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-23T06:39:58.067Z", + "endDate": "2026-01-23T06:40:03.067Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-23T06:44:59.017Z", + "endDate": "2026-01-23T06:45:05.017Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-23T06:50:00.971Z", + "endDate": "2026-01-23T06:50:06.971Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-23T06:54:59.295Z", + "endDate": "2026-01-23T06:55:06.795Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-23T06:59:58.986Z", + "endDate": "2026-01-23T07:00:03.986Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-23T07:10:00.105Z", + "endDate": "2026-01-23T07:10:06.105Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-23T07:15:00.231Z", + "endDate": "2026-01-23T07:15:10.731Z", + "value": 0.35, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-23T07:19:58.691Z", + "endDate": "2026-01-23T07:20:03.691Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-23T07:24:58.47Z", + "endDate": "2026-01-23T07:25:03.470Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-23T07:29:59.12Z", + "endDate": "2026-01-23T07:30:09.620Z", + "value": 0.35, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-23T07:34:58.284Z", + "endDate": "2026-01-23T07:35:08.784Z", + "value": 0.35, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T07:44:59.063Z", + "endDate": "2026-01-23T07:49:58.280Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T07:49:58.284Z", + "endDate": "2026-01-23T07:54:59.034Z", + "value": 0.35, + "unit": "U/hour", + "scheduledBasalRate": 0.35, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T07:49:58.28Z", + "endDate": "2026-01-23T07:49:58.283Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T07:54:59.034Z", + "endDate": "2026-01-23T07:59:59.999Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-23T07:54:59.678Z", + "endDate": "2026-01-23T07:55:08.678Z", + "value": 0.3, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-23T08:00:00.596Z", + "endDate": "2026-01-23T08:00:08.096Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T08:00:00Z", + "endDate": "2026-01-23T08:49:59.553Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-23T08:05:00.196Z", + "endDate": "2026-01-23T08:05:05.196Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-23T08:09:57.963Z", + "endDate": "2026-01-23T08:10:02.963Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-23T08:14:58.475Z", + "endDate": "2026-01-23T08:15:03.475Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-23T08:19:59.185Z", + "endDate": "2026-01-23T08:20:05.185Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-23T08:24:58.38Z", + "endDate": "2026-01-23T08:25:04.380Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-23T08:39:58.078Z", + "endDate": "2026-01-23T08:40:03.078Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-23T08:45:00.484Z", + "endDate": "2026-01-23T08:45:05.484Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T08:49:59.553Z", + "endDate": "2026-01-23T08:54:58.467Z", + "value": 0.55, + "unit": "U/hour", + "scheduledBasalRate": 0.55, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T08:54:58.467Z", + "endDate": "2026-01-23T08:54:58.470Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T08:54:58.471Z", + "endDate": "2026-01-23T08:59:59.714Z", + "value": 0.4, + "unit": "U/hour", + "scheduledBasalRate": 0.4, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T08:59:59.715Z", + "endDate": "2026-01-23T08:59:59.717Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T08:59:59.717Z", + "endDate": "2026-01-23T09:10:01.006Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T09:10:01.006Z", + "endDate": "2026-01-23T09:10:01.008Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T09:10:01.009Z", + "endDate": "2026-01-23T09:15:00.095Z", + "value": 0.55, + "unit": "U/hour", + "scheduledBasalRate": 0.55, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T09:15:00.095Z", + "endDate": "2026-01-23T09:24:59.157Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-23T09:15:00.845Z", + "endDate": "2026-01-23T09:15:05.845Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-23T09:20:00.742Z", + "endDate": "2026-01-23T09:20:08.242Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T09:24:59.157Z", + "endDate": "2026-01-23T09:29:58.063Z", + "value": 0.6, + "unit": "U/hour", + "scheduledBasalRate": 0.6, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T09:29:58.064Z", + "endDate": "2026-01-23T09:29:58.066Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T09:29:58.066Z", + "endDate": "2026-01-23T09:34:59.191Z", + "value": 0.2, + "unit": "U/hour", + "scheduledBasalRate": 0.2, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T09:34:59.192Z", + "endDate": "2026-01-23T09:40:00.008Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T09:40:00.008Z", + "endDate": "2026-01-23T09:45:00.143Z", + "value": 0.4, + "unit": "U/hour", + "scheduledBasalRate": 0.4, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T09:45:00.144Z", + "endDate": "2026-01-23T09:54:59.617Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-23T09:45:01.058Z", + "endDate": "2026-01-23T09:45:07.058Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-23T09:49:58.467Z", + "endDate": "2026-01-23T09:50:11.967Z", + "value": 0.45, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T09:54:59.618Z", + "endDate": "2026-01-23T09:59:58.066Z", + "value": 0.4, + "unit": "U/hour", + "scheduledBasalRate": 0.4, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T09:59:58.066Z", + "endDate": "2026-01-23T09:59:58.068Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T09:59:58.069Z", + "endDate": "2026-01-23T10:04:58.458Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T10:04:58.459Z", + "endDate": "2026-01-23T10:14:59.628Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-23T10:04:59.269Z", + "endDate": "2026-01-23T10:05:06.769Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-23T10:09:59.21Z", + "endDate": "2026-01-23T10:10:05.210Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T10:14:59.629Z", + "endDate": "2026-01-23T10:35:02.960Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T10:35:02.96Z", + "endDate": "2026-01-23T10:44:58.304Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-23T10:35:03.709Z", + "endDate": "2026-01-23T10:35:08.709Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-23T10:39:59.767Z", + "endDate": "2026-01-23T10:40:04.767Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T10:44:58.304Z", + "endDate": "2026-01-23T10:49:59.667Z", + "value": 0.45, + "unit": "U/hour", + "scheduledBasalRate": 0.45, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T10:49:59.667Z", + "endDate": "2026-01-23T10:49:59.669Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T10:49:59.67Z", + "endDate": "2026-01-23T11:00:00.965Z", + "value": 0.2, + "unit": "U/hour", + "scheduledBasalRate": 0.2, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T11:00:00.966Z", + "endDate": "2026-01-23T11:00:00.968Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T11:00:00.968Z", + "endDate": "2026-01-23T11:04:58.359Z", + "value": 0.3, + "unit": "U/hour", + "scheduledBasalRate": 0.3, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T11:04:58.363Z", + "endDate": "2026-01-23T11:10:00.718Z", + "value": 0.4, + "unit": "U/hour", + "scheduledBasalRate": 0.4, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T11:04:58.36Z", + "endDate": "2026-01-23T11:04:58.362Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T11:10:00.718Z", + "endDate": "2026-01-23T11:10:00.720Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T11:10:00.72Z", + "endDate": "2026-01-23T11:30:00.480Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T11:30:00.481Z", + "endDate": "2026-01-23T11:30:00.482Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T11:30:00.483Z", + "endDate": "2026-01-23T11:49:58.382Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T11:49:58.383Z", + "endDate": "2026-01-23T11:54:57.961Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T11:54:57.961Z", + "endDate": "2026-01-23T12:05:00.245Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T12:05:00.246Z", + "endDate": "2026-01-23T12:20:00.613Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T12:20:00.614Z", + "endDate": "2026-01-23T12:39:58.565Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T12:39:58.565Z", + "endDate": "2026-01-23T12:39:58.569Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T12:39:58.569Z", + "endDate": "2026-01-23T12:59:59.576Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T12:59:59.576Z", + "endDate": "2026-01-23T12:59:59.579Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T12:59:59.579Z", + "endDate": "2026-01-23T13:15:00.409Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T13:15:00.41Z", + "endDate": "2026-01-23T13:19:59.501Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T13:19:59.501Z", + "endDate": "2026-01-23T13:39:58.425Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T13:39:58.426Z", + "endDate": "2026-01-23T13:39:58.429Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T13:39:58.429Z", + "endDate": "2026-01-23T13:59:58.637Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T13:59:58.637Z", + "endDate": "2026-01-23T13:59:58.640Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T13:59:58.641Z", + "endDate": "2026-01-23T14:10:01.726Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T14:10:01.726Z", + "endDate": "2026-01-23T14:15:00.860Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T14:15:00.86Z", + "endDate": "2026-01-23T14:24:59.723Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T14:24:59.724Z", + "endDate": "2026-01-23T14:55:00.432Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T14:55:00.433Z", + "endDate": "2026-01-23T14:59:59.551Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-23T14:55:33.545Z", + "endDate": "2026-01-23T14:56:03.545Z", + "value": 1, + "unit": "U", + "isMutable": false + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T14:59:59.551Z", + "endDate": "2026-01-23T14:59:59.999Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T15:00:00Z", + "endDate": "2026-01-23T15:40:00.548Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-23T15:15:00.52Z", + "endDate": "2026-01-23T15:15:23.020Z", + "value": 0.75, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-23T15:20:01.658Z", + "endDate": "2026-01-23T15:20:16.658Z", + "value": 0.5, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-23T15:24:58.732Z", + "endDate": "2026-01-23T15:25:06.232Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-23T15:30:01.489Z", + "endDate": "2026-01-23T15:30:06.489Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T15:40:00.548Z", + "endDate": "2026-01-23T15:54:58.660Z", + "value": 0.8, + "unit": "U/hour", + "scheduledBasalRate": 0.8, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T15:54:58.66Z", + "endDate": "2026-01-23T15:59:59.999Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T16:00:00Z", + "endDate": "2026-01-23T16:24:59.811Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-23T16:15:01.959Z", + "endDate": "2026-01-23T16:15:06.959Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T16:24:59.812Z", + "endDate": "2026-01-23T16:29:58.718Z", + "value": 0.3, + "unit": "U/hour", + "scheduledBasalRate": 0.3, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T16:29:58.719Z", + "endDate": "2026-01-23T17:36:00.547Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-23T17:11:01.286Z", + "endDate": "2026-01-23T17:11:06.286Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-23T17:16:03.299Z", + "endDate": "2026-01-23T17:16:18.299Z", + "value": 0.5, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-23T17:21:04.038Z", + "endDate": "2026-01-23T17:21:11.538Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-23T17:26:01.346Z", + "endDate": "2026-01-23T17:26:34.346Z", + "value": 1.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-23T17:31:02.996Z", + "endDate": "2026-01-23T17:31:29.996Z", + "value": 0.9, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T17:36:00.547Z", + "endDate": "2026-01-23T17:41:03.815Z", + "value": 0.5, + "unit": "U/hour", + "scheduledBasalRate": 0.5, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T17:41:03.816Z", + "endDate": "2026-01-23T17:41:03.868Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T17:41:03.868Z", + "endDate": "2026-01-23T17:51:01.734Z", + "value": 0.05, + "unit": "U/hour", + "scheduledBasalRate": 0.05, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T17:51:01.735Z", + "endDate": "2026-01-23T17:51:01.738Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T17:51:01.739Z", + "endDate": "2026-01-23T18:01:02.158Z", + "value": 0.5, + "unit": "U/hour", + "scheduledBasalRate": 0.5, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T18:01:02.158Z", + "endDate": "2026-01-23T18:01:02.161Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T18:01:02.161Z", + "endDate": "2026-01-23T18:21:02.184Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T18:21:02.185Z", + "endDate": "2026-01-23T18:21:02.189Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T18:21:02.189Z", + "endDate": "2026-01-23T18:31:02.878Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T18:31:02.878Z", + "endDate": "2026-01-23T18:31:02.882Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T18:31:02.882Z", + "endDate": "2026-01-23T18:36:02.925Z", + "value": 0.55, + "unit": "U/hour", + "scheduledBasalRate": 0.55, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T18:36:02.926Z", + "endDate": "2026-01-23T18:41:01.742Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T18:41:01.743Z", + "endDate": "2026-01-23T18:51:03.100Z", + "value": 0.15, + "unit": "U/hour", + "scheduledBasalRate": 0.15, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T18:51:03.1Z", + "endDate": "2026-01-23T18:56:00.849Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T18:56:00.85Z", + "endDate": "2026-01-23T19:01:02.552Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T19:01:02.553Z", + "endDate": "2026-01-23T19:11:01.056Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-23T19:01:03.466Z", + "endDate": "2026-01-23T19:01:08.466Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-23T19:06:03.754Z", + "endDate": "2026-01-23T19:06:08.754Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T19:11:01.056Z", + "endDate": "2026-01-23T19:26:04.033Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T19:26:04.034Z", + "endDate": "2026-01-23T19:26:04.035Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T19:26:04.035Z", + "endDate": "2026-01-23T19:31:05.162Z", + "value": 0.05, + "unit": "U/hour", + "scheduledBasalRate": 0.05, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T19:31:05.162Z", + "endDate": "2026-01-23T19:31:05.163Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T19:31:05.163Z", + "endDate": "2026-01-23T19:36:02.504Z", + "value": 0.4, + "unit": "U/hour", + "scheduledBasalRate": 0.4, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T19:36:02.505Z", + "endDate": "2026-01-23T19:36:02.507Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T19:36:02.507Z", + "endDate": "2026-01-23T19:56:01.278Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T19:56:01.278Z", + "endDate": "2026-01-23T20:36:03.261Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-23T20:01:01.236Z", + "endDate": "2026-01-23T20:01:06.236Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-23T20:06:02.532Z", + "endDate": "2026-01-23T20:06:13.032Z", + "value": 0.35, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-23T20:11:01.319Z", + "endDate": "2026-01-23T20:11:25.319Z", + "value": 0.8, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-23T20:16:02.749Z", + "endDate": "2026-01-23T20:16:35.749Z", + "value": 1.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-23T20:21:03.47Z", + "endDate": "2026-01-23T20:21:40.970Z", + "value": 1.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-23T20:26:03.129Z", + "endDate": "2026-01-23T20:26:39.129Z", + "value": 1.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-23T20:31:01.169Z", + "endDate": "2026-01-23T20:31:08.669Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T20:36:03.262Z", + "endDate": "2026-01-23T20:56:02.393Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T20:56:02.393Z", + "endDate": "2026-01-23T20:56:02.394Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T20:56:02.395Z", + "endDate": "2026-01-23T21:16:00.868Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T21:16:00.869Z", + "endDate": "2026-01-23T21:16:00.871Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T21:16:00.871Z", + "endDate": "2026-01-23T21:36:03.745Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T21:36:03.746Z", + "endDate": "2026-01-23T21:36:03.750Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T21:36:03.751Z", + "endDate": "2026-01-23T21:56:02.266Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T21:56:02.266Z", + "endDate": "2026-01-23T21:56:02.268Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T21:56:02.269Z", + "endDate": "2026-01-23T22:16:01.222Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T22:16:01.223Z", + "endDate": "2026-01-23T22:16:01.225Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T22:16:01.225Z", + "endDate": "2026-01-23T22:36:03.329Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T22:36:03.332Z", + "endDate": "2026-01-23T22:46:04.024Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T22:36:03.33Z", + "endDate": "2026-01-23T22:36:03.331Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T22:46:04.024Z", + "endDate": "2026-01-23T23:43:16.568Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-23T23:00:17.848Z", + "endDate": "2026-01-23T23:04:17.848Z", + "value": 8, + "unit": "U", + "isMutable": false + }, + { + "type": "bolus", + "startDate": "2026-01-23T23:16:04.53Z", + "endDate": "2026-01-23T23:16:21.030Z", + "value": 0.55, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-23T23:21:01.053Z", + "endDate": "2026-01-23T23:21:14.553Z", + "value": 0.45, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-23T23:26:03.474Z", + "endDate": "2026-01-23T23:26:10.974Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-23T23:31:03.416Z", + "endDate": "2026-01-23T23:31:13.916Z", + "value": 0.35, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-23T23:36:01.26Z", + "endDate": "2026-01-23T23:36:11.760Z", + "value": 0.35, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-23T23:41:00.875Z", + "endDate": "2026-01-23T23:41:05.875Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "suspend", + "startDate": "2026-01-23T23:43:16.569Z", + "endDate": "2026-01-23T23:46:54.402Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr" + }, + { + "type": "tempBasal", + "startDate": "2026-01-23T23:46:54.402Z", + "endDate": "2026-01-24T00:51:01.930Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-23T23:51:01.307Z", + "endDate": "2026-01-23T23:51:06.307Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-23T23:56:02.564Z", + "endDate": "2026-01-23T23:56:11.564Z", + "value": 0.3, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-24T00:01:01.654Z", + "endDate": "2026-01-24T00:01:07.654Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-24T00:06:01.449Z", + "endDate": "2026-01-24T00:06:06.449Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-24T00:16:02.29Z", + "endDate": "2026-01-24T00:16:09.790Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-24T00:21:02.071Z", + "endDate": "2026-01-24T00:21:17.071Z", + "value": 0.5, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-24T00:26:02.976Z", + "endDate": "2026-01-24T00:26:19.476Z", + "value": 0.55, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-24T00:31:02.199Z", + "endDate": "2026-01-24T00:31:23.199Z", + "value": 0.7, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-24T00:36:01.318Z", + "endDate": "2026-01-24T00:36:19.318Z", + "value": 0.6, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-24T00:41:02.584Z", + "endDate": "2026-01-24T00:41:16.084Z", + "value": 0.45, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-24T00:46:01.314Z", + "endDate": "2026-01-24T00:46:14.814Z", + "value": 0.45, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T00:51:01.931Z", + "endDate": "2026-01-24T00:56:03.134Z", + "value": 0.9, + "unit": "U/hour", + "scheduledBasalRate": 0.9, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T00:56:03.134Z", + "endDate": "2026-01-24T00:56:03.137Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T00:56:03.138Z", + "endDate": "2026-01-24T01:01:03.227Z", + "value": 0.9, + "unit": "U/hour", + "scheduledBasalRate": 0.9, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T01:01:03.228Z", + "endDate": "2026-01-24T01:01:03.230Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T01:01:03.23Z", + "endDate": "2026-01-24T01:06:01.027Z", + "value": 1.1, + "unit": "U/hour", + "scheduledBasalRate": 1.1, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T01:06:01.028Z", + "endDate": "2026-01-24T01:06:01.028Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T01:06:01.029Z", + "endDate": "2026-01-24T01:11:01.455Z", + "value": 1.1, + "unit": "U/hour", + "scheduledBasalRate": 1.1, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T01:11:01.455Z", + "endDate": "2026-01-24T01:11:01.458Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T01:11:01.459Z", + "endDate": "2026-01-24T01:16:00.992Z", + "value": 1.1, + "unit": "U/hour", + "scheduledBasalRate": 1.1, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T01:16:00.992Z", + "endDate": "2026-01-24T01:16:00.995Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T01:16:00.995Z", + "endDate": "2026-01-24T01:42:03.822Z", + "value": 1.1, + "unit": "U/hour", + "scheduledBasalRate": 1.1, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T01:42:03.823Z", + "endDate": "2026-01-24T01:42:03.826Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T01:42:03.827Z", + "endDate": "2026-01-24T02:06:06.963Z", + "value": 1.1, + "unit": "U/hour", + "scheduledBasalRate": 1.1, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-24T01:42:05.086Z", + "endDate": "2026-01-24T01:42:26.086Z", + "value": 0.7, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-24T01:56:03.235Z", + "endDate": "2026-01-24T01:56:34.735Z", + "value": 1.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-24T02:01:02.548Z", + "endDate": "2026-01-24T02:01:07.548Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T02:06:06.964Z", + "endDate": "2026-01-24T02:06:06.968Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T02:06:06.968Z", + "endDate": "2026-01-24T02:16:03.299Z", + "value": 1.1, + "unit": "U/hour", + "scheduledBasalRate": 1.1, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-24T02:06:08.402Z", + "endDate": "2026-01-24T02:06:36.902Z", + "value": 0.95, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-24T02:11:02.843Z", + "endDate": "2026-01-24T02:11:20.843Z", + "value": 0.6, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T02:16:03.299Z", + "endDate": "2026-01-24T02:16:03.303Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T02:16:03.304Z", + "endDate": "2026-01-24T02:21:02.034Z", + "value": 1.1, + "unit": "U/hour", + "scheduledBasalRate": 1.1, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T02:21:02.035Z", + "endDate": "2026-01-24T02:21:02.037Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T02:21:02.037Z", + "endDate": "2026-01-24T02:46:02.484Z", + "value": 1.1, + "unit": "U/hour", + "scheduledBasalRate": 1.1, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-24T02:36:10.102Z", + "endDate": "2026-01-24T02:36:15.102Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-24T02:40:45.041Z", + "endDate": "2026-01-24T02:43:36.041Z", + "value": 5.7, + "unit": "U", + "isMutable": false + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T02:46:02.485Z", + "endDate": "2026-01-24T02:46:02.487Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T02:46:02.488Z", + "endDate": "2026-01-24T02:51:03.853Z", + "value": 1.1, + "unit": "U/hour", + "scheduledBasalRate": 1.1, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-24T02:46:03.715Z", + "endDate": "2026-01-24T02:46:08.715Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T02:51:03.853Z", + "endDate": "2026-01-24T02:51:03.858Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T02:51:03.859Z", + "endDate": "2026-01-24T02:56:01.459Z", + "value": 0.55, + "unit": "U/hour", + "scheduledBasalRate": 0.55, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T02:56:01.459Z", + "endDate": "2026-01-24T02:56:01.464Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T02:56:01.465Z", + "endDate": "2026-01-24T03:01:02.422Z", + "value": 0.7, + "unit": "U/hour", + "scheduledBasalRate": 0.7, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T03:01:02.422Z", + "endDate": "2026-01-24T03:16:00.293Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-24T03:08:09.823Z", + "endDate": "2026-01-24T03:11:30.823Z", + "value": 6.7, + "unit": "U", + "isMutable": false + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T03:16:00.294Z", + "endDate": "2026-01-24T03:21:01.537Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T03:21:01.537Z", + "endDate": "2026-01-24T03:21:01.539Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T03:21:01.54Z", + "endDate": "2026-01-24T03:26:02.386Z", + "value": 0.2, + "unit": "U/hour", + "scheduledBasalRate": 0.2, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T03:26:02.386Z", + "endDate": "2026-01-24T03:31:00.434Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T03:31:00.434Z", + "endDate": "2026-01-24T03:36:00.677Z", + "value": 0.8, + "unit": "U/hour", + "scheduledBasalRate": 0.8, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T03:36:00.677Z", + "endDate": "2026-01-24T03:36:00.678Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T03:36:00.679Z", + "endDate": "2026-01-24T03:41:01.978Z", + "value": 0.7, + "unit": "U/hour", + "scheduledBasalRate": 0.7, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T03:41:01.979Z", + "endDate": "2026-01-24T03:41:01.981Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T03:41:01.981Z", + "endDate": "2026-01-24T03:46:00.961Z", + "value": 0.8, + "unit": "U/hour", + "scheduledBasalRate": 0.8, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T03:46:00.962Z", + "endDate": "2026-01-24T03:51:08.810Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T03:51:08.81Z", + "endDate": "2026-01-24T03:56:08.037Z", + "value": 0.85, + "unit": "U/hour", + "scheduledBasalRate": 0.85, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T03:56:08.038Z", + "endDate": "2026-01-24T04:13:02.282Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T04:13:02.282Z", + "endDate": "2026-01-24T04:21:03.501Z", + "value": 0.65, + "unit": "U/hour", + "scheduledBasalRate": 0.65, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T04:21:03.502Z", + "endDate": "2026-01-24T04:31:01.462Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T04:31:01.463Z", + "endDate": "2026-01-24T04:36:02.659Z", + "value": 0.9, + "unit": "U/hour", + "scheduledBasalRate": 0.9, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T04:36:02.659Z", + "endDate": "2026-01-24T04:36:02.662Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T04:36:02.662Z", + "endDate": "2026-01-24T04:41:03.948Z", + "value": 0.4, + "unit": "U/hour", + "scheduledBasalRate": 0.4, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T04:41:03.948Z", + "endDate": "2026-01-24T04:41:03.950Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T04:41:03.951Z", + "endDate": "2026-01-24T04:46:03.391Z", + "value": 0.5, + "unit": "U/hour", + "scheduledBasalRate": 0.5, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T04:46:03.391Z", + "endDate": "2026-01-24T05:11:03.626Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-24T04:46:03.992Z", + "endDate": "2026-01-24T04:46:08.992Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-24T04:51:06.345Z", + "endDate": "2026-01-24T04:51:12.345Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-24T04:56:03.99Z", + "endDate": "2026-01-24T04:56:08.990Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-24T05:01:01.74Z", + "endDate": "2026-01-24T05:01:06.740Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-24T05:06:01.466Z", + "endDate": "2026-01-24T05:06:06.466Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T05:11:03.627Z", + "endDate": "2026-01-24T05:16:01.484Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T05:16:01.484Z", + "endDate": "2026-01-24T05:16:01.487Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T05:16:01.488Z", + "endDate": "2026-01-24T05:21:03.638Z", + "value": 0.35, + "unit": "U/hour", + "scheduledBasalRate": 0.35, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T05:21:03.638Z", + "endDate": "2026-01-24T05:29:59.999Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-24T05:21:04.883Z", + "endDate": "2026-01-24T05:21:21.383Z", + "value": 0.55, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-24T05:26:02.939Z", + "endDate": "2026-01-24T05:26:11.939Z", + "value": 0.3, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T05:30:00Z", + "endDate": "2026-01-24T06:01:02.278Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-24T05:31:02.975Z", + "endDate": "2026-01-24T05:31:07.975Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-24T05:36:06.672Z", + "endDate": "2026-01-24T05:36:14.172Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-24T05:41:02.161Z", + "endDate": "2026-01-24T05:41:11.161Z", + "value": 0.3, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-24T05:46:02.808Z", + "endDate": "2026-01-24T05:46:10.308Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-24T05:51:05.499Z", + "endDate": "2026-01-24T05:51:10.499Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T06:01:02.278Z", + "endDate": "2026-01-24T06:06:03.250Z", + "value": 0.45, + "unit": "U/hour", + "scheduledBasalRate": 0.45, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T06:06:03.251Z", + "endDate": "2026-01-24T06:06:03.255Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T06:06:03.255Z", + "endDate": "2026-01-24T06:11:03.644Z", + "value": 0.2, + "unit": "U/hour", + "scheduledBasalRate": 0.2, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T06:11:03.645Z", + "endDate": "2026-01-24T06:11:03.647Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T06:11:03.648Z", + "endDate": "2026-01-24T06:31:05.723Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T06:31:05.723Z", + "endDate": "2026-01-24T06:31:05.725Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T06:31:05.726Z", + "endDate": "2026-01-24T06:51:03.210Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T06:51:03.211Z", + "endDate": "2026-01-24T06:51:03.211Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T06:51:03.212Z", + "endDate": "2026-01-24T07:11:03.054Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T07:11:03.054Z", + "endDate": "2026-01-24T07:11:03.057Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T07:11:03.057Z", + "endDate": "2026-01-24T07:31:01.546Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T07:31:01.546Z", + "endDate": "2026-01-24T07:31:01.549Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T07:31:01.549Z", + "endDate": "2026-01-24T07:51:02.555Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T07:51:02.556Z", + "endDate": "2026-01-24T07:51:02.558Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T07:51:02.558Z", + "endDate": "2026-01-24T08:11:02.678Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T08:11:02.679Z", + "endDate": "2026-01-24T08:11:02.682Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T08:11:02.682Z", + "endDate": "2026-01-24T08:31:00.954Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T08:31:00.955Z", + "endDate": "2026-01-24T08:31:00.957Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T08:31:00.958Z", + "endDate": "2026-01-24T08:51:03.730Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T08:51:03.732Z", + "endDate": "2026-01-24T09:11:01.112Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T08:51:03.73Z", + "endDate": "2026-01-24T08:51:03.731Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T09:11:01.112Z", + "endDate": "2026-01-24T09:11:01.113Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T09:11:01.113Z", + "endDate": "2026-01-24T09:31:03.222Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T09:31:03.223Z", + "endDate": "2026-01-24T09:31:03.226Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T09:31:03.226Z", + "endDate": "2026-01-24T09:51:02.726Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T09:51:02.727Z", + "endDate": "2026-01-24T10:16:01.302Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T10:16:01.302Z", + "endDate": "2026-01-24T10:36:01.041Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T10:36:01.042Z", + "endDate": "2026-01-24T10:36:01.047Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T10:36:01.047Z", + "endDate": "2026-01-24T10:56:01.725Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T10:56:01.726Z", + "endDate": "2026-01-24T10:56:01.728Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T10:56:01.729Z", + "endDate": "2026-01-24T11:01:00.711Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T11:01:00.711Z", + "endDate": "2026-01-24T11:06:02.311Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T11:06:02.311Z", + "endDate": "2026-01-24T11:21:02.014Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T11:21:02.015Z", + "endDate": "2026-01-24T11:36:01.582Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T11:36:01.582Z", + "endDate": "2026-01-24T11:41:00.839Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T11:41:00.839Z", + "endDate": "2026-01-24T12:16:01.307Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T12:16:01.307Z", + "endDate": "2026-01-24T12:21:02.663Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T12:21:02.664Z", + "endDate": "2026-01-24T12:36:00.794Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-24T12:26:03.074Z", + "endDate": "2026-01-24T12:26:21.074Z", + "value": 0.6, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-24T12:31:01.502Z", + "endDate": "2026-01-24T12:31:06.502Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T12:36:00.795Z", + "endDate": "2026-01-24T12:41:03.073Z", + "value": 0.4, + "unit": "U/hour", + "scheduledBasalRate": 0.4, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T12:41:03.073Z", + "endDate": "2026-01-24T12:56:02.213Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-24T12:46:03.617Z", + "endDate": "2026-01-24T12:46:08.617Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-24T12:51:01.018Z", + "endDate": "2026-01-24T12:51:06.018Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T12:56:02.214Z", + "endDate": "2026-01-24T13:01:02.461Z", + "value": 0.25, + "unit": "U/hour", + "scheduledBasalRate": 0.25, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T13:01:02.461Z", + "endDate": "2026-01-24T13:01:02.464Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T13:01:02.464Z", + "endDate": "2026-01-24T13:21:02.683Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T13:21:02.684Z", + "endDate": "2026-01-24T13:21:02.687Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T13:21:02.687Z", + "endDate": "2026-01-24T13:26:01.550Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T13:26:01.55Z", + "endDate": "2026-01-24T13:56:00.904Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-24T13:31:03.399Z", + "endDate": "2026-01-24T13:31:16.899Z", + "value": 0.45, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-24T13:36:01.665Z", + "endDate": "2026-01-24T13:36:12.165Z", + "value": 0.35, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-24T13:41:02.479Z", + "endDate": "2026-01-24T13:41:07.479Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-24T13:46:02.046Z", + "endDate": "2026-01-24T13:46:07.046Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T13:56:00.904Z", + "endDate": "2026-01-24T14:01:00.856Z", + "value": 0.4, + "unit": "U/hour", + "scheduledBasalRate": 0.4, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T14:01:00.857Z", + "endDate": "2026-01-24T14:01:00.859Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T14:01:00.86Z", + "endDate": "2026-01-24T14:21:00.762Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T14:21:00.762Z", + "endDate": "2026-01-24T14:21:00.766Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T14:21:00.766Z", + "endDate": "2026-01-24T14:41:00.790Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T14:41:00.791Z", + "endDate": "2026-01-24T14:41:00.793Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T14:41:00.793Z", + "endDate": "2026-01-24T14:46:03.810Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T14:46:03.811Z", + "endDate": "2026-01-24T15:00:00.000Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-24T14:46:04.455Z", + "endDate": "2026-01-24T14:46:09.455Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-24T14:51:01.911Z", + "endDate": "2026-01-24T14:51:06.911Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T15:00:00Z", + "endDate": "2026-01-24T15:21:00.251Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-24T15:01:01.248Z", + "endDate": "2026-01-24T15:01:06.248Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-24T15:06:03.368Z", + "endDate": "2026-01-24T15:06:08.368Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T15:21:00.251Z", + "endDate": "2026-01-24T15:26:00.916Z", + "value": 0.7, + "unit": "U/hour", + "scheduledBasalRate": 0.7, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T15:26:00.917Z", + "endDate": "2026-01-24T15:26:00.919Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T15:26:00.919Z", + "endDate": "2026-01-24T15:36:00.803Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T15:36:00.804Z", + "endDate": "2026-01-24T15:51:03.092Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-24T15:41:02.52Z", + "endDate": "2026-01-24T15:41:07.520Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T15:51:03.092Z", + "endDate": "2026-01-24T16:06:03.831Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T16:06:03.832Z", + "endDate": "2026-01-24T16:11:03.357Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T16:11:03.357Z", + "endDate": "2026-01-24T16:16:01.804Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T16:16:01.804Z", + "endDate": "2026-01-24T17:31:07.462Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-24T16:16:02.449Z", + "endDate": "2026-01-24T16:16:07.449Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-24T16:36:02.996Z", + "endDate": "2026-01-24T16:36:08.996Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-24T16:41:01.769Z", + "endDate": "2026-01-24T16:41:06.769Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-24T16:46:02.715Z", + "endDate": "2026-01-24T16:46:07.715Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-24T16:51:04.115Z", + "endDate": "2026-01-24T16:51:09.115Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-24T16:56:07.164Z", + "endDate": "2026-01-24T16:56:12.164Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-24T17:01:02.126Z", + "endDate": "2026-01-24T17:01:07.126Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-24T17:06:03.227Z", + "endDate": "2026-01-24T17:06:08.227Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-24T17:11:02.138Z", + "endDate": "2026-01-24T17:11:07.138Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-24T17:16:01.735Z", + "endDate": "2026-01-24T17:16:06.735Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-24T17:21:03.895Z", + "endDate": "2026-01-24T17:21:24.895Z", + "value": 0.7, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-24T17:26:13.299Z", + "endDate": "2026-01-24T17:26:18.299Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T17:31:07.462Z", + "endDate": "2026-01-24T17:51:01.143Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T17:51:01.144Z", + "endDate": "2026-01-24T17:51:01.145Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T17:51:01.145Z", + "endDate": "2026-01-24T17:56:01.824Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-24T17:54:09.951Z", + "endDate": "2026-01-24T17:55:57.951Z", + "value": 3.6, + "unit": "U", + "isMutable": false + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T17:56:01.825Z", + "endDate": "2026-01-24T18:41:02.945Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-24T18:16:02.688Z", + "endDate": "2026-01-24T18:16:07.688Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-24T18:21:07.156Z", + "endDate": "2026-01-24T18:21:13.156Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-24T18:26:01.561Z", + "endDate": "2026-01-24T18:26:06.561Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T18:41:02.945Z", + "endDate": "2026-01-24T18:46:03.035Z", + "value": 0.55, + "unit": "U/hour", + "scheduledBasalRate": 0.55, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T18:46:03.035Z", + "endDate": "2026-01-24T18:59:59.999Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T19:00:00Z", + "endDate": "2026-01-24T19:06:00.688Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T19:06:00.689Z", + "endDate": "2026-01-24T19:11:03.426Z", + "value": 0.5, + "unit": "U/hour", + "scheduledBasalRate": 0.5, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T19:11:03.426Z", + "endDate": "2026-01-24T19:11:03.427Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T19:11:03.428Z", + "endDate": "2026-01-24T19:16:04.825Z", + "value": 0.25, + "unit": "U/hour", + "scheduledBasalRate": 0.25, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T19:16:04.826Z", + "endDate": "2026-01-24T19:16:04.827Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T19:16:04.827Z", + "endDate": "2026-01-24T19:21:02.446Z", + "value": 0.5, + "unit": "U/hour", + "scheduledBasalRate": 0.5, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T19:21:02.447Z", + "endDate": "2026-01-24T19:21:02.451Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T19:21:02.451Z", + "endDate": "2026-01-24T19:26:03.665Z", + "value": 0.7, + "unit": "U/hour", + "scheduledBasalRate": 0.7, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T19:26:03.666Z", + "endDate": "2026-01-24T19:41:00.699Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T19:41:00.699Z", + "endDate": "2026-01-24T19:51:01.634Z", + "value": 0.75, + "unit": "U/hour", + "scheduledBasalRate": 0.75, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T19:51:01.634Z", + "endDate": "2026-01-24T19:56:02.797Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T19:56:02.798Z", + "endDate": "2026-01-24T20:01:00.862Z", + "value": 0.7, + "unit": "U/hour", + "scheduledBasalRate": 0.7, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T20:01:00.863Z", + "endDate": "2026-01-24T20:01:00.865Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T20:01:00.865Z", + "endDate": "2026-01-24T20:06:26.641Z", + "value": 0.75, + "unit": "U/hour", + "scheduledBasalRate": 0.75, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T20:06:26.642Z", + "endDate": "2026-01-24T20:06:26.645Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T20:06:26.645Z", + "endDate": "2026-01-24T20:11:03.601Z", + "value": 0.1, + "unit": "U/hour", + "scheduledBasalRate": 0.1, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T20:11:03.602Z", + "endDate": "2026-01-24T20:11:03.614Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T20:11:03.614Z", + "endDate": "2026-01-24T20:16:00.824Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-24T20:11:08.083Z", + "endDate": "2026-01-24T20:13:12.583Z", + "value": 4.15, + "unit": "U", + "isMutable": false + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T20:16:00.825Z", + "endDate": "2026-01-24T21:26:02.482Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T21:26:02.482Z", + "endDate": "2026-01-24T21:41:00.827Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T21:41:00.828Z", + "endDate": "2026-01-24T21:46:00.765Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T21:46:00.765Z", + "endDate": "2026-01-24T21:51:00.934Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T21:51:00.934Z", + "endDate": "2026-01-24T21:59:59.999Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T22:00:00Z", + "endDate": "2026-01-24T22:51:04.342Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-24T22:01:02.91Z", + "endDate": "2026-01-24T22:01:20.910Z", + "value": 0.6, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-24T22:06:00.782Z", + "endDate": "2026-01-24T22:06:14.282Z", + "value": 0.45, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-24T22:11:01.896Z", + "endDate": "2026-01-24T22:11:09.396Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-24T22:16:01.477Z", + "endDate": "2026-01-24T22:16:07.477Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-24T22:21:01.781Z", + "endDate": "2026-01-24T22:21:07.781Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-24T22:31:01.654Z", + "endDate": "2026-01-24T22:31:10.654Z", + "value": 0.3, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-24T22:36:00.621Z", + "endDate": "2026-01-24T22:36:20.121Z", + "value": 0.65, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-24T22:41:02.244Z", + "endDate": "2026-01-24T22:41:21.744Z", + "value": 0.65, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-24T22:46:04.675Z", + "endDate": "2026-01-24T22:46:19.675Z", + "value": 0.5, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T22:51:04.343Z", + "endDate": "2026-01-24T22:56:03.682Z", + "value": 0.3, + "unit": "U/hour", + "scheduledBasalRate": 0.3, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T22:56:03.682Z", + "endDate": "2026-01-24T22:56:03.685Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T22:56:03.686Z", + "endDate": "2026-01-24T23:16:02.636Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T23:16:02.636Z", + "endDate": "2026-01-24T23:16:02.637Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T23:16:02.637Z", + "endDate": "2026-01-24T23:36:02.342Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T23:36:02.343Z", + "endDate": "2026-01-24T23:36:02.345Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T23:36:02.345Z", + "endDate": "2026-01-24T23:56:03.230Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T23:56:03.235Z", + "endDate": "2026-01-25T00:16:00.704Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-24T23:56:03.23Z", + "endDate": "2026-01-24T23:56:03.234Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T00:16:00.704Z", + "endDate": "2026-01-25T00:16:00.707Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T00:16:00.708Z", + "endDate": "2026-01-25T00:36:01.560Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T00:36:01.562Z", + "endDate": "2026-01-25T00:41:01.500Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T00:36:01.56Z", + "endDate": "2026-01-25T00:36:01.562Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T00:41:01.501Z", + "endDate": "2026-01-25T01:00:00.000Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-25T00:46:00.95Z", + "endDate": "2026-01-25T00:46:20.450Z", + "value": 0.65, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-25T00:51:04.308Z", + "endDate": "2026-01-25T00:51:25.308Z", + "value": 0.7, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-25T00:56:04.475Z", + "endDate": "2026-01-25T00:56:28.475Z", + "value": 0.8, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T01:00:00Z", + "endDate": "2026-01-25T01:11:05.421Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-25T01:01:01.207Z", + "endDate": "2026-01-25T01:01:22.207Z", + "value": 0.7, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-25T01:06:01.032Z", + "endDate": "2026-01-25T01:06:08.532Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T01:11:05.422Z", + "endDate": "2026-01-25T01:31:02.390Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T01:31:02.392Z", + "endDate": "2026-01-25T01:51:03.655Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T01:31:02.39Z", + "endDate": "2026-01-25T01:31:02.392Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T01:51:03.656Z", + "endDate": "2026-01-25T01:51:03.658Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T01:51:03.659Z", + "endDate": "2026-01-25T02:11:03.276Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T02:11:03.276Z", + "endDate": "2026-01-25T02:51:02.072Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-25T02:16:00.5Z", + "endDate": "2026-01-25T02:16:15.500Z", + "value": 0.5, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-25T02:21:01.578Z", + "endDate": "2026-01-25T02:21:16.578Z", + "value": 0.5, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-25T02:26:03.436Z", + "endDate": "2026-01-25T02:26:21.436Z", + "value": 0.6, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-25T02:31:04.485Z", + "endDate": "2026-01-25T02:31:20.985Z", + "value": 0.55, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-25T02:36:02.115Z", + "endDate": "2026-01-25T02:36:07.115Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T02:51:02.073Z", + "endDate": "2026-01-25T02:56:00.713Z", + "value": 0.4, + "unit": "U/hour", + "scheduledBasalRate": 0.4, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T02:56:00.714Z", + "endDate": "2026-01-25T02:56:00.716Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T02:56:00.717Z", + "endDate": "2026-01-25T03:16:00.820Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T03:16:00.824Z", + "endDate": "2026-01-25T03:36:00.794Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T03:16:00.82Z", + "endDate": "2026-01-25T03:16:00.823Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T03:36:00.794Z", + "endDate": "2026-01-25T03:36:00.798Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T03:36:00.799Z", + "endDate": "2026-01-25T03:56:03.229Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T03:56:03.229Z", + "endDate": "2026-01-25T03:56:03.233Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T03:56:03.233Z", + "endDate": "2026-01-25T04:16:03.173Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T04:16:03.174Z", + "endDate": "2026-01-25T04:16:03.177Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T04:16:03.177Z", + "endDate": "2026-01-25T04:31:03.117Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T04:31:03.118Z", + "endDate": "2026-01-25T04:36:00.582Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T04:36:00.582Z", + "endDate": "2026-01-25T04:41:00.463Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T04:41:00.464Z", + "endDate": "2026-01-25T05:30:00.000Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-25T05:06:08.707Z", + "endDate": "2026-01-25T05:06:29.707Z", + "value": 0.7, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-25T05:11:02.785Z", + "endDate": "2026-01-25T05:11:13.285Z", + "value": 0.35, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-25T05:16:01.572Z", + "endDate": "2026-01-25T05:16:07.572Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-25T05:21:02.242Z", + "endDate": "2026-01-25T05:21:07.242Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-25T05:26:02.899Z", + "endDate": "2026-01-25T05:26:07.899Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T05:30:00Z", + "endDate": "2026-01-25T05:41:00.135Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-25T05:31:06.533Z", + "endDate": "2026-01-25T05:31:11.533Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-25T05:36:02.488Z", + "endDate": "2026-01-25T05:36:07.488Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T05:41:00.135Z", + "endDate": "2026-01-25T05:51:03.192Z", + "value": 0.55, + "unit": "U/hour", + "scheduledBasalRate": 0.55, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T05:51:03.193Z", + "endDate": "2026-01-25T05:56:00.368Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T05:56:00.369Z", + "endDate": "2026-01-25T06:26:00.369Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T06:26:00.369Z", + "endDate": "2026-01-25T06:46:01.452Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T06:46:01.453Z", + "endDate": "2026-01-25T06:51:02.840Z", + "value": 0.35, + "unit": "U/hour", + "scheduledBasalRate": 0.35, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T06:51:02.845Z", + "endDate": "2026-01-25T06:56:01.992Z", + "value": 0.55, + "unit": "U/hour", + "scheduledBasalRate": 0.55, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T06:51:02.84Z", + "endDate": "2026-01-25T06:51:02.844Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T06:56:01.993Z", + "endDate": "2026-01-25T07:01:01.935Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T07:01:01.936Z", + "endDate": "2026-01-25T07:21:02.754Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T07:21:02.754Z", + "endDate": "2026-01-25T07:21:02.758Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T07:21:02.759Z", + "endDate": "2026-01-25T07:41:01.471Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T07:41:01.472Z", + "endDate": "2026-01-25T07:59:59.999Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-25T07:56:02.089Z", + "endDate": "2026-01-25T07:56:14.089Z", + "value": 0.4, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T08:00:00Z", + "endDate": "2026-01-25T08:16:00.916Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-25T08:01:00.881Z", + "endDate": "2026-01-25T08:01:09.881Z", + "value": 0.3, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-25T08:06:02.93Z", + "endDate": "2026-01-25T08:06:07.930Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-25T08:11:02.337Z", + "endDate": "2026-01-25T08:11:07.337Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T08:16:00.916Z", + "endDate": "2026-01-25T08:21:01.613Z", + "value": 0.5, + "unit": "U/hour", + "scheduledBasalRate": 0.5, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T08:21:01.613Z", + "endDate": "2026-01-25T08:21:01.617Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T08:21:01.618Z", + "endDate": "2026-01-25T08:41:01.021Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T08:41:01.021Z", + "endDate": "2026-01-25T08:41:01.024Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T08:41:01.024Z", + "endDate": "2026-01-25T09:01:00.696Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T09:01:00.697Z", + "endDate": "2026-01-25T09:01:00.699Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T09:01:00.699Z", + "endDate": "2026-01-25T09:21:01.664Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T09:21:01.665Z", + "endDate": "2026-01-25T09:21:01.669Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T09:21:01.669Z", + "endDate": "2026-01-25T09:41:02.792Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T09:41:02.792Z", + "endDate": "2026-01-25T09:41:02.793Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T09:41:02.794Z", + "endDate": "2026-01-25T10:01:00.692Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T10:01:00.692Z", + "endDate": "2026-01-25T10:56:01.451Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-25T10:31:02.607Z", + "endDate": "2026-01-25T10:31:13.107Z", + "value": 0.35, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-25T10:36:00.813Z", + "endDate": "2026-01-25T10:36:05.813Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-25T10:41:02.663Z", + "endDate": "2026-01-25T10:41:07.663Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-25T10:46:01.225Z", + "endDate": "2026-01-25T10:46:06.225Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T10:56:01.452Z", + "endDate": "2026-01-25T11:01:01.346Z", + "value": 0.5, + "unit": "U/hour", + "scheduledBasalRate": 0.5, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T11:01:01.346Z", + "endDate": "2026-01-25T11:01:01.349Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T11:01:01.35Z", + "endDate": "2026-01-25T11:06:00.599Z", + "value": 0.2, + "unit": "U/hour", + "scheduledBasalRate": 0.2, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T11:06:00.599Z", + "endDate": "2026-01-25T11:06:00.600Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T11:06:00.6Z", + "endDate": "2026-01-25T11:11:03.845Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T11:11:03.846Z", + "endDate": "2026-01-25T11:11:03.848Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T11:11:03.848Z", + "endDate": "2026-01-25T11:16:01.600Z", + "value": 0.25, + "unit": "U/hour", + "scheduledBasalRate": 0.25, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T11:16:01.6Z", + "endDate": "2026-01-25T11:21:01.767Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-25T11:16:02.322Z", + "endDate": "2026-01-25T11:16:07.322Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T11:21:01.767Z", + "endDate": "2026-01-25T11:26:01.361Z", + "value": 0.5, + "unit": "U/hour", + "scheduledBasalRate": 0.5, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T11:26:01.362Z", + "endDate": "2026-01-25T11:26:01.363Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T11:26:01.364Z", + "endDate": "2026-01-25T11:46:03.029Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T11:46:03.029Z", + "endDate": "2026-01-25T11:46:03.031Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T11:46:03.032Z", + "endDate": "2026-01-25T12:01:00.989Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T12:01:00.989Z", + "endDate": "2026-01-25T12:51:01.766Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-25T12:21:00.83Z", + "endDate": "2026-01-25T12:21:08.330Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-25T12:26:04.781Z", + "endDate": "2026-01-25T12:26:10.781Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-25T12:31:02.639Z", + "endDate": "2026-01-25T12:31:07.639Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-25T12:36:01.324Z", + "endDate": "2026-01-25T12:36:06.324Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T12:51:01.767Z", + "endDate": "2026-01-25T12:56:03.703Z", + "value": 0.4, + "unit": "U/hour", + "scheduledBasalRate": 0.4, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T12:56:03.704Z", + "endDate": "2026-01-25T12:56:03.707Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T12:56:03.708Z", + "endDate": "2026-01-25T13:01:01.325Z", + "value": 0.1, + "unit": "U/hour", + "scheduledBasalRate": 0.1, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T13:01:01.326Z", + "endDate": "2026-01-25T13:01:01.329Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T13:01:01.329Z", + "endDate": "2026-01-25T13:16:01.527Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T13:16:01.527Z", + "endDate": "2026-01-25T13:21:02.620Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T13:21:02.621Z", + "endDate": "2026-01-25T13:41:01.417Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T13:41:01.417Z", + "endDate": "2026-01-25T14:26:00.971Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-25T13:51:03.089Z", + "endDate": "2026-01-25T13:51:09.089Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-25T14:11:01.049Z", + "endDate": "2026-01-25T14:11:06.049Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-25T14:16:02.404Z", + "endDate": "2026-01-25T14:16:07.404Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T14:26:00.971Z", + "endDate": "2026-01-25T14:31:01.766Z", + "value": 0.55, + "unit": "U/hour", + "scheduledBasalRate": 0.55, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T14:31:01.767Z", + "endDate": "2026-01-25T14:31:01.771Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T14:31:01.771Z", + "endDate": "2026-01-25T14:36:02.862Z", + "value": 0.4, + "unit": "U/hour", + "scheduledBasalRate": 0.4, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T14:36:02.862Z", + "endDate": "2026-01-25T14:36:02.864Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T14:36:02.865Z", + "endDate": "2026-01-25T14:51:02.091Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T14:51:02.091Z", + "endDate": "2026-01-25T14:59:59.999Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-25T14:51:03.111Z", + "endDate": "2026-01-25T14:51:08.111Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-25T14:56:05.95Z", + "endDate": "2026-01-25T14:56:10.950Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T15:00:00Z", + "endDate": "2026-01-25T15:01:01.148Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T15:01:01.148Z", + "endDate": "2026-01-25T15:06:03.379Z", + "value": 0.85, + "unit": "U/hour", + "scheduledBasalRate": 0.85, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T15:06:03.379Z", + "endDate": "2026-01-25T15:06:03.381Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T15:06:03.382Z", + "endDate": "2026-01-25T15:11:02.677Z", + "value": 0.45, + "unit": "U/hour", + "scheduledBasalRate": 0.45, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T15:11:02.678Z", + "endDate": "2026-01-25T15:25:59.987Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-25T15:16:03.356Z", + "endDate": "2026-01-25T15:16:08.356Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T15:25:59.988Z", + "endDate": "2026-01-25T15:46:01.243Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T15:46:01.243Z", + "endDate": "2026-01-25T15:46:01.268Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T15:46:01.269Z", + "endDate": "2026-01-25T16:01:00.801Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T16:01:00.801Z", + "endDate": "2026-01-25T16:36:01.879Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-25T16:21:01.481Z", + "endDate": "2026-01-25T16:21:10.481Z", + "value": 0.3, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-25T16:26:01.091Z", + "endDate": "2026-01-25T16:26:07.091Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-25T16:31:01.033Z", + "endDate": "2026-01-25T16:31:06.033Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T16:36:01.879Z", + "endDate": "2026-01-25T16:41:02.313Z", + "value": 0.6, + "unit": "U/hour", + "scheduledBasalRate": 0.6, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T16:41:02.314Z", + "endDate": "2026-01-25T16:41:02.317Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T16:41:02.317Z", + "endDate": "2026-01-25T16:46:01.818Z", + "value": 0.45, + "unit": "U/hour", + "scheduledBasalRate": 0.45, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T16:46:01.818Z", + "endDate": "2026-01-25T16:51:02.047Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T16:51:02.047Z", + "endDate": "2026-01-25T16:56:05.182Z", + "value": 0.5, + "unit": "U/hour", + "scheduledBasalRate": 0.5, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T16:56:05.183Z", + "endDate": "2026-01-25T16:56:05.184Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T16:56:05.184Z", + "endDate": "2026-01-25T17:01:03.443Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T17:01:03.443Z", + "endDate": "2026-01-25T17:01:03.445Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T17:01:03.446Z", + "endDate": "2026-01-25T17:06:02.949Z", + "value": 0.1, + "unit": "U/hour", + "scheduledBasalRate": 0.1, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T17:06:02.953Z", + "endDate": "2026-01-25T17:11:08.485Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T17:06:02.95Z", + "endDate": "2026-01-25T17:06:02.952Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T17:11:08.485Z", + "endDate": "2026-01-25T17:16:11.328Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T17:16:11.328Z", + "endDate": "2026-01-25T17:21:02.316Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T17:21:02.317Z", + "endDate": "2026-01-25T17:56:01.436Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-25T17:29:28.523Z", + "endDate": "2026-01-25T17:31:40.523Z", + "value": 4.4, + "unit": "U", + "isMutable": false + }, + { + "type": "bolus", + "startDate": "2026-01-25T17:46:00.768Z", + "endDate": "2026-01-25T17:46:06.768Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-25T17:51:00.786Z", + "endDate": "2026-01-25T17:51:06.786Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T17:56:01.436Z", + "endDate": "2026-01-25T18:16:02.313Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T18:16:02.313Z", + "endDate": "2026-01-25T18:16:02.316Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T18:16:02.317Z", + "endDate": "2026-01-25T18:31:00.727Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T18:31:00.727Z", + "endDate": "2026-01-25T18:31:00.730Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T18:31:00.731Z", + "endDate": "2026-01-25T18:36:01.374Z", + "value": 0.55, + "unit": "U/hour", + "scheduledBasalRate": 0.55, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T18:36:01.374Z", + "endDate": "2026-01-25T18:36:01.376Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T18:36:01.377Z", + "endDate": "2026-01-25T18:41:00.957Z", + "value": 0.35, + "unit": "U/hour", + "scheduledBasalRate": 0.35, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T18:41:00.958Z", + "endDate": "2026-01-25T18:41:00.960Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T18:41:00.96Z", + "endDate": "2026-01-25T18:46:01.123Z", + "value": 0.3, + "unit": "U/hour", + "scheduledBasalRate": 0.3, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T18:46:01.123Z", + "endDate": "2026-01-25T18:46:01.125Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T18:46:01.126Z", + "endDate": "2026-01-25T18:56:00.636Z", + "value": 0.45, + "unit": "U/hour", + "scheduledBasalRate": 0.45, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T18:56:00.636Z", + "endDate": "2026-01-25T18:56:00.642Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T18:56:00.642Z", + "endDate": "2026-01-25T19:01:00.460Z", + "value": 0.6, + "unit": "U/hour", + "scheduledBasalRate": 0.6, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T19:01:00.46Z", + "endDate": "2026-01-25T19:26:01.781Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T19:26:01.782Z", + "endDate": "2026-01-25T19:31:02.069Z", + "value": 0.15, + "unit": "U/hour", + "scheduledBasalRate": 0.15, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T19:31:02.073Z", + "endDate": "2026-01-25T19:36:01.431Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T19:31:02.07Z", + "endDate": "2026-01-25T19:31:02.073Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T19:36:01.431Z", + "endDate": "2026-01-25T19:36:01.435Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T19:36:01.436Z", + "endDate": "2026-01-25T19:41:05.737Z", + "value": 0.7, + "unit": "U/hour", + "scheduledBasalRate": 0.7, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T19:41:05.737Z", + "endDate": "2026-01-25T19:46:00.083Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T19:46:00.084Z", + "endDate": "2026-01-25T19:56:01.172Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T19:56:01.172Z", + "endDate": "2026-01-25T20:01:00.077Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T20:01:00.078Z", + "endDate": "2026-01-25T20:06:00.558Z", + "value": 0.2, + "unit": "U/hour", + "scheduledBasalRate": 0.2, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T20:06:00.559Z", + "endDate": "2026-01-25T20:10:59.931Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T20:10:59.931Z", + "endDate": "2026-01-25T20:21:00.940Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T20:21:00.941Z", + "endDate": "2026-01-25T21:51:00.992Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-25T20:25:10.274Z", + "endDate": "2026-01-25T20:26:23.774Z", + "value": 2.45, + "unit": "U", + "isMutable": false + }, + { + "type": "bolus", + "startDate": "2026-01-25T20:29:37.266Z", + "endDate": "2026-01-25T20:30:07.266Z", + "value": 1, + "unit": "U", + "isMutable": false + }, + { + "type": "bolus", + "startDate": "2026-01-25T20:41:02.092Z", + "endDate": "2026-01-25T20:41:14.092Z", + "value": 0.4, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-25T20:43:28.794Z", + "endDate": "2026-01-25T20:45:42.294Z", + "value": 4.45, + "unit": "U", + "isMutable": false + }, + { + "type": "bolus", + "startDate": "2026-01-25T21:21:03.197Z", + "endDate": "2026-01-25T21:21:30.197Z", + "value": 0.9, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-25T21:41:02.988Z", + "endDate": "2026-01-25T21:41:26.988Z", + "value": 0.8, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-25T21:45:51.024Z", + "endDate": "2026-01-25T21:47:57.024Z", + "value": 4.2, + "unit": "U", + "isMutable": false + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T21:51:00.992Z", + "endDate": "2026-01-25T21:51:02.355Z", + "value": 0.5, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T21:51:02.355Z", + "endDate": "2026-01-25T21:56:01.472Z", + "value": 1, + "unit": "U/hour", + "scheduledBasalRate": 1, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T21:56:01.473Z", + "endDate": "2026-01-25T21:56:01.476Z", + "value": 0.5, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T21:56:01.477Z", + "endDate": "2026-01-25T22:01:03.680Z", + "value": 0.5, + "unit": "U/hour", + "scheduledBasalRate": 0.5, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T22:01:03.683Z", + "endDate": "2026-01-25T22:06:02.045Z", + "value": 0.45, + "unit": "U/hour", + "scheduledBasalRate": 0.45, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T22:01:03.68Z", + "endDate": "2026-01-25T22:01:03.683Z", + "value": 0.45, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T22:06:02.046Z", + "endDate": "2026-01-25T22:06:02.049Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T22:06:02.05Z", + "endDate": "2026-01-25T22:26:00.549Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T22:26:00.549Z", + "endDate": "2026-01-25T23:21:00.489Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-25T22:46:00.458Z", + "endDate": "2026-01-25T22:46:18.458Z", + "value": 0.6, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-25T22:51:01.405Z", + "endDate": "2026-01-25T22:51:11.905Z", + "value": 0.35, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-25T22:56:01.484Z", + "endDate": "2026-01-25T22:56:08.984Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-25T22:59:16.214Z", + "endDate": "2026-01-25T23:01:10.214Z", + "value": 3.8, + "unit": "U", + "isMutable": false + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T23:21:00.49Z", + "endDate": "2026-01-25T23:41:01.239Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T23:41:01.239Z", + "endDate": "2026-01-25T23:41:01.295Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T23:41:01.295Z", + "endDate": "2026-01-25T23:46:02.727Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T23:46:02.728Z", + "endDate": "2026-01-25T23:55:59.829Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-25T23:55:59.829Z", + "endDate": "2026-01-26T00:06:02.186Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-26T00:06:02.187Z", + "endDate": "2026-01-26T00:16:00.470Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-26T00:14:21.919Z", + "endDate": "2026-01-26T00:15:15.919Z", + "value": 1.8, + "unit": "U", + "isMutable": false + }, + { + "type": "tempBasal", + "startDate": "2026-01-26T00:16:00.47Z", + "endDate": "2026-01-26T00:26:00.461Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-26T00:26:00.462Z", + "endDate": "2026-01-26T00:51:09.394Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-26T00:31:05.609Z", + "endDate": "2026-01-26T00:31:10.609Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-26T00:51:09.394Z", + "endDate": "2026-01-26T00:56:02.143Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-26T00:56:02.143Z", + "endDate": "2026-01-26T00:59:59.999Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-26T01:00:00Z", + "endDate": "2026-01-26T01:16:02.818Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-26T01:06:02.006Z", + "endDate": "2026-01-26T01:06:07.006Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-26T01:16:02.819Z", + "endDate": "2026-01-26T01:21:06.107Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-26T01:21:06.107Z", + "endDate": "2026-01-26T01:25:59.897Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-26T01:25:59.898Z", + "endDate": "2026-01-26T01:31:02.706Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-26T01:31:02.706Z", + "endDate": "2026-01-26T02:26:00.169Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-26T01:56:05.575Z", + "endDate": "2026-01-26T01:56:11.575Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-26T02:01:00.809Z", + "endDate": "2026-01-26T02:01:05.809Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-26T02:06:01.306Z", + "endDate": "2026-01-26T02:06:06.306Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-26T02:21:07.179Z", + "endDate": "2026-01-26T02:21:12.179Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-26T02:26:00.169Z", + "endDate": "2026-01-26T02:36:01.122Z", + "value": 0.5, + "unit": "U/hour", + "scheduledBasalRate": 0.5, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-26T02:36:01.122Z", + "endDate": "2026-01-26T02:36:01.125Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-26T02:36:01.125Z", + "endDate": "2026-01-26T02:51:00.557Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-26T02:44:16.861Z", + "endDate": "2026-01-26T02:48:33.361Z", + "value": 8.55, + "unit": "U", + "isMutable": false + }, + { + "type": "tempBasal", + "startDate": "2026-01-26T02:51:00.558Z", + "endDate": "2026-01-26T05:06:02.511Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-26T04:36:02.491Z", + "endDate": "2026-01-26T04:36:07.491Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-26T04:46:00.126Z", + "endDate": "2026-01-26T04:46:05.126Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-26T04:51:02.42Z", + "endDate": "2026-01-26T04:51:07.420Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-26T04:56:02.695Z", + "endDate": "2026-01-26T04:56:07.695Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-26T05:06:02.511Z", + "endDate": "2026-01-26T05:11:02.023Z", + "value": 0.75, + "unit": "U/hour", + "scheduledBasalRate": 0.75, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-26T05:11:02.023Z", + "endDate": "2026-01-26T05:16:00.070Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-26T05:16:00.071Z", + "endDate": "2026-01-26T05:21:01.655Z", + "value": 0.8, + "unit": "U/hour", + "scheduledBasalRate": 0.8, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-26T05:21:01.655Z", + "endDate": "2026-01-26T05:21:01.657Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-26T05:21:01.658Z", + "endDate": "2026-01-26T05:26:04.867Z", + "value": 0.7, + "unit": "U/hour", + "scheduledBasalRate": 0.7, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-26T05:26:04.867Z", + "endDate": "2026-01-26T05:26:04.870Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-26T05:26:04.871Z", + "endDate": "2026-01-26T05:31:02.964Z", + "value": 0.75, + "unit": "U/hour", + "scheduledBasalRate": 0.75, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-26T05:31:02.965Z", + "endDate": "2026-01-26T05:33:12.821Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "suspend", + "startDate": "2026-01-26T05:33:12.821Z", + "endDate": "2026-01-26T05:36:53.669Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr" + }, + { + "type": "tempBasal", + "startDate": "2026-01-26T05:36:53.669Z", + "endDate": "2026-01-26T05:40:59.730Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-26T05:40:59.73Z", + "endDate": "2026-01-26T05:46:00.398Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-26T05:46:00.399Z", + "endDate": "2026-01-26T07:26:01.350Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-26T05:51:02.749Z", + "endDate": "2026-01-26T05:51:07.749Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-26T05:56:01.182Z", + "endDate": "2026-01-26T05:56:06.182Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-26T06:01:03.017Z", + "endDate": "2026-01-26T06:01:08.017Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-26T06:06:01.869Z", + "endDate": "2026-01-26T06:06:06.869Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-26T06:11:02.612Z", + "endDate": "2026-01-26T06:11:07.612Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-26T06:16:02.574Z", + "endDate": "2026-01-26T06:16:14.574Z", + "value": 0.4, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-26T06:21:04.965Z", + "endDate": "2026-01-26T06:21:12.465Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-26T06:26:04.072Z", + "endDate": "2026-01-26T06:26:09.072Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-26T06:31:03.222Z", + "endDate": "2026-01-26T06:31:08.222Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-26T06:36:07.175Z", + "endDate": "2026-01-26T06:36:12.175Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-26T06:41:06.865Z", + "endDate": "2026-01-26T06:41:11.865Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-26T06:46:10.231Z", + "endDate": "2026-01-26T06:46:15.231Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-26T06:56:03.793Z", + "endDate": "2026-01-26T06:56:08.793Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-26T07:01:04.429Z", + "endDate": "2026-01-26T07:01:09.429Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-26T07:16:01.376Z", + "endDate": "2026-01-26T07:16:06.376Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-26T07:21:01.95Z", + "endDate": "2026-01-26T07:21:06.950Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-26T07:26:01.35Z", + "endDate": "2026-01-26T07:31:02.067Z", + "value": 0.3, + "unit": "U/hour", + "scheduledBasalRate": 0.3, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-26T07:31:02.067Z", + "endDate": "2026-01-26T07:59:59.999Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-26T07:36:03.153Z", + "endDate": "2026-01-26T07:36:09.153Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-26T07:41:02.558Z", + "endDate": "2026-01-26T07:41:07.558Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-26T07:51:05.445Z", + "endDate": "2026-01-26T07:51:10.445Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-26T07:56:03.485Z", + "endDate": "2026-01-26T07:56:08.485Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-26T08:00:00Z", + "endDate": "2026-01-26T08:26:02.636Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-26T08:01:02.919Z", + "endDate": "2026-01-26T08:01:07.919Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-26T08:26:02.636Z", + "endDate": "2026-01-26T08:31:02.256Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-26T08:31:02.257Z", + "endDate": "2026-01-26T08:31:02.260Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-26T08:31:02.26Z", + "endDate": "2026-01-26T08:36:01.722Z", + "value": 0.3, + "unit": "U/hour", + "scheduledBasalRate": 0.3, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-26T08:36:01.722Z", + "endDate": "2026-01-26T08:40:59.881Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-26T08:36:02.757Z", + "endDate": "2026-01-26T08:36:07.757Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-26T08:40:59.881Z", + "endDate": "2026-01-26T08:51:02.742Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-26T08:51:02.743Z", + "endDate": "2026-01-26T08:51:02.746Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-26T08:51:02.747Z", + "endDate": "2026-01-26T08:56:01.500Z", + "value": 0.2, + "unit": "U/hour", + "scheduledBasalRate": 0.2, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-26T08:56:01.5Z", + "endDate": "2026-01-26T09:01:01.820Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-26T08:56:02.414Z", + "endDate": "2026-01-26T08:56:07.414Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-26T09:01:01.82Z", + "endDate": "2026-01-26T09:06:03.655Z", + "value": 0.6, + "unit": "U/hour", + "scheduledBasalRate": 0.6, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-26T09:06:03.656Z", + "endDate": "2026-01-26T09:06:03.660Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-26T09:06:03.661Z", + "endDate": "2026-01-26T09:11:02.818Z", + "value": 0.25, + "unit": "U/hour", + "scheduledBasalRate": 0.25, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-26T09:11:02.819Z", + "endDate": "2026-01-26T09:11:02.822Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-26T09:11:02.822Z", + "endDate": "2026-01-26T09:16:01.149Z", + "value": 0.35, + "unit": "U/hour", + "scheduledBasalRate": 0.35, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-26T09:16:01.149Z", + "endDate": "2026-01-26T09:16:01.151Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-26T09:16:01.152Z", + "endDate": "2026-01-26T09:21:03.795Z", + "value": 0.05, + "unit": "U/hour", + "scheduledBasalRate": 0.05, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-26T09:21:03.796Z", + "endDate": "2026-01-26T09:21:03.799Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-26T09:21:03.799Z", + "endDate": "2026-01-26T09:26:01.145Z", + "value": 0.2, + "unit": "U/hour", + "scheduledBasalRate": 0.2, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-26T09:26:01.146Z", + "endDate": "2026-01-26T09:31:02.336Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-26T09:31:02.336Z", + "endDate": "2026-01-26T09:51:01.265Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-26T09:51:01.265Z", + "endDate": "2026-01-26T10:01:00.748Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-26T10:01:00.749Z", + "endDate": "2026-01-26T10:21:02.554Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-26T10:21:02.554Z", + "endDate": "2026-01-26T10:21:02.558Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-26T10:21:02.558Z", + "endDate": "2026-01-26T10:41:01.497Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-26T10:41:01.497Z", + "endDate": "2026-01-26T10:46:00.157Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-26T10:46:00.158Z", + "endDate": "2026-01-26T11:06:03.189Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-26T11:06:03.189Z", + "endDate": "2026-01-26T11:06:03.192Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-26T11:06:03.193Z", + "endDate": "2026-01-26T11:26:06.596Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-26T11:26:06.597Z", + "endDate": "2026-01-26T11:31:00.257Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-26T11:31:00.258Z", + "endDate": "2026-01-26T11:41:03.325Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-26T11:41:03.325Z", + "endDate": "2026-01-26T12:51:02.454Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-26T12:51:02.455Z", + "endDate": "2026-01-26T12:56:02.717Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-26T12:56:02.717Z", + "endDate": "2026-01-26T13:31:04.528Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-26T13:31:04.529Z", + "endDate": "2026-01-26T13:41:02.572Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-26T13:41:02.573Z", + "endDate": "2026-01-26T13:56:02.140Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-26T13:56:02.14Z", + "endDate": "2026-01-26T14:26:02.140Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-26T14:26:02.14Z", + "endDate": "2026-01-26T14:59:59.999Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-26T14:36:03.025Z", + "endDate": "2026-01-26T14:36:12.025Z", + "value": 0.3, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-26T14:41:00.952Z", + "endDate": "2026-01-26T14:41:05.952Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-26T14:46:05.126Z", + "endDate": "2026-01-26T14:46:14.126Z", + "value": 0.3, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-26T14:51:00.623Z", + "endDate": "2026-01-26T14:51:12.623Z", + "value": 0.4, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-26T14:56:01.465Z", + "endDate": "2026-01-26T14:56:14.965Z", + "value": 0.45, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-26T15:00:00Z", + "endDate": "2026-01-26T16:00:00.000Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-26T15:01:01.854Z", + "endDate": "2026-01-26T15:01:15.354Z", + "value": 0.45, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-26T15:11:01.404Z", + "endDate": "2026-01-26T15:11:10.404Z", + "value": 0.3, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-26T15:16:09.338Z", + "endDate": "2026-01-26T15:16:22.838Z", + "value": 0.45, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-26T15:21:01.241Z", + "endDate": "2026-01-26T15:21:08.741Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-26T15:26:00.358Z", + "endDate": "2026-01-26T15:26:05.358Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-26T15:31:00.795Z", + "endDate": "2026-01-26T15:31:05.795Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-26T15:36:03.077Z", + "endDate": "2026-01-26T15:36:08.077Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-26T15:41:00.41Z", + "endDate": "2026-01-26T15:41:06.410Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-26T15:46:03.389Z", + "endDate": "2026-01-26T15:46:08.389Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-26T15:51:01.264Z", + "endDate": "2026-01-26T15:51:06.264Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-26T15:56:00.83Z", + "endDate": "2026-01-26T15:56:05.830Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-26T16:00:00Z", + "endDate": "2026-01-26T18:01:01.268Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-26T16:01:02.288Z", + "endDate": "2026-01-26T16:01:07.288Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-26T16:06:02.91Z", + "endDate": "2026-01-26T16:06:07.910Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-26T16:11:01.335Z", + "endDate": "2026-01-26T16:11:06.335Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-26T16:21:03.085Z", + "endDate": "2026-01-26T16:21:08.085Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-26T16:36:02.732Z", + "endDate": "2026-01-26T16:36:07.732Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-26T16:41:00.264Z", + "endDate": "2026-01-26T16:41:09.264Z", + "value": 0.3, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-26T16:46:00.772Z", + "endDate": "2026-01-26T16:46:05.772Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-26T16:51:00.72Z", + "endDate": "2026-01-26T16:51:05.720Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-26T16:56:02.705Z", + "endDate": "2026-01-26T16:56:07.705Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-26T17:01:02.423Z", + "endDate": "2026-01-26T17:01:07.423Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-26T17:06:00.778Z", + "endDate": "2026-01-26T17:06:05.778Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-26T17:11:00.17Z", + "endDate": "2026-01-26T17:11:05.170Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-26T17:21:02.611Z", + "endDate": "2026-01-26T17:21:07.611Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-26T17:26:01.954Z", + "endDate": "2026-01-26T17:26:06.954Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-26T17:31:01.256Z", + "endDate": "2026-01-26T17:31:06.256Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-26T17:36:00.767Z", + "endDate": "2026-01-26T17:36:05.767Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-26T17:41:00.724Z", + "endDate": "2026-01-26T17:41:05.724Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-26T17:51:02.548Z", + "endDate": "2026-01-26T17:51:14.548Z", + "value": 0.4, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-26T17:56:05.656Z", + "endDate": "2026-01-26T17:56:10.656Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-26T18:01:01.268Z", + "endDate": "2026-01-26T18:06:03.488Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-26T18:06:03.489Z", + "endDate": "2026-01-26T18:06:03.491Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-26T18:06:03.491Z", + "endDate": "2026-01-26T18:11:01.843Z", + "value": 0.1, + "unit": "U/hour", + "scheduledBasalRate": 0.1, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-26T18:11:01.843Z", + "endDate": "2026-01-26T19:00:00.000Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-26T18:11:02.549Z", + "endDate": "2026-01-26T18:11:10.049Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-26T18:16:01.305Z", + "endDate": "2026-01-26T18:16:06.305Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-26T18:21:01.938Z", + "endDate": "2026-01-26T18:21:06.938Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-26T18:31:01.402Z", + "endDate": "2026-01-26T18:31:06.402Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-26T18:36:01.196Z", + "endDate": "2026-01-26T18:36:10.196Z", + "value": 0.3, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-26T18:41:00.7Z", + "endDate": "2026-01-26T18:41:06.700Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-26T18:46:02.785Z", + "endDate": "2026-01-26T18:46:07.785Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-26T18:51:02.502Z", + "endDate": "2026-01-26T18:51:07.502Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-26T18:56:03.016Z", + "endDate": "2026-01-26T18:56:08.016Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-26T19:00:00Z", + "endDate": "2026-01-26T19:36:04.725Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-26T19:01:01.038Z", + "endDate": "2026-01-26T19:01:06.038Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-26T19:06:04.115Z", + "endDate": "2026-01-26T19:06:09.115Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-26T19:16:01.931Z", + "endDate": "2026-01-26T19:16:06.931Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-26T19:36:04.726Z", + "endDate": "2026-01-26T19:41:00.569Z", + "value": 0.5, + "unit": "U/hour", + "scheduledBasalRate": 0.5, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-26T19:39:33.685Z", + "endDate": "2026-01-26T19:41:21.685Z", + "value": 3.6, + "unit": "U", + "isMutable": false + }, + { + "type": "tempBasal", + "startDate": "2026-01-26T19:41:00.569Z", + "endDate": "2026-01-26T21:56:00.135Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-26T19:51:07.523Z", + "endDate": "2026-01-26T19:51:28.523Z", + "value": 0.7, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-26T19:52:52.027Z", + "endDate": "2026-01-26T19:56:05.527Z", + "value": 6.45, + "unit": "U", + "isMutable": false + }, + { + "type": "bolus", + "startDate": "2026-01-26T20:06:03.496Z", + "endDate": "2026-01-26T20:06:34.996Z", + "value": 1.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-26T20:11:21.483Z", + "endDate": "2026-01-26T20:11:43.983Z", + "value": 0.75, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-26T20:26:02.44Z", + "endDate": "2026-01-26T20:26:21.940Z", + "value": 0.65, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-26T20:41:01.008Z", + "endDate": "2026-01-26T20:41:16.008Z", + "value": 0.5, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-26T21:01:00.193Z", + "endDate": "2026-01-26T21:01:21.193Z", + "value": 0.7, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-26T21:06:03.091Z", + "endDate": "2026-01-26T21:06:21.091Z", + "value": 0.6, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-26T21:11:07.009Z", + "endDate": "2026-01-26T21:11:28.009Z", + "value": 0.7, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-26T21:16:03.129Z", + "endDate": "2026-01-26T21:16:24.129Z", + "value": 0.7, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-26T21:21:02.669Z", + "endDate": "2026-01-26T21:21:16.169Z", + "value": 0.45, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-26T21:31:01.569Z", + "endDate": "2026-01-26T21:31:06.569Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-26T21:36:02.456Z", + "endDate": "2026-01-26T21:36:07.456Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-26T21:46:01.825Z", + "endDate": "2026-01-26T21:46:06.825Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-26T21:51:04.413Z", + "endDate": "2026-01-26T21:51:11.913Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-26T21:56:00.135Z", + "endDate": "2026-01-26T22:01:01.936Z", + "value": 1, + "unit": "U/hour", + "scheduledBasalRate": 1, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-26T22:01:01.937Z", + "endDate": "2026-01-26T22:01:01.939Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-26T22:01:01.939Z", + "endDate": "2026-01-26T22:06:00.442Z", + "value": 0.9, + "unit": "U/hour", + "scheduledBasalRate": 0.9, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-26T22:06:00.442Z", + "endDate": "2026-01-26T22:06:00.445Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-26T22:06:00.446Z", + "endDate": "2026-01-26T22:11:00.976Z", + "value": 0.9, + "unit": "U/hour", + "scheduledBasalRate": 0.9, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-26T22:11:00.976Z", + "endDate": "2026-01-26T22:11:00.979Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-26T22:11:00.979Z", + "endDate": "2026-01-26T22:16:03.320Z", + "value": 0.9, + "unit": "U/hour", + "scheduledBasalRate": 0.9, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-26T22:16:03.323Z", + "endDate": "2026-01-26T22:21:05.502Z", + "value": 0.9, + "unit": "U/hour", + "scheduledBasalRate": 0.9, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-26T22:16:03.32Z", + "endDate": "2026-01-26T22:16:03.322Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-26T22:21:05.503Z", + "endDate": "2026-01-26T22:21:05.506Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-26T22:21:05.506Z", + "endDate": "2026-01-26T22:36:01.125Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-26T22:36:01.125Z", + "endDate": "2026-01-26T22:36:01.127Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-26T22:36:01.128Z", + "endDate": "2026-01-26T22:41:02.527Z", + "value": 0.4, + "unit": "U/hour", + "scheduledBasalRate": 0.4, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-26T22:41:02.527Z", + "endDate": "2026-01-26T23:36:03.874Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-26T22:41:03.264Z", + "endDate": "2026-01-26T22:41:12.264Z", + "value": 0.3, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-26T22:46:01.619Z", + "endDate": "2026-01-26T22:46:16.619Z", + "value": 0.5, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-26T22:51:05.273Z", + "endDate": "2026-01-26T22:51:20.273Z", + "value": 0.5, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-26T22:56:02.907Z", + "endDate": "2026-01-26T22:56:19.407Z", + "value": 0.55, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-26T23:01:02.536Z", + "endDate": "2026-01-26T23:01:16.036Z", + "value": 0.45, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-26T23:06:02.54Z", + "endDate": "2026-01-26T23:06:10.040Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-26T23:11:03.026Z", + "endDate": "2026-01-26T23:11:08.026Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-26T23:16:02.581Z", + "endDate": "2026-01-26T23:16:07.581Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-26T23:21:00.5Z", + "endDate": "2026-01-26T23:21:05.500Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-26T23:26:08.394Z", + "endDate": "2026-01-26T23:26:13.394Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-26T23:36:03.875Z", + "endDate": "2026-01-26T23:41:02.591Z", + "value": 0.05, + "unit": "U/hour", + "scheduledBasalRate": 0.05, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-26T23:41:02.592Z", + "endDate": "2026-01-26T23:41:02.594Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-26T23:41:02.594Z", + "endDate": "2026-01-26T23:46:02.109Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-26T23:44:38.47Z", + "endDate": "2026-01-26T23:46:15.970Z", + "value": 3.25, + "unit": "U", + "isMutable": false + }, + { + "type": "tempBasal", + "startDate": "2026-01-26T23:46:02.11Z", + "endDate": "2026-01-26T23:56:01.270Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-26T23:56:01.27Z", + "endDate": "2026-01-27T00:16:02.080Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T00:16:02.081Z", + "endDate": "2026-01-27T00:16:02.082Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T00:16:02.082Z", + "endDate": "2026-01-27T00:21:02.914Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T00:21:02.915Z", + "endDate": "2026-01-27T01:00:00.000Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-27T00:41:01.672Z", + "endDate": "2026-01-27T00:41:06.672Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-27T00:46:02.743Z", + "endDate": "2026-01-27T00:46:07.743Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T01:00:00Z", + "endDate": "2026-01-27T01:00:59.624Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T01:00:59.624Z", + "endDate": "2026-01-27T01:06:11.570Z", + "value": 0.2, + "unit": "U/hour", + "scheduledBasalRate": 0.2, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T01:06:11.571Z", + "endDate": "2026-01-27T01:06:11.576Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T01:06:11.576Z", + "endDate": "2026-01-27T01:26:01.007Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T01:26:01.007Z", + "endDate": "2026-01-27T01:56:12.445Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T01:56:12.445Z", + "endDate": "2026-01-27T02:06:07.816Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T02:06:07.817Z", + "endDate": "2026-01-27T04:21:00.638Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-27T03:51:01.483Z", + "endDate": "2026-01-27T03:51:26.983Z", + "value": 0.85, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-27T03:56:02.972Z", + "endDate": "2026-01-27T03:56:19.472Z", + "value": 0.55, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-27T04:01:02.199Z", + "endDate": "2026-01-27T04:01:12.699Z", + "value": 0.35, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-27T04:06:02.597Z", + "endDate": "2026-01-27T04:06:10.097Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-27T04:11:00.992Z", + "endDate": "2026-01-27T04:11:06.992Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T04:21:00.639Z", + "endDate": "2026-01-27T04:26:04.625Z", + "value": 0.75, + "unit": "U/hour", + "scheduledBasalRate": 0.75, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T04:26:04.625Z", + "endDate": "2026-01-27T04:26:04.629Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T04:26:04.63Z", + "endDate": "2026-01-27T04:31:01.808Z", + "value": 0.6, + "unit": "U/hour", + "scheduledBasalRate": 0.6, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T04:31:01.809Z", + "endDate": "2026-01-27T04:31:01.812Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T04:31:01.812Z", + "endDate": "2026-01-27T04:36:00.913Z", + "value": 0.25, + "unit": "U/hour", + "scheduledBasalRate": 0.25, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T04:36:00.914Z", + "endDate": "2026-01-27T04:36:00.919Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T04:36:00.919Z", + "endDate": "2026-01-27T04:41:02.373Z", + "value": 0.2, + "unit": "U/hour", + "scheduledBasalRate": 0.2, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T04:41:02.373Z", + "endDate": "2026-01-27T04:41:02.376Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T04:41:02.377Z", + "endDate": "2026-01-27T04:46:02.950Z", + "value": 0.4, + "unit": "U/hour", + "scheduledBasalRate": 0.4, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T04:46:02.953Z", + "endDate": "2026-01-27T04:51:02.699Z", + "value": 0.15, + "unit": "U/hour", + "scheduledBasalRate": 0.15, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T04:46:02.95Z", + "endDate": "2026-01-27T04:46:02.952Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T04:51:02.699Z", + "endDate": "2026-01-27T04:51:02.701Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T04:51:02.701Z", + "endDate": "2026-01-27T04:56:00.317Z", + "value": 0.35, + "unit": "U/hour", + "scheduledBasalRate": 0.35, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T04:56:00.318Z", + "endDate": "2026-01-27T04:56:00.320Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T04:56:00.32Z", + "endDate": "2026-01-27T05:01:00.156Z", + "value": 0.2, + "unit": "U/hour", + "scheduledBasalRate": 0.2, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T05:01:00.157Z", + "endDate": "2026-01-27T05:01:00.160Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T05:01:00.16Z", + "endDate": "2026-01-27T05:21:03.001Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T05:21:03.002Z", + "endDate": "2026-01-27T05:21:03.004Z", + "value": 0.55, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T05:21:03.005Z", + "endDate": "2026-01-27T05:41:01.903Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T05:41:01.904Z", + "endDate": "2026-01-27T05:41:01.907Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T05:41:01.907Z", + "endDate": "2026-01-27T06:01:01.184Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T06:01:01.185Z", + "endDate": "2026-01-27T06:01:01.187Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T06:01:01.187Z", + "endDate": "2026-01-27T06:21:02.247Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T06:21:02.247Z", + "endDate": "2026-01-27T06:21:02.250Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T06:21:02.251Z", + "endDate": "2026-01-27T06:41:01.588Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T06:41:01.588Z", + "endDate": "2026-01-27T06:46:01.034Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T06:46:01.034Z", + "endDate": "2026-01-27T07:06:02.935Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T07:06:02.935Z", + "endDate": "2026-01-27T07:11:02.257Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T07:11:02.258Z", + "endDate": "2026-01-27T07:21:03.875Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T07:21:03.875Z", + "endDate": "2026-01-27T07:41:02.625Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T07:41:02.625Z", + "endDate": "2026-01-27T07:46:00.518Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T07:46:00.519Z", + "endDate": "2026-01-27T07:56:01.572Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T07:56:01.573Z", + "endDate": "2026-01-27T08:16:00.147Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T08:16:00.147Z", + "endDate": "2026-01-27T08:16:00.148Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T08:16:00.149Z", + "endDate": "2026-01-27T08:26:01.149Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T08:26:01.149Z", + "endDate": "2026-01-27T08:36:00.364Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T08:36:00.364Z", + "endDate": "2026-01-27T08:46:03.487Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T08:46:03.488Z", + "endDate": "2026-01-27T08:50:59.871Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T08:50:59.872Z", + "endDate": "2026-01-27T09:16:06.607Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T09:16:06.607Z", + "endDate": "2026-01-27T09:16:06.611Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T09:16:06.611Z", + "endDate": "2026-01-27T09:21:01.118Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T09:21:01.119Z", + "endDate": "2026-01-27T10:16:00.921Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-27T09:41:00.031Z", + "endDate": "2026-01-27T09:41:13.531Z", + "value": 0.45, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-27T09:46:00.15Z", + "endDate": "2026-01-27T09:46:10.650Z", + "value": 0.35, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-27T09:51:01.047Z", + "endDate": "2026-01-27T09:51:07.047Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-27T09:56:00.383Z", + "endDate": "2026-01-27T09:56:05.383Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-27T10:01:00.851Z", + "endDate": "2026-01-27T10:01:06.851Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-27T10:06:01.919Z", + "endDate": "2026-01-27T10:06:06.919Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T10:16:00.922Z", + "endDate": "2026-01-27T10:21:06.813Z", + "value": 0.4, + "unit": "U/hour", + "scheduledBasalRate": 0.4, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T10:21:06.814Z", + "endDate": "2026-01-27T10:21:06.816Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T10:21:06.817Z", + "endDate": "2026-01-27T10:26:01.122Z", + "value": 0.05, + "unit": "U/hour", + "scheduledBasalRate": 0.05, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T10:26:01.122Z", + "endDate": "2026-01-27T10:26:01.124Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T10:26:01.124Z", + "endDate": "2026-01-27T10:46:00.422Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T10:46:00.423Z", + "endDate": "2026-01-27T10:46:00.425Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T10:46:00.426Z", + "endDate": "2026-01-27T11:06:00.421Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T11:06:00.422Z", + "endDate": "2026-01-27T11:06:00.426Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T11:06:00.426Z", + "endDate": "2026-01-27T11:16:01.550Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T11:16:01.55Z", + "endDate": "2026-01-27T11:31:02.134Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-27T11:16:02.299Z", + "endDate": "2026-01-27T11:16:07.299Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-27T11:21:01.315Z", + "endDate": "2026-01-27T11:21:08.815Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-27T11:26:00.087Z", + "endDate": "2026-01-27T11:26:05.087Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T11:31:02.135Z", + "endDate": "2026-01-27T11:36:01.131Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T11:36:01.131Z", + "endDate": "2026-01-27T11:36:01.135Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T11:36:01.136Z", + "endDate": "2026-01-27T11:41:00.954Z", + "value": 0.25, + "unit": "U/hour", + "scheduledBasalRate": 0.25, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T11:41:00.954Z", + "endDate": "2026-01-27T11:51:01.158Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-27T11:41:01.718Z", + "endDate": "2026-01-27T11:41:09.218Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T11:51:01.159Z", + "endDate": "2026-01-27T12:01:01.880Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T12:01:01.881Z", + "endDate": "2026-01-27T12:01:01.882Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T12:01:01.882Z", + "endDate": "2026-01-27T12:06:00.579Z", + "value": 0.6, + "unit": "U/hour", + "scheduledBasalRate": 0.6, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T12:06:00.579Z", + "endDate": "2026-01-27T12:46:00.624Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-27T12:21:00.854Z", + "endDate": "2026-01-27T12:21:05.854Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-27T12:26:01.974Z", + "endDate": "2026-01-27T12:26:06.974Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-27T12:31:04.228Z", + "endDate": "2026-01-27T12:31:09.228Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-27T12:36:00.226Z", + "endDate": "2026-01-27T12:36:05.226Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T12:46:00.624Z", + "endDate": "2026-01-27T12:51:03.442Z", + "value": 0.55, + "unit": "U/hour", + "scheduledBasalRate": 0.55, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T12:51:03.443Z", + "endDate": "2026-01-27T12:51:03.446Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T12:51:03.446Z", + "endDate": "2026-01-27T12:56:03.116Z", + "value": 0.45, + "unit": "U/hour", + "scheduledBasalRate": 0.45, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T12:56:03.117Z", + "endDate": "2026-01-27T12:56:03.119Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T12:56:03.12Z", + "endDate": "2026-01-27T13:01:00.388Z", + "value": 0.2, + "unit": "U/hour", + "scheduledBasalRate": 0.2, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T13:01:00.388Z", + "endDate": "2026-01-27T13:01:00.389Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T13:01:00.39Z", + "endDate": "2026-01-27T13:06:01.905Z", + "value": 0.35, + "unit": "U/hour", + "scheduledBasalRate": 0.35, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T13:06:01.905Z", + "endDate": "2026-01-27T13:06:01.907Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T13:06:01.908Z", + "endDate": "2026-01-27T13:11:01.861Z", + "value": 0.15, + "unit": "U/hour", + "scheduledBasalRate": 0.15, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T13:11:01.862Z", + "endDate": "2026-01-27T13:11:01.864Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T13:11:01.865Z", + "endDate": "2026-01-27T13:16:00.153Z", + "value": 0.3, + "unit": "U/hour", + "scheduledBasalRate": 0.3, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T13:16:00.153Z", + "endDate": "2026-01-27T13:21:01.301Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T13:21:01.302Z", + "endDate": "2026-01-27T13:26:01.242Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T13:26:01.242Z", + "endDate": "2026-01-27T13:51:00.057Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-27T13:46:02.762Z", + "endDate": "2026-01-27T13:46:07.762Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T13:51:00.058Z", + "endDate": "2026-01-27T14:06:03.940Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T14:06:03.94Z", + "endDate": "2026-01-27T14:59:59.999Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-27T14:10:59.987Z", + "endDate": "2026-01-27T14:11:07.487Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-27T14:16:02.976Z", + "endDate": "2026-01-27T14:16:07.976Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-27T14:21:00.055Z", + "endDate": "2026-01-27T14:21:07.555Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-27T14:26:02.368Z", + "endDate": "2026-01-27T14:26:17.368Z", + "value": 0.5, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-27T14:31:01.141Z", + "endDate": "2026-01-27T14:31:10.141Z", + "value": 0.3, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-27T14:36:02.345Z", + "endDate": "2026-01-27T14:36:07.345Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-27T14:41:00.533Z", + "endDate": "2026-01-27T14:41:05.533Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-27T14:46:00.777Z", + "endDate": "2026-01-27T14:46:05.777Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-27T14:51:00.765Z", + "endDate": "2026-01-27T14:51:05.765Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T15:00:00Z", + "endDate": "2026-01-27T15:01:00.608Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T15:01:00.608Z", + "endDate": "2026-01-27T15:06:00.727Z", + "value": 0.75, + "unit": "U/hour", + "scheduledBasalRate": 0.75, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T15:06:00.728Z", + "endDate": "2026-01-27T15:06:00.731Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T15:06:00.732Z", + "endDate": "2026-01-27T15:11:00.146Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T15:11:00.146Z", + "endDate": "2026-01-27T15:11:00.148Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T15:11:00.149Z", + "endDate": "2026-01-27T15:16:00.165Z", + "value": 0.75, + "unit": "U/hour", + "scheduledBasalRate": 0.75, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T15:16:00.165Z", + "endDate": "2026-01-27T15:59:59.999Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-27T15:16:00.916Z", + "endDate": "2026-01-27T15:16:05.916Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-27T15:41:06.123Z", + "endDate": "2026-01-27T15:41:11.123Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-27T15:46:01.429Z", + "endDate": "2026-01-27T15:46:06.429Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-27T15:51:01.554Z", + "endDate": "2026-01-27T15:51:06.554Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-27T15:56:01.517Z", + "endDate": "2026-01-27T15:56:06.517Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T16:00:00Z", + "endDate": "2026-01-27T16:15:59.597Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-27T16:01:01.938Z", + "endDate": "2026-01-27T16:01:06.938Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-27T16:06:02.154Z", + "endDate": "2026-01-27T16:06:07.154Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-27T16:11:02.233Z", + "endDate": "2026-01-27T16:11:07.233Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T16:15:59.598Z", + "endDate": "2026-01-27T16:21:00.292Z", + "value": 0.3, + "unit": "U/hour", + "scheduledBasalRate": 0.3, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T16:21:00.292Z", + "endDate": "2026-01-27T16:46:03.076Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-27T16:21:01.041Z", + "endDate": "2026-01-27T16:21:06.041Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-27T16:26:00.282Z", + "endDate": "2026-01-27T16:26:05.282Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-27T16:36:00.438Z", + "endDate": "2026-01-27T16:36:05.438Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-27T16:41:02.436Z", + "endDate": "2026-01-27T16:41:07.436Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T16:46:03.077Z", + "endDate": "2026-01-27T16:50:59.922Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T16:50:59.923Z", + "endDate": "2026-01-27T16:50:59.927Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T16:50:59.928Z", + "endDate": "2026-01-27T16:56:05.824Z", + "value": 0.05, + "unit": "U/hour", + "scheduledBasalRate": 0.05, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T16:56:05.824Z", + "endDate": "2026-01-27T17:11:04.449Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-27T16:56:06.722Z", + "endDate": "2026-01-27T16:56:11.722Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-27T17:01:02.882Z", + "endDate": "2026-01-27T17:01:16.382Z", + "value": 0.45, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-27T17:06:02.567Z", + "endDate": "2026-01-27T17:06:25.067Z", + "value": 0.75, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T17:11:04.449Z", + "endDate": "2026-01-27T17:15:59.999Z", + "value": 0.05, + "unit": "U/hour", + "scheduledBasalRate": 0.05, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T17:16:00.001Z", + "endDate": "2026-01-27T17:36:06.066Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T17:16:00Z", + "endDate": "2026-01-27T17:16:00.001Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T17:36:06.067Z", + "endDate": "2026-01-27T17:36:06.070Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T17:36:06.07Z", + "endDate": "2026-01-27T17:56:00.777Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T17:56:00.778Z", + "endDate": "2026-01-27T17:56:00.781Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T17:56:00.781Z", + "endDate": "2026-01-27T18:06:00.301Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-27T18:04:48.962Z", + "endDate": "2026-01-27T18:07:18.962Z", + "value": 5, + "unit": "U", + "isMutable": false + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T18:06:00.302Z", + "endDate": "2026-01-27T18:41:01.658Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-27T18:16:01.693Z", + "endDate": "2026-01-27T18:16:22.693Z", + "value": 0.7, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-27T18:26:00.216Z", + "endDate": "2026-01-27T18:26:13.716Z", + "value": 0.45, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-27T18:31:01.282Z", + "endDate": "2026-01-27T18:31:10.282Z", + "value": 0.3, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-27T18:36:00.7Z", + "endDate": "2026-01-27T18:36:05.700Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-27T18:37:19.434Z", + "endDate": "2026-01-27T18:39:47.934Z", + "value": 4.95, + "unit": "U", + "isMutable": false + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T18:41:01.658Z", + "endDate": "2026-01-27T18:46:01.559Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T18:46:01.56Z", + "endDate": "2026-01-27T18:51:04.706Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T18:51:04.706Z", + "endDate": "2026-01-27T18:56:00.125Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T18:56:00.126Z", + "endDate": "2026-01-27T19:00:00.000Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T19:00:00Z", + "endDate": "2026-01-27T19:36:02.833Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T19:36:02.833Z", + "endDate": "2026-01-27T19:41:01.477Z", + "value": 0.7, + "unit": "U/hour", + "scheduledBasalRate": 0.7, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T19:41:01.478Z", + "endDate": "2026-01-27T19:41:01.481Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T19:41:01.481Z", + "endDate": "2026-01-27T19:46:01.253Z", + "value": 0.75, + "unit": "U/hour", + "scheduledBasalRate": 0.75, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T19:46:01.254Z", + "endDate": "2026-01-27T20:01:03.691Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T20:01:03.691Z", + "endDate": "2026-01-27T20:06:00.553Z", + "value": 0.7, + "unit": "U/hour", + "scheduledBasalRate": 0.7, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T20:06:00.553Z", + "endDate": "2026-01-27T20:06:00.554Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T20:06:00.555Z", + "endDate": "2026-01-27T20:16:01.943Z", + "value": 0.6, + "unit": "U/hour", + "scheduledBasalRate": 0.6, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T20:16:01.944Z", + "endDate": "2026-01-27T20:25:59.932Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-27T20:21:00.777Z", + "endDate": "2026-01-27T20:21:05.777Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T20:25:59.932Z", + "endDate": "2026-01-27T20:31:00.184Z", + "value": 0.8, + "unit": "U/hour", + "scheduledBasalRate": 0.8, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T20:31:00.185Z", + "endDate": "2026-01-27T20:31:00.188Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T20:31:00.188Z", + "endDate": "2026-01-27T20:36:02.272Z", + "value": 0.35, + "unit": "U/hour", + "scheduledBasalRate": 0.35, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T20:36:02.273Z", + "endDate": "2026-01-27T20:36:02.275Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T20:36:02.275Z", + "endDate": "2026-01-27T20:56:00.519Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-27T20:50:47.421Z", + "endDate": "2026-01-27T20:51:12.921Z", + "value": 0.85, + "unit": "U", + "isMutable": false + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T20:56:00.52Z", + "endDate": "2026-01-27T20:56:00.545Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T20:56:00.546Z", + "endDate": "2026-01-27T21:16:02.522Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-27T21:03:42.304Z", + "endDate": "2026-01-27T21:04:12.304Z", + "value": 1, + "unit": "U", + "isMutable": false + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T21:16:02.522Z", + "endDate": "2026-01-27T22:00:00.000Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T22:00:00Z", + "endDate": "2026-01-27T22:31:01.974Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-27T22:01:00.514Z", + "endDate": "2026-01-27T22:01:53.014Z", + "value": 1.75, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-27T22:06:01.436Z", + "endDate": "2026-01-27T22:06:31.436Z", + "value": 1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-27T22:11:01.893Z", + "endDate": "2026-01-27T22:11:19.893Z", + "value": 0.6, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-27T22:16:02.962Z", + "endDate": "2026-01-27T22:16:14.962Z", + "value": 0.4, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-27T22:21:02.667Z", + "endDate": "2026-01-27T22:21:07.667Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T22:31:01.974Z", + "endDate": "2026-01-27T22:51:02.133Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T22:51:02.134Z", + "endDate": "2026-01-27T22:51:02.137Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T22:51:02.138Z", + "endDate": "2026-01-27T23:11:03.405Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T23:11:03.405Z", + "endDate": "2026-01-27T23:11:03.408Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T23:11:03.409Z", + "endDate": "2026-01-27T23:31:00.971Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T23:31:00.971Z", + "endDate": "2026-01-27T23:31:00.974Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T23:31:00.974Z", + "endDate": "2026-01-27T23:51:03.420Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T23:51:03.421Z", + "endDate": "2026-01-27T23:51:03.423Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-27T23:51:03.424Z", + "endDate": "2026-01-28T00:11:08.972Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-28T00:11:08.973Z", + "endDate": "2026-01-28T00:11:08.974Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-28T00:11:08.975Z", + "endDate": "2026-01-28T00:31:00.012Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-28T00:31:00.013Z", + "endDate": "2026-01-28T00:31:00.017Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-01-28T00:31:00.017Z", + "endDate": "2026-01-28T00:51:00.586Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-01-28T01:00:59.788Z", + "endDate": "2026-01-28T01:01:20.788Z", + "value": 0.7, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T02:10:59.085Z", + "endDate": "2026-02-02T02:16:00.536Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T02:16:00.536Z", + "endDate": "2026-02-02T02:21:00.493Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T02:21:00.494Z", + "endDate": "2026-02-02T02:36:00.082Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T02:36:00.082Z", + "endDate": "2026-02-02T02:56:00.455Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T02:56:00.456Z", + "endDate": "2026-02-02T02:56:00.458Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T02:56:00.459Z", + "endDate": "2026-02-02T03:00:59.472Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T03:00:59.473Z", + "endDate": "2026-02-02T03:11:06.629Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T03:11:06.629Z", + "endDate": "2026-02-02T03:26:01.858Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T03:26:01.858Z", + "endDate": "2026-02-02T03:35:58.759Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T03:35:58.759Z", + "endDate": "2026-02-02T03:46:00.179Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T03:46:00.18Z", + "endDate": "2026-02-02T04:36:00.100Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-02T04:31:00.045Z", + "endDate": "2026-02-02T04:31:13.545Z", + "value": 0.45, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T04:36:00.101Z", + "endDate": "2026-02-02T04:41:00.776Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T04:41:00.776Z", + "endDate": "2026-02-02T04:55:58.529Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-02T04:41:01.647Z", + "endDate": "2026-02-02T04:41:06.647Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-02T04:46:01.284Z", + "endDate": "2026-02-02T04:46:07.284Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T04:55:58.529Z", + "endDate": "2026-02-02T05:00:59.082Z", + "value": 0.3, + "unit": "U/hour", + "scheduledBasalRate": 0.3, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T05:00:59.083Z", + "endDate": "2026-02-02T05:00:59.089Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T05:00:59.09Z", + "endDate": "2026-02-02T05:20:58.891Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T05:20:58.891Z", + "endDate": "2026-02-02T05:20:58.892Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T05:20:58.892Z", + "endDate": "2026-02-02T05:41:01.658Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T05:41:01.659Z", + "endDate": "2026-02-02T05:41:01.665Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T05:41:01.666Z", + "endDate": "2026-02-02T06:00:58.911Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T06:00:58.911Z", + "endDate": "2026-02-02T06:00:58.913Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T06:00:58.914Z", + "endDate": "2026-02-02T06:21:01.073Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T06:21:01.074Z", + "endDate": "2026-02-02T06:21:01.080Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T06:21:01.081Z", + "endDate": "2026-02-02T06:41:01.407Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T06:41:01.407Z", + "endDate": "2026-02-02T06:41:01.408Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T06:41:01.409Z", + "endDate": "2026-02-02T07:01:00.046Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T07:01:00.047Z", + "endDate": "2026-02-02T07:01:00.053Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T07:01:00.054Z", + "endDate": "2026-02-02T07:21:01.253Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T07:21:01.253Z", + "endDate": "2026-02-02T07:21:01.255Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T07:21:01.256Z", + "endDate": "2026-02-02T07:40:59.877Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T07:40:59.878Z", + "endDate": "2026-02-02T07:40:59.881Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T07:40:59.881Z", + "endDate": "2026-02-02T08:00:58.836Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T08:00:58.836Z", + "endDate": "2026-02-02T08:00:58.839Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T08:00:58.84Z", + "endDate": "2026-02-02T08:20:58.861Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T08:20:58.861Z", + "endDate": "2026-02-02T08:20:58.863Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T08:20:58.863Z", + "endDate": "2026-02-02T08:50:58.863Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T08:50:58.863Z", + "endDate": "2026-02-02T08:56:00.911Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T08:56:00.912Z", + "endDate": "2026-02-02T09:16:01.345Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T09:16:01.345Z", + "endDate": "2026-02-02T09:21:01.638Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T09:21:01.638Z", + "endDate": "2026-02-02T09:41:03.236Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T09:41:03.237Z", + "endDate": "2026-02-02T09:41:03.240Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T09:41:03.24Z", + "endDate": "2026-02-02T09:45:58.885Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T09:45:58.885Z", + "endDate": "2026-02-02T09:55:58.545Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T09:55:58.546Z", + "endDate": "2026-02-02T10:15:58.968Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T10:15:58.968Z", + "endDate": "2026-02-02T10:15:58.970Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T10:15:58.971Z", + "endDate": "2026-02-02T10:25:58.911Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T10:25:58.911Z", + "endDate": "2026-02-02T10:36:00.657Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T10:36:00.657Z", + "endDate": "2026-02-02T10:41:00.960Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T10:41:00.961Z", + "endDate": "2026-02-02T11:41:00.542Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T11:41:00.542Z", + "endDate": "2026-02-02T12:01:00.581Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T12:01:00.582Z", + "endDate": "2026-02-02T12:01:00.586Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T12:01:00.586Z", + "endDate": "2026-02-02T12:21:00.913Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T12:21:00.914Z", + "endDate": "2026-02-02T12:21:00.917Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T12:21:00.918Z", + "endDate": "2026-02-02T12:45:59.417Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T12:45:59.418Z", + "endDate": "2026-02-02T12:45:59.421Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T12:45:59.421Z", + "endDate": "2026-02-02T13:05:59.577Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T13:05:59.577Z", + "endDate": "2026-02-02T13:05:59.578Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T13:05:59.578Z", + "endDate": "2026-02-02T13:25:59.368Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T13:25:59.369Z", + "endDate": "2026-02-02T13:25:59.371Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T13:25:59.372Z", + "endDate": "2026-02-02T13:46:02.772Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T13:46:02.772Z", + "endDate": "2026-02-02T13:46:02.775Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T13:46:02.776Z", + "endDate": "2026-02-02T14:06:00.286Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T14:06:00.286Z", + "endDate": "2026-02-02T14:06:00.291Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T14:06:00.291Z", + "endDate": "2026-02-02T14:25:59.732Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T14:25:59.733Z", + "endDate": "2026-02-02T14:25:59.880Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T14:25:59.88Z", + "endDate": "2026-02-02T14:41:01.576Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T14:41:01.577Z", + "endDate": "2026-02-02T15:00:00.000Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-02T14:51:04.598Z", + "endDate": "2026-02-02T14:51:39.098Z", + "value": 1.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-02T14:56:01.308Z", + "endDate": "2026-02-02T14:56:25.308Z", + "value": 0.8, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T15:00:00Z", + "endDate": "2026-02-02T15:10:59.320Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-02T15:01:01.73Z", + "endDate": "2026-02-02T15:01:10.730Z", + "value": 0.3, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-02T15:05:58.655Z", + "endDate": "2026-02-02T15:06:03.655Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T15:10:59.32Z", + "endDate": "2026-02-02T15:16:00.177Z", + "value": 0.7, + "unit": "U/hour", + "scheduledBasalRate": 0.7, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T15:16:00.178Z", + "endDate": "2026-02-02T15:16:00.181Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T15:16:00.181Z", + "endDate": "2026-02-02T15:35:58.570Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T15:35:58.571Z", + "endDate": "2026-02-02T15:35:58.583Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T15:35:58.583Z", + "endDate": "2026-02-02T15:56:00.414Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T15:56:00.415Z", + "endDate": "2026-02-02T15:56:00.427Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T15:56:00.427Z", + "endDate": "2026-02-02T16:05:59.886Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T16:05:59.886Z", + "endDate": "2026-02-02T16:21:04.562Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-02T16:06:00.558Z", + "endDate": "2026-02-02T16:06:05.558Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-02T16:11:01.555Z", + "endDate": "2026-02-02T16:11:06.555Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T16:21:04.563Z", + "endDate": "2026-02-02T16:25:59.780Z", + "value": 0.35, + "unit": "U/hour", + "scheduledBasalRate": 0.35, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T16:25:59.782Z", + "endDate": "2026-02-02T16:45:59.035Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T16:25:59.78Z", + "endDate": "2026-02-02T16:25:59.781Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T16:45:59.036Z", + "endDate": "2026-02-02T16:45:59.161Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T16:45:59.162Z", + "endDate": "2026-02-02T16:56:00.140Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T16:56:00.14Z", + "endDate": "2026-02-02T17:40:08.656Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-02T17:06:00.705Z", + "endDate": "2026-02-02T17:06:14.205Z", + "value": 0.45, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-02T17:15:59.003Z", + "endDate": "2026-02-02T17:16:04.003Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T17:40:08.657Z", + "endDate": "2026-02-02T17:45:06.109Z", + "value": 0.6, + "unit": "U/hour", + "scheduledBasalRate": 0.6, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T17:45:06.116Z", + "endDate": "2026-02-02T17:50:06.038Z", + "value": 0.2, + "unit": "U/hour", + "scheduledBasalRate": 0.2, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T17:45:06.11Z", + "endDate": "2026-02-02T17:45:06.116Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T17:50:06.039Z", + "endDate": "2026-02-02T18:00:06.713Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-02T17:50:06.791Z", + "endDate": "2026-02-02T17:50:17.291Z", + "value": 0.35, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-02T17:55:09.647Z", + "endDate": "2026-02-02T17:55:14.647Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T18:00:06.714Z", + "endDate": "2026-02-02T18:05:07.134Z", + "value": 0.05, + "unit": "U/hour", + "scheduledBasalRate": 0.05, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T18:05:07.134Z", + "endDate": "2026-02-02T18:20:06.065Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-02T18:05:07.748Z", + "endDate": "2026-02-02T18:05:12.748Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-02T18:10:06.866Z", + "endDate": "2026-02-02T18:10:18.866Z", + "value": 0.4, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-02T18:15:06.197Z", + "endDate": "2026-02-02T18:15:21.197Z", + "value": 0.5, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T18:20:06.065Z", + "endDate": "2026-02-02T18:35:07.074Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T18:35:07.075Z", + "endDate": "2026-02-02T18:35:07.087Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T18:35:07.087Z", + "endDate": "2026-02-02T18:40:06.729Z", + "value": 0.3, + "unit": "U/hour", + "scheduledBasalRate": 0.3, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T18:40:06.729Z", + "endDate": "2026-02-02T18:40:06.730Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T18:40:06.731Z", + "endDate": "2026-02-02T19:00:06.004Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T19:00:06.005Z", + "endDate": "2026-02-02T19:00:06.008Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T19:00:06.009Z", + "endDate": "2026-02-02T19:05:06.055Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T19:05:06.056Z", + "endDate": "2026-02-02T19:15:07.272Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-02T19:05:06.568Z", + "endDate": "2026-02-02T19:05:15.568Z", + "value": 0.3, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-02T19:10:09.016Z", + "endDate": "2026-02-02T19:10:15.016Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T19:15:07.272Z", + "endDate": "2026-02-02T19:20:07.665Z", + "value": 0.8, + "unit": "U/hour", + "scheduledBasalRate": 0.8, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T19:20:07.666Z", + "endDate": "2026-02-02T19:25:05.519Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T19:25:05.519Z", + "endDate": "2026-02-02T19:45:09.400Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T19:45:09.402Z", + "endDate": "2026-02-02T19:50:07.465Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T19:45:09.4Z", + "endDate": "2026-02-02T19:45:09.401Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T19:50:07.466Z", + "endDate": "2026-02-02T20:15:11.865Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-02T20:05:07.417Z", + "endDate": "2026-02-02T20:06:55.417Z", + "value": 3.6, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-02T20:10:06.898Z", + "endDate": "2026-02-02T20:11:02.398Z", + "value": 1.85, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T20:15:11.865Z", + "endDate": "2026-02-02T20:20:11.272Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T20:20:11.273Z", + "endDate": "2026-02-02T20:35:08.341Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-02T20:25:11.039Z", + "endDate": "2026-02-02T20:25:36.539Z", + "value": 0.85, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-02T20:30:08.63Z", + "endDate": "2026-02-02T20:30:25.130Z", + "value": 0.55, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T20:35:08.341Z", + "endDate": "2026-02-02T20:55:06.338Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T20:55:06.339Z", + "endDate": "2026-02-02T20:55:06.342Z", + "value": 0.5, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T20:55:06.342Z", + "endDate": "2026-02-02T21:10:08.772Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T21:10:08.772Z", + "endDate": "2026-02-02T21:10:08.774Z", + "value": 0.5, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T21:10:08.774Z", + "endDate": "2026-02-02T21:15:06.708Z", + "value": 0.5, + "unit": "U/hour", + "scheduledBasalRate": 0.5, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T21:15:06.709Z", + "endDate": "2026-02-02T21:15:06.711Z", + "value": 0.5, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T21:15:06.712Z", + "endDate": "2026-02-02T21:30:07.209Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T21:30:07.211Z", + "endDate": "2026-02-02T21:50:06.829Z", + "value": 0.5, + "unit": "U/hour", + "scheduledBasalRate": 0.5, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T21:30:07.21Z", + "endDate": "2026-02-02T21:30:07.211Z", + "value": 0.5, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-02T21:40:06.271Z", + "endDate": "2026-02-02T21:40:22.771Z", + "value": 0.55, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-02T21:45:08.986Z", + "endDate": "2026-02-02T21:45:16.486Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T21:50:06.833Z", + "endDate": "2026-02-02T22:00:11.834Z", + "value": 0.5, + "unit": "U/hour", + "scheduledBasalRate": 0.5, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T21:50:06.83Z", + "endDate": "2026-02-02T21:50:06.833Z", + "value": 0.5, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-02T21:55:06.355Z", + "endDate": "2026-02-02T21:55:11.355Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T22:00:11.834Z", + "endDate": "2026-02-02T22:00:11.835Z", + "value": 0.45, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T22:00:11.836Z", + "endDate": "2026-02-02T22:15:07.663Z", + "value": 0.45, + "unit": "U/hour", + "scheduledBasalRate": 0.45, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-02T22:00:13.005Z", + "endDate": "2026-02-02T22:00:20.505Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-02T22:05:06.317Z", + "endDate": "2026-02-02T22:05:24.317Z", + "value": 0.6, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-02T22:10:07.132Z", + "endDate": "2026-02-02T22:10:17.632Z", + "value": 0.35, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T22:15:07.663Z", + "endDate": "2026-02-02T22:15:07.665Z", + "value": 0.45, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T22:15:07.666Z", + "endDate": "2026-02-02T22:30:08.008Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T22:30:08.009Z", + "endDate": "2026-02-02T22:30:08.010Z", + "value": 0.45, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T22:30:08.011Z", + "endDate": "2026-02-02T22:50:08.687Z", + "value": 0.45, + "unit": "U/hour", + "scheduledBasalRate": 0.45, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-02T22:30:09.137Z", + "endDate": "2026-02-02T22:30:14.137Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-02T22:35:09.907Z", + "endDate": "2026-02-02T22:35:18.907Z", + "value": 0.3, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-02T22:40:07.452Z", + "endDate": "2026-02-02T22:40:23.952Z", + "value": 0.55, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-02T22:45:18.632Z", + "endDate": "2026-02-02T22:45:41.132Z", + "value": 0.75, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T22:50:08.687Z", + "endDate": "2026-02-02T22:50:08.691Z", + "value": 0.45, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T22:50:08.691Z", + "endDate": "2026-02-02T22:55:06.578Z", + "value": 0.45, + "unit": "U/hour", + "scheduledBasalRate": 0.45, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-02T22:50:09.796Z", + "endDate": "2026-02-02T22:50:17.296Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T22:55:06.578Z", + "endDate": "2026-02-02T22:55:06.586Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T22:55:06.586Z", + "endDate": "2026-02-02T23:15:18.775Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T23:15:18.776Z", + "endDate": "2026-02-02T23:15:18.777Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T23:15:18.777Z", + "endDate": "2026-02-02T23:25:09.471Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-02T23:25:09.472Z", + "endDate": "2026-02-03T00:00:07.023Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-02T23:25:10.659Z", + "endDate": "2026-02-02T23:25:24.159Z", + "value": 0.45, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-02T23:30:06.775Z", + "endDate": "2026-02-02T23:30:45.775Z", + "value": 1.3, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-02T23:35:09.237Z", + "endDate": "2026-02-02T23:35:30.237Z", + "value": 0.7, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-02T23:40:07.172Z", + "endDate": "2026-02-02T23:40:20.672Z", + "value": 0.45, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-02T23:45:08.629Z", + "endDate": "2026-02-02T23:45:19.129Z", + "value": 0.35, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-02T23:50:06.623Z", + "endDate": "2026-02-02T23:50:35.123Z", + "value": 0.95, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-02T23:55:07.6Z", + "endDate": "2026-02-02T23:55:46.600Z", + "value": 1.3, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T00:00:07.023Z", + "endDate": "2026-02-03T00:05:06.768Z", + "value": 0.7, + "unit": "U/hour", + "scheduledBasalRate": 0.7, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T00:05:06.768Z", + "endDate": "2026-02-03T00:05:06.771Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T00:05:06.771Z", + "endDate": "2026-02-03T00:10:08.471Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T00:10:08.471Z", + "endDate": "2026-02-03T00:59:59.999Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-03T00:10:09.4Z", + "endDate": "2026-02-03T00:10:14.400Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-03T00:15:08.172Z", + "endDate": "2026-02-03T00:15:24.672Z", + "value": 0.55, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-03T00:20:06.901Z", + "endDate": "2026-02-03T00:20:18.901Z", + "value": 0.4, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-03T00:25:06.592Z", + "endDate": "2026-02-03T00:25:20.092Z", + "value": 0.45, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-03T00:30:06.494Z", + "endDate": "2026-02-03T00:30:16.994Z", + "value": 0.35, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T01:00:00Z", + "endDate": "2026-02-03T01:00:05.979Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T01:00:05.979Z", + "endDate": "2026-02-03T01:05:07.757Z", + "value": 0.8, + "unit": "U/hour", + "scheduledBasalRate": 0.8, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T01:05:07.758Z", + "endDate": "2026-02-03T01:05:07.762Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T01:05:07.762Z", + "endDate": "2026-02-03T01:10:07.149Z", + "value": 0.25, + "unit": "U/hour", + "scheduledBasalRate": 0.25, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T01:10:07.15Z", + "endDate": "2026-02-03T01:10:43.878Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-03T01:10:07.795Z", + "endDate": "2026-02-03T01:10:18.295Z", + "value": 0.35, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T01:10:43.878Z", + "endDate": "2026-02-03T01:15:06.961Z", + "value": 0.55, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T01:15:06.962Z", + "endDate": "2026-02-03T01:15:08.053Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T01:15:08.053Z", + "endDate": "2026-02-03T01:25:07.076Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T01:25:07.077Z", + "endDate": "2026-02-03T01:40:15.958Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-03T01:25:07.989Z", + "endDate": "2026-02-03T01:25:28.989Z", + "value": 0.7, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-03T01:30:08.729Z", + "endDate": "2026-02-03T01:30:44.729Z", + "value": 1.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-03T01:35:07.772Z", + "endDate": "2026-02-03T01:35:12.772Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T01:40:15.958Z", + "endDate": "2026-02-03T01:50:09.409Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T01:50:09.409Z", + "endDate": "2026-02-03T01:50:09.412Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T01:50:09.412Z", + "endDate": "2026-02-03T01:55:06.760Z", + "value": 0.1, + "unit": "U/hour", + "scheduledBasalRate": 0.1, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T01:55:06.761Z", + "endDate": "2026-02-03T02:00:07.993Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-03T01:55:07.707Z", + "endDate": "2026-02-03T01:55:27.207Z", + "value": 0.65, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T02:00:07.993Z", + "endDate": "2026-02-03T02:05:06.894Z", + "value": 0.75, + "unit": "U/hour", + "scheduledBasalRate": 0.75, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T02:05:06.895Z", + "endDate": "2026-02-03T02:05:06.897Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T02:05:06.898Z", + "endDate": "2026-02-03T02:20:21.748Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T02:20:21.748Z", + "endDate": "2026-02-03T02:30:06.920Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-03T02:20:23.082Z", + "endDate": "2026-02-03T02:20:30.582Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-03T02:25:09.616Z", + "endDate": "2026-02-03T02:25:20.116Z", + "value": 0.35, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T02:30:06.92Z", + "endDate": "2026-02-03T02:50:08.019Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-03T02:45:04.908Z", + "endDate": "2026-02-03T02:46:42.408Z", + "value": 3.25, + "unit": "U", + "isMutable": false + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T02:50:08.019Z", + "endDate": "2026-02-03T02:55:07.759Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-03T02:50:08.696Z", + "endDate": "2026-02-03T02:50:22.196Z", + "value": 0.45, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T02:55:07.76Z", + "endDate": "2026-02-03T03:15:08.777Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T03:15:08.777Z", + "endDate": "2026-02-03T03:15:08.780Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T03:15:08.78Z", + "endDate": "2026-02-03T03:35:08.170Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T03:35:08.171Z", + "endDate": "2026-02-03T03:35:08.174Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T03:35:08.175Z", + "endDate": "2026-02-03T03:55:10.584Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T03:55:10.584Z", + "endDate": "2026-02-03T03:55:10.589Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T03:55:10.589Z", + "endDate": "2026-02-03T04:05:09.036Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T04:05:09.037Z", + "endDate": "2026-02-03T04:05:09.039Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T04:05:09.039Z", + "endDate": "2026-02-03T04:10:07.712Z", + "value": 0.25, + "unit": "U/hour", + "scheduledBasalRate": 0.25, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T04:10:07.713Z", + "endDate": "2026-02-03T04:10:07.715Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T04:10:07.715Z", + "endDate": "2026-02-03T04:30:08.845Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T04:30:08.845Z", + "endDate": "2026-02-03T04:30:08.847Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T04:30:08.848Z", + "endDate": "2026-02-03T04:50:08.978Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T04:50:08.979Z", + "endDate": "2026-02-03T04:50:09.015Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T04:50:09.015Z", + "endDate": "2026-02-03T05:00:08.961Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T05:00:08.961Z", + "endDate": "2026-02-03T05:05:10.891Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T05:05:10.891Z", + "endDate": "2026-02-03T05:25:08.933Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T05:25:08.934Z", + "endDate": "2026-02-03T05:30:00.000Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T05:30:00Z", + "endDate": "2026-02-03T05:35:08.479Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T05:35:08.48Z", + "endDate": "2026-02-03T05:40:09.115Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T05:40:09.116Z", + "endDate": "2026-02-03T05:45:08.672Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T05:45:08.673Z", + "endDate": "2026-02-03T05:50:09.432Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T05:50:09.432Z", + "endDate": "2026-02-03T06:00:06.876Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T06:00:06.877Z", + "endDate": "2026-02-03T06:10:09.230Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T06:10:09.231Z", + "endDate": "2026-02-03T06:55:06.634Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T06:55:06.634Z", + "endDate": "2026-02-03T07:00:07.307Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T07:00:07.307Z", + "endDate": "2026-02-03T07:15:09.431Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-03T07:05:07.66Z", + "endDate": "2026-02-03T07:05:36.160Z", + "value": 0.95, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-03T07:10:08.535Z", + "endDate": "2026-02-03T07:10:13.535Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T07:15:09.431Z", + "endDate": "2026-02-03T07:35:07.611Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T07:35:07.611Z", + "endDate": "2026-02-03T07:40:09.549Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-03T07:35:08.227Z", + "endDate": "2026-02-03T07:35:13.227Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T07:40:09.55Z", + "endDate": "2026-02-03T07:45:07.872Z", + "value": 0.15, + "unit": "U/hour", + "scheduledBasalRate": 0.15, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T07:45:07.872Z", + "endDate": "2026-02-03T07:45:07.875Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T07:45:07.875Z", + "endDate": "2026-02-03T07:50:10.530Z", + "value": 0.3, + "unit": "U/hour", + "scheduledBasalRate": 0.3, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T07:50:10.531Z", + "endDate": "2026-02-03T08:00:00.000Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T08:00:00Z", + "endDate": "2026-02-03T08:05:09.619Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-03T08:00:07.84Z", + "endDate": "2026-02-03T08:00:12.840Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T08:05:09.62Z", + "endDate": "2026-02-03T08:10:08.805Z", + "value": 0.6, + "unit": "U/hour", + "scheduledBasalRate": 0.6, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T08:10:08.805Z", + "endDate": "2026-02-03T08:10:08.807Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T08:10:08.808Z", + "endDate": "2026-02-03T08:15:11.913Z", + "value": 0.35, + "unit": "U/hour", + "scheduledBasalRate": 0.35, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T08:15:11.913Z", + "endDate": "2026-02-03T08:15:11.914Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T08:15:11.914Z", + "endDate": "2026-02-03T08:20:09.770Z", + "value": 0.15, + "unit": "U/hour", + "scheduledBasalRate": 0.15, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T08:20:09.773Z", + "endDate": "2026-02-03T08:30:09.458Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T08:20:09.77Z", + "endDate": "2026-02-03T08:20:09.772Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T08:30:09.459Z", + "endDate": "2026-02-03T08:40:10.816Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-03T08:35:09.894Z", + "endDate": "2026-02-03T08:35:14.894Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T08:40:10.816Z", + "endDate": "2026-02-03T09:00:09.014Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T09:00:09.014Z", + "endDate": "2026-02-03T09:00:09.016Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T09:00:09.016Z", + "endDate": "2026-02-03T09:20:07.523Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T09:20:07.524Z", + "endDate": "2026-02-03T09:20:07.527Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T09:20:07.528Z", + "endDate": "2026-02-03T09:40:08.263Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T09:40:08.263Z", + "endDate": "2026-02-03T10:10:09.771Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T10:10:09.771Z", + "endDate": "2026-02-03T10:25:12.128Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T10:25:12.129Z", + "endDate": "2026-02-03T10:40:09.876Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T10:40:09.877Z", + "endDate": "2026-02-03T10:45:09.135Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T10:45:09.135Z", + "endDate": "2026-02-03T11:10:07.062Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T11:10:07.062Z", + "endDate": "2026-02-03T11:25:09.041Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T11:25:09.042Z", + "endDate": "2026-02-03T11:45:08.242Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T11:45:08.243Z", + "endDate": "2026-02-03T11:50:08.500Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T11:50:08.5Z", + "endDate": "2026-02-03T12:00:08.943Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-03T11:55:08.833Z", + "endDate": "2026-02-03T11:55:22.333Z", + "value": 0.45, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T12:00:08.944Z", + "endDate": "2026-02-03T12:05:08.672Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T12:05:08.673Z", + "endDate": "2026-02-03T12:15:09.324Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-03T12:05:09.379Z", + "endDate": "2026-02-03T12:05:14.379Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-03T12:10:10.234Z", + "endDate": "2026-02-03T12:10:15.234Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T12:15:09.325Z", + "endDate": "2026-02-03T12:35:08.960Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T12:35:08.962Z", + "endDate": "2026-02-03T12:55:09.994Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T12:35:08.96Z", + "endDate": "2026-02-03T12:35:08.961Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T12:55:09.994Z", + "endDate": "2026-02-03T12:55:09.996Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T12:55:09.997Z", + "endDate": "2026-02-03T13:15:10.271Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T13:15:10.271Z", + "endDate": "2026-02-03T13:25:11.974Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T13:25:11.975Z", + "endDate": "2026-02-03T13:35:12.395Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T13:35:12.395Z", + "endDate": "2026-02-03T14:15:07.612Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-03T13:55:08.277Z", + "endDate": "2026-02-03T13:55:20.277Z", + "value": 0.4, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-03T14:00:10.364Z", + "endDate": "2026-02-03T14:00:17.864Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-03T14:05:09.68Z", + "endDate": "2026-02-03T14:05:18.680Z", + "value": 0.3, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T14:15:07.613Z", + "endDate": "2026-02-03T14:25:10.533Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T14:25:10.533Z", + "endDate": "2026-02-03T14:25:10.536Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T14:25:10.537Z", + "endDate": "2026-02-03T14:30:12.034Z", + "value": 0.1, + "unit": "U/hour", + "scheduledBasalRate": 0.1, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T14:30:12.035Z", + "endDate": "2026-02-03T14:30:12.037Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T14:30:12.037Z", + "endDate": "2026-02-03T14:35:10.429Z", + "value": 0.2, + "unit": "U/hour", + "scheduledBasalRate": 0.2, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T14:35:10.433Z", + "endDate": "2026-02-03T14:45:08.220Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T14:35:10.43Z", + "endDate": "2026-02-03T14:35:10.432Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T14:45:08.221Z", + "endDate": "2026-02-03T14:50:08.483Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-03T14:45:09.09Z", + "endDate": "2026-02-03T14:45:14.090Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T14:50:08.483Z", + "endDate": "2026-02-03T14:55:08.185Z", + "value": 0.2, + "unit": "U/hour", + "scheduledBasalRate": 0.2, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T14:55:08.185Z", + "endDate": "2026-02-03T14:55:08.186Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T14:55:08.187Z", + "endDate": "2026-02-03T15:00:10.340Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T15:00:10.34Z", + "endDate": "2026-02-03T15:15:07.940Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-03T15:00:11.089Z", + "endDate": "2026-02-03T15:00:18.589Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-03T15:05:08.712Z", + "endDate": "2026-02-03T15:05:25.212Z", + "value": 0.55, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-03T15:10:09.827Z", + "endDate": "2026-02-03T15:10:21.827Z", + "value": 0.4, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T15:15:07.941Z", + "endDate": "2026-02-03T15:25:08.515Z", + "value": 0.25, + "unit": "U/hour", + "scheduledBasalRate": 0.25, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T15:25:08.515Z", + "endDate": "2026-02-03T15:35:10.100Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T15:35:10.101Z", + "endDate": "2026-02-03T15:45:08.562Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T15:45:08.562Z", + "endDate": "2026-02-03T15:50:09.831Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T15:50:09.831Z", + "endDate": "2026-02-03T16:00:10.698Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T16:00:10.699Z", + "endDate": "2026-02-03T16:05:07.863Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-03T16:00:11.343Z", + "endDate": "2026-02-03T16:00:16.343Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T16:05:07.863Z", + "endDate": "2026-02-03T16:15:10.581Z", + "value": 0.35, + "unit": "U/hour", + "scheduledBasalRate": 0.35, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T16:15:10.582Z", + "endDate": "2026-02-03T16:15:10.583Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T16:15:10.584Z", + "endDate": "2026-02-03T16:20:12.481Z", + "value": 0.1, + "unit": "U/hour", + "scheduledBasalRate": 0.1, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T16:20:12.481Z", + "endDate": "2026-02-03T16:30:08.598Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-03T16:25:08.567Z", + "endDate": "2026-02-03T16:25:13.567Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T16:30:08.598Z", + "endDate": "2026-02-03T16:35:08.619Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T16:35:08.62Z", + "endDate": "2026-02-03T17:15:10.721Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-03T16:40:09.105Z", + "endDate": "2026-02-03T16:40:22.605Z", + "value": 0.45, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-03T16:45:08.288Z", + "endDate": "2026-02-03T16:45:13.288Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-03T16:50:11.444Z", + "endDate": "2026-02-03T16:50:16.444Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-03T17:00:08.318Z", + "endDate": "2026-02-03T17:00:13.318Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T17:15:10.722Z", + "endDate": "2026-02-03T17:20:09.445Z", + "value": 0.25, + "unit": "U/hour", + "scheduledBasalRate": 0.25, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T17:20:09.445Z", + "endDate": "2026-02-03T17:20:09.447Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T17:20:09.448Z", + "endDate": "2026-02-03T17:25:10.711Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T17:25:10.711Z", + "endDate": "2026-02-03T17:25:10.713Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T17:25:10.714Z", + "endDate": "2026-02-03T17:30:11.163Z", + "value": 0.45, + "unit": "U/hour", + "scheduledBasalRate": 0.45, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T17:30:11.164Z", + "endDate": "2026-02-03T17:35:09.625Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T17:35:09.625Z", + "endDate": "2026-02-03T17:40:11.191Z", + "value": 0.4, + "unit": "U/hour", + "scheduledBasalRate": 0.4, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T17:40:11.192Z", + "endDate": "2026-02-03T18:20:09.951Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-03T17:45:09.084Z", + "endDate": "2026-02-03T17:45:14.084Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-03T17:50:10.89Z", + "endDate": "2026-02-03T17:50:15.890Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-03T18:00:11.099Z", + "endDate": "2026-02-03T18:00:16.099Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-03T18:05:10.898Z", + "endDate": "2026-02-03T18:05:21.398Z", + "value": 0.35, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-03T18:10:11.369Z", + "endDate": "2026-02-03T18:10:24.869Z", + "value": 0.45, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-03T18:15:09.458Z", + "endDate": "2026-02-03T18:15:19.958Z", + "value": 0.35, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T18:20:09.952Z", + "endDate": "2026-02-03T18:40:10.011Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T18:40:10.011Z", + "endDate": "2026-02-03T18:40:10.012Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T18:40:10.013Z", + "endDate": "2026-02-03T19:00:09.030Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T19:00:09.032Z", + "endDate": "2026-02-03T19:05:12.815Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T19:00:09.03Z", + "endDate": "2026-02-03T19:00:09.031Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T19:05:12.815Z", + "endDate": "2026-02-03T19:05:12.817Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T19:05:12.818Z", + "endDate": "2026-02-03T19:10:09.924Z", + "value": 0.6, + "unit": "U/hour", + "scheduledBasalRate": 0.6, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T19:10:09.924Z", + "endDate": "2026-02-03T19:10:09.927Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T19:10:09.927Z", + "endDate": "2026-02-03T19:15:09.194Z", + "value": 0.45, + "unit": "U/hour", + "scheduledBasalRate": 0.45, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T19:15:09.195Z", + "endDate": "2026-02-03T19:15:09.197Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T19:15:09.197Z", + "endDate": "2026-02-03T19:20:09.985Z", + "value": 0.7, + "unit": "U/hour", + "scheduledBasalRate": 0.7, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T19:20:09.986Z", + "endDate": "2026-02-03T19:44:24.952Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-03T19:20:10.778Z", + "endDate": "2026-02-03T19:20:15.778Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-03T19:25:08.788Z", + "endDate": "2026-02-03T19:25:13.788Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-03T19:35:12.472Z", + "endDate": "2026-02-03T19:35:17.472Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T19:44:24.952Z", + "endDate": "2026-02-03T19:45:09.401Z", + "value": 0.5, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T19:45:09.402Z", + "endDate": "2026-02-03T20:05:15.173Z", + "value": 0.5, + "unit": "U/hour", + "scheduledBasalRate": 0.5, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-03T19:50:09.278Z", + "endDate": "2026-02-03T19:50:14.278Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-03T19:55:10.887Z", + "endDate": "2026-02-03T19:55:15.887Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T20:05:15.173Z", + "endDate": "2026-02-03T20:05:15.188Z", + "value": 0.5, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T20:05:15.188Z", + "endDate": "2026-02-03T20:20:10.306Z", + "value": 0.5, + "unit": "U/hour", + "scheduledBasalRate": 0.5, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-03T20:05:16.282Z", + "endDate": "2026-02-03T20:05:21.282Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-03T20:10:11.112Z", + "endDate": "2026-02-03T20:10:16.112Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-03T20:15:09.842Z", + "endDate": "2026-02-03T20:15:14.842Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T20:20:10.307Z", + "endDate": "2026-02-03T20:40:08.440Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-03T20:20:10.908Z", + "endDate": "2026-02-03T20:20:19.908Z", + "value": 0.3, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-03T20:25:08.766Z", + "endDate": "2026-02-03T20:25:13.766Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-03T20:30:09.311Z", + "endDate": "2026-02-03T20:30:14.311Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T20:40:08.44Z", + "endDate": "2026-02-03T20:45:09.336Z", + "value": 0.45, + "unit": "U/hour", + "scheduledBasalRate": 0.45, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T20:45:09.337Z", + "endDate": "2026-02-03T20:45:09.338Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T20:45:09.338Z", + "endDate": "2026-02-03T20:50:10.271Z", + "value": 0.8, + "unit": "U/hour", + "scheduledBasalRate": 0.8, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T20:50:10.272Z", + "endDate": "2026-02-03T20:50:10.273Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T20:50:10.273Z", + "endDate": "2026-02-03T20:55:09.621Z", + "value": 0.2, + "unit": "U/hour", + "scheduledBasalRate": 0.2, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T20:55:09.622Z", + "endDate": "2026-02-03T20:55:09.624Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T20:55:09.625Z", + "endDate": "2026-02-03T21:00:09.514Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T21:00:09.514Z", + "endDate": "2026-02-03T21:52:09.127Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-03T21:15:37.651Z", + "endDate": "2026-02-03T21:17:15.151Z", + "value": 3.25, + "unit": "U", + "isMutable": false + }, + { + "type": "bolus", + "startDate": "2026-02-03T21:25:11.287Z", + "endDate": "2026-02-03T21:25:18.787Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T21:52:09.127Z", + "endDate": "2026-02-03T22:15:12.051Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T22:15:12.052Z", + "endDate": "2026-02-03T22:15:12.055Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T22:15:12.056Z", + "endDate": "2026-02-03T22:25:09.086Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T22:25:09.087Z", + "endDate": "2026-02-03T23:00:11.764Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-03T22:30:09.953Z", + "endDate": "2026-02-03T22:30:15.953Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-03T22:35:11.352Z", + "endDate": "2026-02-03T22:35:16.352Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-03T22:45:11.574Z", + "endDate": "2026-02-03T22:45:16.574Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-03T22:50:11.58Z", + "endDate": "2026-02-03T22:50:19.080Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-03T22:55:10.371Z", + "endDate": "2026-02-03T22:55:15.371Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T23:00:11.764Z", + "endDate": "2026-02-03T23:10:09.213Z", + "value": 0.45, + "unit": "U/hour", + "scheduledBasalRate": 0.45, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T23:10:09.214Z", + "endDate": "2026-02-03T23:10:09.215Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T23:10:09.216Z", + "endDate": "2026-02-03T23:30:10.757Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T23:30:10.758Z", + "endDate": "2026-02-03T23:30:10.762Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T23:30:10.762Z", + "endDate": "2026-02-03T23:50:09.644Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T23:50:09.644Z", + "endDate": "2026-02-03T23:50:09.647Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-03T23:50:09.648Z", + "endDate": "2026-02-04T00:10:12.426Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T00:10:12.426Z", + "endDate": "2026-02-04T00:10:12.429Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T00:10:12.43Z", + "endDate": "2026-02-04T00:25:10.302Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T00:25:10.303Z", + "endDate": "2026-02-04T01:00:00.000Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-04T00:40:10.092Z", + "endDate": "2026-02-04T00:40:22.092Z", + "value": 0.4, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-04T00:45:10.144Z", + "endDate": "2026-02-04T00:45:20.644Z", + "value": 0.35, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-04T00:50:09.354Z", + "endDate": "2026-02-04T00:50:19.854Z", + "value": 0.35, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-04T00:55:11.191Z", + "endDate": "2026-02-04T00:55:21.691Z", + "value": 0.35, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T01:00:00Z", + "endDate": "2026-02-04T01:25:10.398Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-04T01:00:12.143Z", + "endDate": "2026-02-04T01:00:17.143Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-04T01:10:12.447Z", + "endDate": "2026-02-04T01:10:17.447Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T01:25:10.398Z", + "endDate": "2026-02-04T01:30:10.724Z", + "value": 0.75, + "unit": "U/hour", + "scheduledBasalRate": 0.75, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T01:30:10.725Z", + "endDate": "2026-02-04T01:30:10.729Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T01:30:10.73Z", + "endDate": "2026-02-04T01:35:10.657Z", + "value": 0.05, + "unit": "U/hour", + "scheduledBasalRate": 0.05, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T01:35:10.657Z", + "endDate": "2026-02-04T01:35:10.659Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T01:35:10.66Z", + "endDate": "2026-02-04T01:40:10.201Z", + "value": 0.7, + "unit": "U/hour", + "scheduledBasalRate": 0.7, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T01:40:10.201Z", + "endDate": "2026-02-04T01:40:10.204Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T01:40:10.205Z", + "endDate": "2026-02-04T01:45:15.113Z", + "value": 0.8, + "unit": "U/hour", + "scheduledBasalRate": 0.8, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T01:45:15.114Z", + "endDate": "2026-02-04T02:10:11.258Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-04T01:45:15.743Z", + "endDate": "2026-02-04T01:45:20.743Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-04T01:50:12.951Z", + "endDate": "2026-02-04T01:50:17.951Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-04T01:52:43.97Z", + "endDate": "2026-02-04T01:53:28.970Z", + "value": 1.5, + "unit": "U", + "isMutable": false + }, + { + "type": "bolus", + "startDate": "2026-02-04T02:00:13.941Z", + "endDate": "2026-02-04T02:00:21.441Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T02:10:11.258Z", + "endDate": "2026-02-04T02:15:09.906Z", + "value": 0.8, + "unit": "U/hour", + "scheduledBasalRate": 0.8, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T02:15:09.907Z", + "endDate": "2026-02-04T02:15:09.909Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T02:15:09.91Z", + "endDate": "2026-02-04T02:20:11.312Z", + "value": 0.55, + "unit": "U/hour", + "scheduledBasalRate": 0.55, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T02:20:11.312Z", + "endDate": "2026-02-04T02:20:11.314Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T02:20:11.314Z", + "endDate": "2026-02-04T02:25:11.738Z", + "value": 0.5, + "unit": "U/hour", + "scheduledBasalRate": 0.5, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-04T02:22:17.253Z", + "endDate": "2026-02-04T02:24:17.253Z", + "value": 4, + "unit": "U", + "isMutable": false + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T02:25:11.739Z", + "endDate": "2026-02-04T03:05:10.352Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-04T02:35:10.884Z", + "endDate": "2026-02-04T02:35:36.384Z", + "value": 0.85, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-04T02:40:10.081Z", + "endDate": "2026-02-04T02:40:29.581Z", + "value": 0.65, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-04T03:00:09.601Z", + "endDate": "2026-02-04T03:00:33.601Z", + "value": 0.8, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-04T03:02:25.28Z", + "endDate": "2026-02-04T03:03:17.780Z", + "value": 1.75, + "unit": "U", + "isMutable": false + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T03:05:10.352Z", + "endDate": "2026-02-04T03:15:15.638Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T03:15:15.638Z", + "endDate": "2026-02-04T04:10:08.961Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-04T03:30:10.716Z", + "endDate": "2026-02-04T03:30:31.716Z", + "value": 0.7, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-04T03:40:14.029Z", + "endDate": "2026-02-04T03:40:30.529Z", + "value": 0.55, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-04T04:03:07.462Z", + "endDate": "2026-02-04T04:04:16.462Z", + "value": 2.3, + "unit": "U", + "isMutable": false + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T04:10:08.962Z", + "endDate": "2026-02-04T04:15:09.533Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T04:15:09.533Z", + "endDate": "2026-02-04T04:30:14.381Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-04T04:25:10.87Z", + "endDate": "2026-02-04T04:25:16.870Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T04:30:14.382Z", + "endDate": "2026-02-04T04:45:13.126Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T04:45:13.126Z", + "endDate": "2026-02-04T05:20:11.202Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-04T04:55:12.317Z", + "endDate": "2026-02-04T04:55:17.317Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-04T05:00:10.982Z", + "endDate": "2026-02-04T05:00:15.982Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T05:20:11.202Z", + "endDate": "2026-02-04T05:25:14.101Z", + "value": 0.5, + "unit": "U/hour", + "scheduledBasalRate": 0.5, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T05:25:14.102Z", + "endDate": "2026-02-04T05:25:14.104Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T05:25:14.105Z", + "endDate": "2026-02-04T05:30:12.861Z", + "value": 0.05, + "unit": "U/hour", + "scheduledBasalRate": 0.05, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T05:30:12.862Z", + "endDate": "2026-02-04T06:05:11.867Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-04T05:35:10.84Z", + "endDate": "2026-02-04T05:35:16.840Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-04T05:40:15.448Z", + "endDate": "2026-02-04T05:40:20.448Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-04T05:50:12.288Z", + "endDate": "2026-02-04T05:50:17.288Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-04T05:55:15.362Z", + "endDate": "2026-02-04T05:55:20.362Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-04T06:00:15.709Z", + "endDate": "2026-02-04T06:00:20.709Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "suspend", + "startDate": "2026-02-04T06:05:11.867Z", + "endDate": "2026-02-04T06:08:45.267Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr" + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T06:08:45.268Z", + "endDate": "2026-02-04T06:10:14.961Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T06:10:14.962Z", + "endDate": "2026-02-04T06:15:09.865Z", + "value": 0.25, + "unit": "U/hour", + "scheduledBasalRate": 0.25, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T06:15:09.865Z", + "endDate": "2026-02-04T06:25:12.426Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T06:25:12.426Z", + "endDate": "2026-02-04T06:30:13.999Z", + "value": 0.15, + "unit": "U/hour", + "scheduledBasalRate": 0.15, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T06:30:13.999Z", + "endDate": "2026-02-04T06:55:09.919Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-04T06:35:10.842Z", + "endDate": "2026-02-04T06:35:15.842Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-04T06:40:11.151Z", + "endDate": "2026-02-04T06:40:16.151Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-04T06:45:09.988Z", + "endDate": "2026-02-04T06:45:14.988Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-04T06:50:10.488Z", + "endDate": "2026-02-04T06:50:15.488Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T06:55:09.92Z", + "endDate": "2026-02-04T07:00:10.186Z", + "value": 0.5, + "unit": "U/hour", + "scheduledBasalRate": 0.5, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T07:00:10.186Z", + "endDate": "2026-02-04T07:00:10.189Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T07:00:10.19Z", + "endDate": "2026-02-04T07:05:11.811Z", + "value": 0.3, + "unit": "U/hour", + "scheduledBasalRate": 0.3, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T07:05:11.811Z", + "endDate": "2026-02-04T07:20:09.731Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T07:20:09.731Z", + "endDate": "2026-02-04T07:25:11.050Z", + "value": 0.55, + "unit": "U/hour", + "scheduledBasalRate": 0.55, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T07:25:11.051Z", + "endDate": "2026-02-04T08:00:00.000Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-04T07:30:11.221Z", + "endDate": "2026-02-04T07:30:16.221Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-04T07:35:13.58Z", + "endDate": "2026-02-04T07:35:18.580Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-04T07:40:11.081Z", + "endDate": "2026-02-04T07:40:16.081Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T08:00:00Z", + "endDate": "2026-02-04T08:40:11.160Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-04T08:05:12.086Z", + "endDate": "2026-02-04T08:05:17.086Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-04T08:10:10.056Z", + "endDate": "2026-02-04T08:10:15.056Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-04T08:15:11.156Z", + "endDate": "2026-02-04T08:15:17.156Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-04T08:20:10.8Z", + "endDate": "2026-02-04T08:20:15.800Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-04T08:25:11.748Z", + "endDate": "2026-02-04T08:25:16.748Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-04T08:30:10.796Z", + "endDate": "2026-02-04T08:30:15.796Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T08:40:11.161Z", + "endDate": "2026-02-04T08:45:12.175Z", + "value": 0.35, + "unit": "U/hour", + "scheduledBasalRate": 0.35, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T08:45:12.176Z", + "endDate": "2026-02-04T08:45:12.180Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T08:45:12.181Z", + "endDate": "2026-02-04T08:55:11.166Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T08:55:11.166Z", + "endDate": "2026-02-04T09:15:11.722Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-04T09:10:12.402Z", + "endDate": "2026-02-04T09:10:17.402Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T09:15:11.722Z", + "endDate": "2026-02-04T09:20:12.186Z", + "value": 0.5, + "unit": "U/hour", + "scheduledBasalRate": 0.5, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T09:20:12.186Z", + "endDate": "2026-02-04T09:20:12.188Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T09:20:12.189Z", + "endDate": "2026-02-04T09:25:11.119Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T09:25:11.12Z", + "endDate": "2026-02-04T09:35:11.703Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-04T09:30:11.785Z", + "endDate": "2026-02-04T09:30:16.785Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T09:35:11.703Z", + "endDate": "2026-02-04T09:45:12.145Z", + "value": 0.4, + "unit": "U/hour", + "scheduledBasalRate": 0.4, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T09:45:12.145Z", + "endDate": "2026-02-04T09:55:10.908Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T09:55:10.909Z", + "endDate": "2026-02-04T10:00:12.746Z", + "value": 0.05, + "unit": "U/hour", + "scheduledBasalRate": 0.05, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T10:00:12.746Z", + "endDate": "2026-02-04T10:35:09.886Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-04T10:05:11.14Z", + "endDate": "2026-02-04T10:05:16.140Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-04T10:15:12.229Z", + "endDate": "2026-02-04T10:15:17.229Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-04T10:20:12.195Z", + "endDate": "2026-02-04T10:20:17.195Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-04T10:25:12.925Z", + "endDate": "2026-02-04T10:25:17.925Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-04T10:30:11.178Z", + "endDate": "2026-02-04T10:30:16.178Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T10:35:09.887Z", + "endDate": "2026-02-04T10:40:10.577Z", + "value": 0.5, + "unit": "U/hour", + "scheduledBasalRate": 0.5, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T10:40:10.578Z", + "endDate": "2026-02-04T10:40:10.579Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T10:40:10.579Z", + "endDate": "2026-02-04T10:45:10.733Z", + "value": 0.2, + "unit": "U/hour", + "scheduledBasalRate": 0.2, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T10:45:10.734Z", + "endDate": "2026-02-04T10:45:10.736Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T10:45:10.736Z", + "endDate": "2026-02-04T10:50:12.177Z", + "value": 0.45, + "unit": "U/hour", + "scheduledBasalRate": 0.45, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T10:50:12.177Z", + "endDate": "2026-02-04T10:50:12.178Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T10:50:12.179Z", + "endDate": "2026-02-04T10:55:10.534Z", + "value": 0.4, + "unit": "U/hour", + "scheduledBasalRate": 0.4, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T10:55:10.535Z", + "endDate": "2026-02-04T10:55:10.540Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T10:55:10.54Z", + "endDate": "2026-02-04T11:00:11.666Z", + "value": 0.15, + "unit": "U/hour", + "scheduledBasalRate": 0.15, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T11:00:11.667Z", + "endDate": "2026-02-04T11:00:11.670Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T11:00:11.67Z", + "endDate": "2026-02-04T11:05:10.483Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T11:05:10.484Z", + "endDate": "2026-02-04T11:25:10.775Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-04T11:10:18.155Z", + "endDate": "2026-02-04T11:10:23.155Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-04T11:15:13.044Z", + "endDate": "2026-02-04T11:15:18.044Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T11:25:10.776Z", + "endDate": "2026-02-04T11:40:12.177Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T11:40:12.177Z", + "endDate": "2026-02-04T11:50:11.852Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T11:50:11.852Z", + "endDate": "2026-02-04T12:10:13.257Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T12:10:13.257Z", + "endDate": "2026-02-04T12:10:13.263Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T12:10:13.264Z", + "endDate": "2026-02-04T12:20:12.049Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T12:20:12.049Z", + "endDate": "2026-02-04T12:55:11.282Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T12:55:11.282Z", + "endDate": "2026-02-04T13:10:11.527Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T13:10:11.528Z", + "endDate": "2026-02-04T13:35:12.251Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-04T13:20:11.201Z", + "endDate": "2026-02-04T13:20:20.201Z", + "value": 0.3, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-04T13:25:12.922Z", + "endDate": "2026-02-04T13:25:18.922Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-04T13:30:12.238Z", + "endDate": "2026-02-04T13:30:17.238Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T13:35:12.251Z", + "endDate": "2026-02-04T13:40:10.896Z", + "value": 0.2, + "unit": "U/hour", + "scheduledBasalRate": 0.2, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T13:40:10.896Z", + "endDate": "2026-02-04T13:40:10.903Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T13:40:10.903Z", + "endDate": "2026-02-04T14:00:11.929Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T14:00:11.929Z", + "endDate": "2026-02-04T14:00:11.930Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T14:00:11.931Z", + "endDate": "2026-02-04T14:20:11.198Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T14:20:11.199Z", + "endDate": "2026-02-04T15:00:00.000Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-04T14:25:10.676Z", + "endDate": "2026-02-04T14:25:30.176Z", + "value": 0.65, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-04T14:30:13.166Z", + "endDate": "2026-02-04T14:30:20.666Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-04T14:35:12.761Z", + "endDate": "2026-02-04T14:35:17.761Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-04T14:40:12.767Z", + "endDate": "2026-02-04T14:40:17.767Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-04T14:45:11.833Z", + "endDate": "2026-02-04T14:45:17.833Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-04T14:50:12.477Z", + "endDate": "2026-02-04T14:50:21.477Z", + "value": 0.3, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-04T14:55:13.576Z", + "endDate": "2026-02-04T14:55:18.576Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T15:00:00Z", + "endDate": "2026-02-04T15:10:12.515Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-04T15:00:13.763Z", + "endDate": "2026-02-04T15:00:18.763Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T15:10:12.516Z", + "endDate": "2026-02-04T15:15:12.546Z", + "value": 0.85, + "unit": "U/hour", + "scheduledBasalRate": 0.85, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T15:15:12.546Z", + "endDate": "2026-02-04T15:15:12.548Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T15:15:12.549Z", + "endDate": "2026-02-04T15:20:11.089Z", + "value": 0.9, + "unit": "U/hour", + "scheduledBasalRate": 0.9, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T15:20:11.089Z", + "endDate": "2026-02-04T15:30:11.231Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T15:30:11.232Z", + "endDate": "2026-02-04T15:35:13.724Z", + "value": 0.6, + "unit": "U/hour", + "scheduledBasalRate": 0.6, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T15:35:13.724Z", + "endDate": "2026-02-04T15:35:13.726Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T15:35:13.727Z", + "endDate": "2026-02-04T15:40:15.327Z", + "value": 0.7, + "unit": "U/hour", + "scheduledBasalRate": 0.7, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T15:40:15.328Z", + "endDate": "2026-02-04T15:40:15.331Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T15:40:15.331Z", + "endDate": "2026-02-04T15:45:11.940Z", + "value": 0.9, + "unit": "U/hour", + "scheduledBasalRate": 0.9, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T15:45:11.941Z", + "endDate": "2026-02-04T15:45:11.944Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T15:45:11.945Z", + "endDate": "2026-02-04T15:50:12.508Z", + "value": 0.75, + "unit": "U/hour", + "scheduledBasalRate": 0.75, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T15:50:12.508Z", + "endDate": "2026-02-04T15:59:59.999Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T16:00:00Z", + "endDate": "2026-02-04T16:35:12.849Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-04T16:15:15.664Z", + "endDate": "2026-02-04T16:15:20.664Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-04T16:20:13.524Z", + "endDate": "2026-02-04T16:20:18.524Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-04T16:25:19.66Z", + "endDate": "2026-02-04T16:25:28.660Z", + "value": 0.3, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-04T16:30:11.724Z", + "endDate": "2026-02-04T16:30:25.224Z", + "value": 0.45, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T16:35:12.849Z", + "endDate": "2026-02-04T16:45:12.863Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T16:45:12.863Z", + "endDate": "2026-02-04T17:05:11.016Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-04T16:45:13.673Z", + "endDate": "2026-02-04T16:45:22.673Z", + "value": 0.3, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-04T16:50:13.891Z", + "endDate": "2026-02-04T16:50:18.891Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T17:05:11.017Z", + "endDate": "2026-02-04T17:10:12.667Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T17:10:12.667Z", + "endDate": "2026-02-04T17:15:10.944Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T17:15:10.945Z", + "endDate": "2026-02-04T17:20:13.473Z", + "value": 0.45, + "unit": "U/hour", + "scheduledBasalRate": 0.45, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T17:20:13.474Z", + "endDate": "2026-02-04T17:20:13.479Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T17:20:13.479Z", + "endDate": "2026-02-04T17:25:12.099Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T17:25:12.103Z", + "endDate": "2026-02-04T17:30:11.261Z", + "value": 0.1, + "unit": "U/hour", + "scheduledBasalRate": 0.1, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T17:25:12.1Z", + "endDate": "2026-02-04T17:25:12.102Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T17:30:11.261Z", + "endDate": "2026-02-04T17:30:11.264Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T17:30:11.265Z", + "endDate": "2026-02-04T17:40:13.844Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T17:40:13.844Z", + "endDate": "2026-02-04T17:40:13.850Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T17:40:13.851Z", + "endDate": "2026-02-04T17:45:11.841Z", + "value": 0.55, + "unit": "U/hour", + "scheduledBasalRate": 0.55, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T17:45:11.842Z", + "endDate": "2026-02-04T18:45:13.147Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-04T17:55:11.763Z", + "endDate": "2026-02-04T17:55:16.763Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-04T18:00:11.335Z", + "endDate": "2026-02-04T18:00:16.335Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-04T18:05:12.057Z", + "endDate": "2026-02-04T18:05:17.057Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-04T18:10:12.56Z", + "endDate": "2026-02-04T18:10:17.560Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-04T18:15:11.066Z", + "endDate": "2026-02-04T18:15:16.066Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-04T18:29:25.198Z", + "endDate": "2026-02-04T18:31:05.698Z", + "value": 3.35, + "unit": "U", + "isMutable": false + }, + { + "type": "bolus", + "startDate": "2026-02-04T18:35:13.684Z", + "endDate": "2026-02-04T18:35:18.684Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T18:45:13.147Z", + "endDate": "2026-02-04T18:50:16.110Z", + "value": 0.2, + "unit": "U/hour", + "scheduledBasalRate": 0.2, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T18:50:16.111Z", + "endDate": "2026-02-04T18:50:16.114Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T18:50:16.114Z", + "endDate": "2026-02-04T18:55:13.310Z", + "value": 0.55, + "unit": "U/hour", + "scheduledBasalRate": 0.55, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T18:55:13.31Z", + "endDate": "2026-02-04T18:59:59.999Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-04T18:55:14.061Z", + "endDate": "2026-02-04T18:55:19.061Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T19:00:00Z", + "endDate": "2026-02-04T19:15:11.668Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-04T19:00:12.969Z", + "endDate": "2026-02-04T19:00:17.969Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-04T19:05:11.998Z", + "endDate": "2026-02-04T19:05:16.998Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-04T19:10:13.641Z", + "endDate": "2026-02-04T19:10:18.641Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T19:15:11.668Z", + "endDate": "2026-02-04T19:20:13.481Z", + "value": 0.5, + "unit": "U/hour", + "scheduledBasalRate": 0.5, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T19:20:13.482Z", + "endDate": "2026-02-04T19:20:13.484Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T19:20:13.484Z", + "endDate": "2026-02-04T19:25:16.722Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T19:25:16.723Z", + "endDate": "2026-02-04T19:25:16.726Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T19:25:16.726Z", + "endDate": "2026-02-04T19:30:11.479Z", + "value": 0.8, + "unit": "U/hour", + "scheduledBasalRate": 0.8, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T19:30:11.479Z", + "endDate": "2026-02-04T19:30:11.483Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T19:30:11.484Z", + "endDate": "2026-02-04T19:35:11.874Z", + "value": 0.5, + "unit": "U/hour", + "scheduledBasalRate": 0.5, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T19:35:11.875Z", + "endDate": "2026-02-04T19:50:11.069Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-04T19:35:12.88Z", + "endDate": "2026-02-04T19:35:17.880Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-04T19:40:11.777Z", + "endDate": "2026-02-04T19:40:22.277Z", + "value": 0.35, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-04T19:45:11.852Z", + "endDate": "2026-02-04T19:45:16.852Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T19:50:11.07Z", + "endDate": "2026-02-04T19:55:11.636Z", + "value": 0.7, + "unit": "U/hour", + "scheduledBasalRate": 0.7, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T19:55:11.636Z", + "endDate": "2026-02-04T20:26:26.560Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-04T20:00:13.485Z", + "endDate": "2026-02-04T20:00:20.985Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-04T20:05:15.489Z", + "endDate": "2026-02-04T20:05:31.989Z", + "value": 0.55, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-04T20:10:11.453Z", + "endDate": "2026-02-04T20:10:21.953Z", + "value": 0.35, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-04T20:15:12.763Z", + "endDate": "2026-02-04T20:15:24.763Z", + "value": 0.4, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-04T20:25:11.592Z", + "endDate": "2026-02-04T20:25:17.592Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T20:26:26.561Z", + "endDate": "2026-02-04T20:30:10.992Z", + "value": 0.5, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T20:30:10.992Z", + "endDate": "2026-02-04T20:35:14.635Z", + "value": 0.5, + "unit": "U/hour", + "scheduledBasalRate": 0.5, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T20:35:14.636Z", + "endDate": "2026-02-04T20:40:15.907Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-04T20:35:15.595Z", + "endDate": "2026-02-04T20:35:20.595Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T20:40:15.907Z", + "endDate": "2026-02-04T20:50:14.518Z", + "value": 0.4, + "unit": "U/hour", + "scheduledBasalRate": 0.4, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T20:50:14.519Z", + "endDate": "2026-02-04T21:30:11.583Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-04T20:50:19.873Z", + "endDate": "2026-02-04T20:50:25.873Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-04T20:55:14.061Z", + "endDate": "2026-02-04T20:55:29.061Z", + "value": 0.5, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-04T21:00:11.98Z", + "endDate": "2026-02-04T21:00:35.980Z", + "value": 0.8, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-04T21:05:13.938Z", + "endDate": "2026-02-04T21:05:25.938Z", + "value": 0.4, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-04T21:10:13.864Z", + "endDate": "2026-02-04T21:10:27.364Z", + "value": 0.45, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-04T21:15:15.024Z", + "endDate": "2026-02-04T21:15:30.024Z", + "value": 0.5, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-04T21:20:11.735Z", + "endDate": "2026-02-04T21:20:19.235Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-04T21:25:13.416Z", + "endDate": "2026-02-04T21:25:19.416Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T21:30:11.583Z", + "endDate": "2026-02-04T21:35:16.989Z", + "value": 0.65, + "unit": "U/hour", + "scheduledBasalRate": 0.65, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T21:35:16.992Z", + "endDate": "2026-02-04T21:40:14.640Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T21:35:16.99Z", + "endDate": "2026-02-04T21:35:16.992Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T21:40:14.64Z", + "endDate": "2026-02-04T21:45:12.088Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-04T21:40:15.39Z", + "endDate": "2026-02-04T21:40:20.390Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T21:45:12.089Z", + "endDate": "2026-02-04T21:50:12.014Z", + "value": 0.45, + "unit": "U/hour", + "scheduledBasalRate": 0.45, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T21:50:12.015Z", + "endDate": "2026-02-04T21:50:12.019Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T21:50:12.019Z", + "endDate": "2026-02-04T21:55:21.381Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T21:55:21.382Z", + "endDate": "2026-02-04T21:55:21.435Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T21:55:21.436Z", + "endDate": "2026-02-04T22:00:14.528Z", + "value": 0.5, + "unit": "U/hour", + "scheduledBasalRate": 0.5, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T22:00:14.528Z", + "endDate": "2026-02-04T22:00:14.580Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T22:00:14.581Z", + "endDate": "2026-02-04T22:20:15.870Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T22:20:15.873Z", + "endDate": "2026-02-04T22:25:14.840Z", + "value": 0.05, + "unit": "U/hour", + "scheduledBasalRate": 0.05, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T22:20:15.87Z", + "endDate": "2026-02-04T22:20:15.872Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T22:25:14.841Z", + "endDate": "2026-02-04T22:25:14.844Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T22:25:14.844Z", + "endDate": "2026-02-04T22:30:18.536Z", + "value": 0.2, + "unit": "U/hour", + "scheduledBasalRate": 0.2, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T22:30:18.536Z", + "endDate": "2026-02-04T22:30:18.538Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T22:30:18.539Z", + "endDate": "2026-02-04T22:35:24.671Z", + "value": 0.5, + "unit": "U/hour", + "scheduledBasalRate": 0.5, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T22:35:24.671Z", + "endDate": "2026-02-04T23:05:14.938Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-04T22:40:12.856Z", + "endDate": "2026-02-04T22:40:17.856Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T23:05:14.939Z", + "endDate": "2026-02-04T23:10:22.186Z", + "value": 0.45, + "unit": "U/hour", + "scheduledBasalRate": 0.45, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T23:10:22.187Z", + "endDate": "2026-02-04T23:10:22.191Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T23:10:22.191Z", + "endDate": "2026-02-04T23:15:12.361Z", + "value": 0.4, + "unit": "U/hour", + "scheduledBasalRate": 0.4, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T23:15:12.361Z", + "endDate": "2026-02-04T23:20:34.732Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T23:20:34.733Z", + "endDate": "2026-02-04T23:30:22.180Z", + "value": 0.4, + "unit": "U/hour", + "scheduledBasalRate": 0.4, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T23:30:22.183Z", + "endDate": "2026-02-04T23:50:13.083Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T23:30:22.18Z", + "endDate": "2026-02-04T23:30:22.182Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T23:50:13.083Z", + "endDate": "2026-02-04T23:50:13.084Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T23:50:13.085Z", + "endDate": "2026-02-04T23:55:15.060Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-04T23:55:15.06Z", + "endDate": "2026-02-05T00:00:15.907Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T00:00:15.908Z", + "endDate": "2026-02-05T00:05:13.236Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T00:05:13.237Z", + "endDate": "2026-02-05T00:15:13.444Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T00:15:13.444Z", + "endDate": "2026-02-05T00:20:12.155Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T00:20:12.156Z", + "endDate": "2026-02-05T00:25:12.414Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T00:25:12.414Z", + "endDate": "2026-02-05T00:35:12.061Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T00:35:12.061Z", + "endDate": "2026-02-05T00:45:12.530Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T00:45:12.531Z", + "endDate": "2026-02-05T01:05:14.751Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T01:05:14.751Z", + "endDate": "2026-02-05T01:05:14.755Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T01:05:14.756Z", + "endDate": "2026-02-05T01:25:13.160Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T01:25:13.163Z", + "endDate": "2026-02-05T01:40:14.212Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T01:25:13.16Z", + "endDate": "2026-02-05T01:25:13.163Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-05T01:40:07.735Z", + "endDate": "2026-02-05T01:40:39.235Z", + "value": 1.05, + "unit": "U", + "isMutable": false + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T01:40:14.213Z", + "endDate": "2026-02-05T02:35:15.995Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T02:35:15.995Z", + "endDate": "2026-02-05T02:40:14.644Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T02:40:14.645Z", + "endDate": "2026-02-05T05:29:59.999Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-05T03:10:13.693Z", + "endDate": "2026-02-05T03:11:01.693Z", + "value": 1.6, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-05T03:15:14.463Z", + "endDate": "2026-02-05T03:15:48.963Z", + "value": 1.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-05T04:40:17.156Z", + "endDate": "2026-02-05T04:40:41.156Z", + "value": 0.8, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-05T04:45:14.031Z", + "endDate": "2026-02-05T04:45:27.531Z", + "value": 0.45, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T05:30:00Z", + "endDate": "2026-02-05T08:00:00.000Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-05T07:25:13.819Z", + "endDate": "2026-02-05T07:25:18.819Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-05T07:30:13.718Z", + "endDate": "2026-02-05T07:30:18.718Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-05T07:35:12.762Z", + "endDate": "2026-02-05T07:35:17.762Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-05T07:40:14.747Z", + "endDate": "2026-02-05T07:40:19.747Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T08:00:00Z", + "endDate": "2026-02-05T08:35:12.687Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-05T08:06:11.44Z", + "endDate": "2026-02-05T08:06:16.440Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-05T08:15:14.485Z", + "endDate": "2026-02-05T08:15:23.485Z", + "value": 0.3, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-05T08:20:13.378Z", + "endDate": "2026-02-05T08:20:20.878Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-05T08:25:15.245Z", + "endDate": "2026-02-05T08:25:20.245Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T08:35:12.687Z", + "endDate": "2026-02-05T08:40:16.494Z", + "value": 0.55, + "unit": "U/hour", + "scheduledBasalRate": 0.55, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T08:40:16.495Z", + "endDate": "2026-02-05T08:40:16.502Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T08:40:16.503Z", + "endDate": "2026-02-05T08:45:15.411Z", + "value": 0.6, + "unit": "U/hour", + "scheduledBasalRate": 0.6, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T08:45:15.412Z", + "endDate": "2026-02-05T08:50:13.056Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T08:50:13.056Z", + "endDate": "2026-02-05T09:00:15.387Z", + "value": 0.6, + "unit": "U/hour", + "scheduledBasalRate": 0.6, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T09:00:15.388Z", + "endDate": "2026-02-05T09:05:13.338Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T09:05:13.339Z", + "endDate": "2026-02-05T09:10:12.867Z", + "value": 0.55, + "unit": "U/hour", + "scheduledBasalRate": 0.55, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T09:10:12.868Z", + "endDate": "2026-02-05T09:10:12.871Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T09:10:12.871Z", + "endDate": "2026-02-05T09:15:13.047Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T09:15:13.047Z", + "endDate": "2026-02-05T09:45:12.354Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-05T09:15:13.828Z", + "endDate": "2026-02-05T09:15:18.828Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-05T09:20:13.626Z", + "endDate": "2026-02-05T09:20:19.626Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-05T09:25:13.781Z", + "endDate": "2026-02-05T09:25:21.281Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-05T09:30:14.193Z", + "endDate": "2026-02-05T09:30:19.193Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-05T09:35:12.939Z", + "endDate": "2026-02-05T09:35:17.939Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T09:45:12.355Z", + "endDate": "2026-02-05T09:50:13.855Z", + "value": 0.5, + "unit": "U/hour", + "scheduledBasalRate": 0.5, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T09:50:13.856Z", + "endDate": "2026-02-05T09:50:13.860Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T09:50:13.86Z", + "endDate": "2026-02-05T10:10:15.778Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T10:10:15.779Z", + "endDate": "2026-02-05T10:10:15.783Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T10:10:15.784Z", + "endDate": "2026-02-05T10:15:14.427Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T10:15:14.427Z", + "endDate": "2026-02-05T10:15:14.429Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T10:15:14.43Z", + "endDate": "2026-02-05T10:20:14.540Z", + "value": 0.4, + "unit": "U/hour", + "scheduledBasalRate": 0.4, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T10:20:14.541Z", + "endDate": "2026-02-05T10:20:14.544Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T10:20:14.544Z", + "endDate": "2026-02-05T10:25:14.040Z", + "value": 0.2, + "unit": "U/hour", + "scheduledBasalRate": 0.2, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T10:25:14.041Z", + "endDate": "2026-02-05T10:45:14.115Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-05T10:25:14.774Z", + "endDate": "2026-02-05T10:25:19.774Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-05T10:30:14.075Z", + "endDate": "2026-02-05T10:30:24.575Z", + "value": 0.35, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-05T10:35:13.768Z", + "endDate": "2026-02-05T10:35:19.768Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T10:45:14.115Z", + "endDate": "2026-02-05T10:50:14.355Z", + "value": 0.5, + "unit": "U/hour", + "scheduledBasalRate": 0.5, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T10:50:14.356Z", + "endDate": "2026-02-05T10:50:14.359Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T10:50:14.359Z", + "endDate": "2026-02-05T10:55:15.392Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T10:55:15.392Z", + "endDate": "2026-02-05T10:55:15.394Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T10:55:15.395Z", + "endDate": "2026-02-05T11:00:13.372Z", + "value": 0.3, + "unit": "U/hour", + "scheduledBasalRate": 0.3, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T11:00:13.372Z", + "endDate": "2026-02-05T11:05:12.815Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-05T11:00:14.002Z", + "endDate": "2026-02-05T11:00:19.002Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T11:05:12.816Z", + "endDate": "2026-02-05T11:10:13.864Z", + "value": 0.55, + "unit": "U/hour", + "scheduledBasalRate": 0.55, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T11:10:13.864Z", + "endDate": "2026-02-05T11:30:13.606Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-05T11:15:15.236Z", + "endDate": "2026-02-05T11:15:22.736Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-05T11:20:13.64Z", + "endDate": "2026-02-05T11:20:19.640Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-05T11:25:13.227Z", + "endDate": "2026-02-05T11:25:18.227Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T11:30:13.606Z", + "endDate": "2026-02-05T11:35:13.631Z", + "value": 0.55, + "unit": "U/hour", + "scheduledBasalRate": 0.55, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T11:35:13.631Z", + "endDate": "2026-02-05T11:35:13.634Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T11:35:13.635Z", + "endDate": "2026-02-05T11:40:15.454Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T11:40:15.454Z", + "endDate": "2026-02-05T12:00:16.157Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-05T11:40:16.219Z", + "endDate": "2026-02-05T11:40:21.219Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-05T11:45:14.29Z", + "endDate": "2026-02-05T11:45:20.290Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-05T11:50:14.282Z", + "endDate": "2026-02-05T11:50:19.282Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-05T11:55:13.147Z", + "endDate": "2026-02-05T11:55:18.147Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T12:00:16.158Z", + "endDate": "2026-02-05T12:05:15.860Z", + "value": 0.35, + "unit": "U/hour", + "scheduledBasalRate": 0.35, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T12:05:15.862Z", + "endDate": "2026-02-05T12:10:13.314Z", + "value": 0.15, + "unit": "U/hour", + "scheduledBasalRate": 0.15, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T12:05:15.86Z", + "endDate": "2026-02-05T12:05:15.862Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T12:10:13.315Z", + "endDate": "2026-02-05T12:30:13.173Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-05T12:10:14.065Z", + "endDate": "2026-02-05T12:10:19.065Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-05T12:15:14.431Z", + "endDate": "2026-02-05T12:15:19.431Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-05T12:20:14.874Z", + "endDate": "2026-02-05T12:20:19.874Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T12:30:13.173Z", + "endDate": "2026-02-05T12:35:14.650Z", + "value": 0.45, + "unit": "U/hour", + "scheduledBasalRate": 0.45, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T12:35:14.65Z", + "endDate": "2026-02-05T12:55:14.289Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-05T12:40:13.503Z", + "endDate": "2026-02-05T12:40:18.503Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-05T12:45:16.016Z", + "endDate": "2026-02-05T12:45:21.016Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-05T12:50:13.876Z", + "endDate": "2026-02-05T12:50:18.876Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T12:55:14.29Z", + "endDate": "2026-02-05T13:00:13.591Z", + "value": 0.1, + "unit": "U/hour", + "scheduledBasalRate": 0.1, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T13:00:13.591Z", + "endDate": "2026-02-05T13:15:14.481Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-05T13:00:14.311Z", + "endDate": "2026-02-05T13:00:19.311Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-05T13:05:14.167Z", + "endDate": "2026-02-05T13:05:23.167Z", + "value": 0.3, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-05T13:10:16.002Z", + "endDate": "2026-02-05T13:10:21.002Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T13:15:14.482Z", + "endDate": "2026-02-05T13:20:15.123Z", + "value": 0.1, + "unit": "U/hour", + "scheduledBasalRate": 0.1, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T13:20:15.123Z", + "endDate": "2026-02-05T13:20:15.125Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T13:20:15.126Z", + "endDate": "2026-02-05T13:30:13.289Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T13:30:13.289Z", + "endDate": "2026-02-05T13:35:13.120Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T13:35:13.121Z", + "endDate": "2026-02-05T13:40:13.509Z", + "value": 0.5, + "unit": "U/hour", + "scheduledBasalRate": 0.5, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T13:40:13.513Z", + "endDate": "2026-02-05T13:50:13.732Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T13:40:13.51Z", + "endDate": "2026-02-05T13:40:13.513Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T13:50:13.733Z", + "endDate": "2026-02-05T13:50:13.736Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T13:50:13.736Z", + "endDate": "2026-02-05T13:55:13.574Z", + "value": 0.55, + "unit": "U/hour", + "scheduledBasalRate": 0.55, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T13:55:13.575Z", + "endDate": "2026-02-05T14:05:13.207Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-05T14:00:14.766Z", + "endDate": "2026-02-05T14:00:19.766Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T14:05:13.207Z", + "endDate": "2026-02-05T14:10:16.440Z", + "value": 0.4, + "unit": "U/hour", + "scheduledBasalRate": 0.4, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T14:10:16.441Z", + "endDate": "2026-02-05T14:30:15.645Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-05T14:10:17.312Z", + "endDate": "2026-02-05T14:10:22.312Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-05T14:15:16.534Z", + "endDate": "2026-02-05T14:15:21.534Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-05T14:20:14.398Z", + "endDate": "2026-02-05T14:20:19.398Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T14:30:15.645Z", + "endDate": "2026-02-05T14:35:17.262Z", + "value": 0.35, + "unit": "U/hour", + "scheduledBasalRate": 0.35, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T14:35:17.262Z", + "endDate": "2026-02-05T14:45:13.097Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T14:45:13.097Z", + "endDate": "2026-02-05T14:50:14.745Z", + "value": 0.5, + "unit": "U/hour", + "scheduledBasalRate": 0.5, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T14:50:14.746Z", + "endDate": "2026-02-05T14:59:59.999Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-05T14:55:14.558Z", + "endDate": "2026-02-05T14:55:19.558Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T15:00:00Z", + "endDate": "2026-02-05T15:10:14.947Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-05T15:00:21.63Z", + "endDate": "2026-02-05T15:00:26.630Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-05T15:05:20.123Z", + "endDate": "2026-02-05T15:05:25.123Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T15:10:14.948Z", + "endDate": "2026-02-05T15:20:15.756Z", + "value": 0.65, + "unit": "U/hour", + "scheduledBasalRate": 0.65, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T15:20:15.756Z", + "endDate": "2026-02-05T15:30:13.280Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-05T15:25:17.245Z", + "endDate": "2026-02-05T15:25:22.245Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T15:30:13.28Z", + "endDate": "2026-02-05T15:35:15.151Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-05T15:30:42.432Z", + "endDate": "2026-02-05T15:33:24.432Z", + "value": 5.4, + "unit": "U", + "isMutable": false + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T15:35:15.151Z", + "endDate": "2026-02-05T15:45:13.214Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-05T15:40:15.145Z", + "endDate": "2026-02-05T15:40:27.145Z", + "value": 0.4, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T15:45:13.215Z", + "endDate": "2026-02-05T16:05:18.415Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T16:05:18.415Z", + "endDate": "2026-02-05T16:05:18.424Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T16:05:18.424Z", + "endDate": "2026-02-05T16:10:22.889Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T16:10:22.89Z", + "endDate": "2026-02-05T16:30:13.332Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-05T16:10:23.594Z", + "endDate": "2026-02-05T16:10:28.594Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-05T16:15:13.939Z", + "endDate": "2026-02-05T16:15:18.939Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-05T16:20:17.603Z", + "endDate": "2026-02-05T16:20:22.603Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T16:30:13.333Z", + "endDate": "2026-02-05T16:50:15.272Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T16:50:15.272Z", + "endDate": "2026-02-05T16:50:15.275Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T16:50:15.275Z", + "endDate": "2026-02-05T17:05:14.868Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T17:05:14.868Z", + "endDate": "2026-02-05T17:05:14.871Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T17:05:14.872Z", + "endDate": "2026-02-05T17:10:15.818Z", + "value": 0.35, + "unit": "U/hour", + "scheduledBasalRate": 0.35, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T17:10:15.818Z", + "endDate": "2026-02-05T17:10:15.819Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T17:10:15.82Z", + "endDate": "2026-02-05T17:20:24.346Z", + "value": 0.1, + "unit": "U/hour", + "scheduledBasalRate": 0.1, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T17:20:24.347Z", + "endDate": "2026-02-05T17:30:13.660Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T17:30:13.66Z", + "endDate": "2026-02-05T17:35:15.976Z", + "value": 0.2, + "unit": "U/hour", + "scheduledBasalRate": 0.2, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T17:35:15.977Z", + "endDate": "2026-02-05T17:35:15.982Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T17:35:15.983Z", + "endDate": "2026-02-05T17:45:18.471Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T17:45:18.471Z", + "endDate": "2026-02-05T18:30:16.907Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-05T17:45:19.236Z", + "endDate": "2026-02-05T17:45:24.236Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-05T17:50:16.985Z", + "endDate": "2026-02-05T17:50:21.985Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-05T17:55:15.381Z", + "endDate": "2026-02-05T17:55:21.381Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-05T18:00:16.932Z", + "endDate": "2026-02-05T18:00:22.932Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-05T18:05:15.133Z", + "endDate": "2026-02-05T18:05:24.133Z", + "value": 0.3, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-05T18:10:17.263Z", + "endDate": "2026-02-05T18:10:29.263Z", + "value": 0.4, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-05T18:15:26.414Z", + "endDate": "2026-02-05T18:15:36.914Z", + "value": 0.35, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-05T18:20:14.115Z", + "endDate": "2026-02-05T18:20:20.115Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T18:30:16.908Z", + "endDate": "2026-02-05T18:40:18.150Z", + "value": 0.5, + "unit": "U/hour", + "scheduledBasalRate": 0.5, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T18:40:18.151Z", + "endDate": "2026-02-05T18:40:18.153Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T18:40:18.153Z", + "endDate": "2026-02-05T18:50:14.242Z", + "value": 0.35, + "unit": "U/hour", + "scheduledBasalRate": 0.35, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T18:50:14.243Z", + "endDate": "2026-02-05T18:50:14.245Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T18:50:14.246Z", + "endDate": "2026-02-05T19:00:14.692Z", + "value": 0.25, + "unit": "U/hour", + "scheduledBasalRate": 0.25, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T19:00:14.692Z", + "endDate": "2026-02-05T19:00:14.695Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T19:00:14.695Z", + "endDate": "2026-02-05T19:05:14.096Z", + "value": 0.75, + "unit": "U/hour", + "scheduledBasalRate": 0.75, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T19:05:14.097Z", + "endDate": "2026-02-05T19:15:14.988Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-05T19:10:15.872Z", + "endDate": "2026-02-05T19:10:20.872Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T19:15:14.988Z", + "endDate": "2026-02-05T19:20:15.396Z", + "value": 0.75, + "unit": "U/hour", + "scheduledBasalRate": 0.75, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T19:20:15.397Z", + "endDate": "2026-02-05T20:05:16.562Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-05T19:25:17.426Z", + "endDate": "2026-02-05T19:25:26.426Z", + "value": 0.3, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-05T19:30:15.87Z", + "endDate": "2026-02-05T19:30:20.870Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-05T19:35:24.304Z", + "endDate": "2026-02-05T19:35:29.304Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-05T19:40:15.053Z", + "endDate": "2026-02-05T19:40:21.053Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-05T19:55:16.152Z", + "endDate": "2026-02-05T19:55:21.152Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-05T20:00:26.432Z", + "endDate": "2026-02-05T20:00:31.432Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T20:05:16.562Z", + "endDate": "2026-02-05T20:10:15.238Z", + "value": 0.65, + "unit": "U/hour", + "scheduledBasalRate": 0.65, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T20:10:15.239Z", + "endDate": "2026-02-05T20:20:15.267Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T20:20:15.268Z", + "endDate": "2026-02-05T20:25:14.210Z", + "value": 0.5, + "unit": "U/hour", + "scheduledBasalRate": 0.5, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T20:25:14.213Z", + "endDate": "2026-02-05T20:30:17.020Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T20:25:14.21Z", + "endDate": "2026-02-05T20:25:14.213Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T20:30:17.021Z", + "endDate": "2026-02-05T20:30:17.023Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T20:30:17.024Z", + "endDate": "2026-02-05T20:35:16.754Z", + "value": 0.45, + "unit": "U/hour", + "scheduledBasalRate": 0.45, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T20:35:16.754Z", + "endDate": "2026-02-05T21:05:16.540Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-05T20:45:15.98Z", + "endDate": "2026-02-05T20:45:20.980Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-05T20:49:28.594Z", + "endDate": "2026-02-05T20:52:18.094Z", + "value": 5.65, + "unit": "U", + "isMutable": false + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T21:05:16.54Z", + "endDate": "2026-02-05T21:10:16.622Z", + "value": 0.2, + "unit": "U/hour", + "scheduledBasalRate": 0.2, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T21:10:16.622Z", + "endDate": "2026-02-05T21:10:16.626Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T21:10:16.627Z", + "endDate": "2026-02-05T21:15:20.634Z", + "value": 0.15, + "unit": "U/hour", + "scheduledBasalRate": 0.15, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T21:15:20.634Z", + "endDate": "2026-02-05T21:15:20.637Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T21:15:20.637Z", + "endDate": "2026-02-05T21:20:18.088Z", + "value": 0.55, + "unit": "U/hour", + "scheduledBasalRate": 0.55, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T21:20:18.089Z", + "endDate": "2026-02-05T21:20:18.091Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T21:20:18.091Z", + "endDate": "2026-02-05T21:25:14.642Z", + "value": 0.05, + "unit": "U/hour", + "scheduledBasalRate": 0.05, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T21:25:14.643Z", + "endDate": "2026-02-05T21:36:17.020Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-05T21:30:15.035Z", + "endDate": "2026-02-05T21:30:20.035Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T21:36:17.02Z", + "endDate": "2026-02-05T21:40:15.418Z", + "value": 0.5, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T21:40:15.418Z", + "endDate": "2026-02-05T21:50:16.432Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T21:50:16.433Z", + "endDate": "2026-02-05T21:50:16.435Z", + "value": 0.5, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T21:50:16.435Z", + "endDate": "2026-02-05T22:00:15.323Z", + "value": 0.5, + "unit": "U/hour", + "scheduledBasalRate": 0.5, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T22:00:15.324Z", + "endDate": "2026-02-05T22:00:15.326Z", + "value": 0.45, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T22:00:15.327Z", + "endDate": "2026-02-05T22:05:14.491Z", + "value": 0.45, + "unit": "U/hour", + "scheduledBasalRate": 0.45, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T22:05:14.491Z", + "endDate": "2026-02-05T22:05:14.493Z", + "value": 0.45, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T22:05:14.493Z", + "endDate": "2026-02-05T22:10:15.543Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T22:10:15.544Z", + "endDate": "2026-02-05T22:28:58.758Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-05T22:21:09.111Z", + "endDate": "2026-02-05T22:21:14.111Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T22:28:58.759Z", + "endDate": "2026-02-05T22:35:15.908Z", + "value": 0.45, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T22:35:15.908Z", + "endDate": "2026-02-05T22:40:15.367Z", + "value": 0.45, + "unit": "U/hour", + "scheduledBasalRate": 0.45, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T22:40:15.368Z", + "endDate": "2026-02-05T22:40:15.371Z", + "value": 0.45, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T22:40:15.372Z", + "endDate": "2026-02-05T23:00:16.571Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T23:00:16.571Z", + "endDate": "2026-02-05T23:00:16.577Z", + "value": 0.45, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T23:00:16.577Z", + "endDate": "2026-02-05T23:15:14.814Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T23:15:14.815Z", + "endDate": "2026-02-05T23:42:04.908Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T23:42:04.908Z", + "endDate": "2026-02-05T23:45:23.274Z", + "value": 0.45, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T23:45:23.274Z", + "endDate": "2026-02-05T23:50:37.173Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-05T23:50:37.174Z", + "endDate": "2026-02-06T00:30:16.549Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T00:30:16.549Z", + "endDate": "2026-02-06T00:35:16.529Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T00:35:16.529Z", + "endDate": "2026-02-06T00:45:15.140Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T00:45:15.14Z", + "endDate": "2026-02-06T01:05:21.709Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-06T00:56:38.813Z", + "endDate": "2026-02-06T00:57:19.313Z", + "value": 1.35, + "unit": "U", + "isMutable": false + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T01:05:21.71Z", + "endDate": "2026-02-06T01:11:36.045Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T01:11:36.045Z", + "endDate": "2026-02-06T01:14:44.745Z", + "value": 0.55, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T01:14:44.745Z", + "endDate": "2026-02-06T01:45:17.701Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-06T01:30:19.504Z", + "endDate": "2026-02-06T01:30:24.504Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-06T01:35:15.746Z", + "endDate": "2026-02-06T01:35:20.746Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T01:45:17.702Z", + "endDate": "2026-02-06T01:50:15.117Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T01:50:15.117Z", + "endDate": "2026-02-06T02:25:14.980Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-06T01:50:16.346Z", + "endDate": "2026-02-06T01:50:21.346Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-06T01:55:15.917Z", + "endDate": "2026-02-06T01:55:20.917Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-06T02:00:16.596Z", + "endDate": "2026-02-06T02:00:21.596Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T02:25:14.981Z", + "endDate": "2026-02-06T02:25:18.422Z", + "value": 0.55, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T02:25:18.423Z", + "endDate": "2026-02-06T02:30:20.234Z", + "value": 0.15, + "unit": "U/hour", + "scheduledBasalRate": 0.15, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-06T02:28:43.361Z", + "endDate": "2026-02-06T02:30:16.361Z", + "value": 3.1, + "unit": "U", + "isMutable": false + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T02:30:20.234Z", + "endDate": "2026-02-06T03:10:20.526Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-06T02:40:20.634Z", + "endDate": "2026-02-06T02:40:26.634Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T03:10:20.527Z", + "endDate": "2026-02-06T03:15:23.343Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T03:15:23.343Z", + "endDate": "2026-02-06T04:35:17.027Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-06T03:30:20.592Z", + "endDate": "2026-02-06T03:30:25.592Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-06T03:45:19.223Z", + "endDate": "2026-02-06T03:45:24.223Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-06T03:50:18.76Z", + "endDate": "2026-02-06T03:50:23.760Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-06T04:20:17.105Z", + "endDate": "2026-02-06T04:20:22.105Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-06T04:25:19.117Z", + "endDate": "2026-02-06T04:25:24.117Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-06T04:30:19.794Z", + "endDate": "2026-02-06T04:30:24.794Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T04:35:17.028Z", + "endDate": "2026-02-06T04:40:15.530Z", + "value": 0.85, + "unit": "U/hour", + "scheduledBasalRate": 0.85, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T04:40:15.531Z", + "endDate": "2026-02-06T04:50:15.379Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-06T04:40:16.295Z", + "endDate": "2026-02-06T04:40:21.295Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-06T04:45:15.657Z", + "endDate": "2026-02-06T04:45:24.657Z", + "value": 0.3, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T04:50:15.38Z", + "endDate": "2026-02-06T04:55:15.184Z", + "value": 0.85, + "unit": "U/hour", + "scheduledBasalRate": 0.85, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T04:55:15.184Z", + "endDate": "2026-02-06T04:55:15.188Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T04:55:15.188Z", + "endDate": "2026-02-06T05:00:19.671Z", + "value": 0.5, + "unit": "U/hour", + "scheduledBasalRate": 0.5, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T05:00:19.672Z", + "endDate": "2026-02-06T05:30:00.000Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-06T05:00:20.573Z", + "endDate": "2026-02-06T05:00:26.573Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-06T05:05:18.3Z", + "endDate": "2026-02-06T05:05:30.300Z", + "value": 0.4, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-06T05:10:16.445Z", + "endDate": "2026-02-06T05:10:28.445Z", + "value": 0.4, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-06T05:15:16.301Z", + "endDate": "2026-02-06T05:15:26.801Z", + "value": 0.35, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-06T05:20:16.29Z", + "endDate": "2026-02-06T05:20:22.290Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-06T05:25:15.303Z", + "endDate": "2026-02-06T05:25:20.303Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T05:30:00Z", + "endDate": "2026-02-06T05:35:16.306Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T05:35:16.306Z", + "endDate": "2026-02-06T05:55:19.289Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T05:55:19.29Z", + "endDate": "2026-02-06T05:55:19.345Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T05:55:19.346Z", + "endDate": "2026-02-06T06:00:16.671Z", + "value": 0.05, + "unit": "U/hour", + "scheduledBasalRate": 0.05, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T06:00:16.671Z", + "endDate": "2026-02-06T06:05:18.058Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T06:05:18.059Z", + "endDate": "2026-02-06T06:10:16.777Z", + "value": 0.35, + "unit": "U/hour", + "scheduledBasalRate": 0.35, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T06:10:16.777Z", + "endDate": "2026-02-06T06:40:16.959Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-06T06:10:17.647Z", + "endDate": "2026-02-06T06:10:22.647Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-06T06:15:16.886Z", + "endDate": "2026-02-06T06:15:22.886Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-06T06:20:18.086Z", + "endDate": "2026-02-06T06:20:23.086Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-06T06:25:16.443Z", + "endDate": "2026-02-06T06:25:21.443Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-06T06:30:16.643Z", + "endDate": "2026-02-06T06:30:21.643Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-06T06:35:18.975Z", + "endDate": "2026-02-06T06:35:23.975Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T06:40:16.96Z", + "endDate": "2026-02-06T06:45:16.843Z", + "value": 0.35, + "unit": "U/hour", + "scheduledBasalRate": 0.35, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T06:45:16.843Z", + "endDate": "2026-02-06T07:05:15.111Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T07:05:15.111Z", + "endDate": "2026-02-06T07:10:15.452Z", + "value": 0.45, + "unit": "U/hour", + "scheduledBasalRate": 0.45, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T07:10:15.453Z", + "endDate": "2026-02-06T07:40:17.177Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-06T07:25:15.583Z", + "endDate": "2026-02-06T07:25:20.583Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-06T07:30:15.842Z", + "endDate": "2026-02-06T07:30:23.342Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-06T07:35:18.131Z", + "endDate": "2026-02-06T07:35:23.131Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T07:40:17.177Z", + "endDate": "2026-02-06T07:45:15.453Z", + "value": 0.6, + "unit": "U/hour", + "scheduledBasalRate": 0.6, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T07:45:15.454Z", + "endDate": "2026-02-06T07:59:59.999Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T08:00:00Z", + "endDate": "2026-02-06T08:05:15.000Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T08:05:15Z", + "endDate": "2026-02-06T08:10:16.004Z", + "value": 0.3, + "unit": "U/hour", + "scheduledBasalRate": 0.3, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T08:10:16.005Z", + "endDate": "2026-02-06T08:20:15.218Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T08:20:15.219Z", + "endDate": "2026-02-06T08:25:16.260Z", + "value": 0.55, + "unit": "U/hour", + "scheduledBasalRate": 0.55, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T08:25:16.26Z", + "endDate": "2026-02-06T08:25:16.309Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T08:25:16.309Z", + "endDate": "2026-02-06T08:30:16.623Z", + "value": 0.25, + "unit": "U/hour", + "scheduledBasalRate": 0.25, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T08:30:16.624Z", + "endDate": "2026-02-06T08:40:17.303Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-06T08:35:15.56Z", + "endDate": "2026-02-06T08:35:20.560Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T08:40:17.304Z", + "endDate": "2026-02-06T08:45:17.608Z", + "value": 0.05, + "unit": "U/hour", + "scheduledBasalRate": 0.05, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T08:45:17.608Z", + "endDate": "2026-02-06T08:45:17.611Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T08:45:17.612Z", + "endDate": "2026-02-06T09:00:17.049Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T09:00:17.05Z", + "endDate": "2026-02-06T09:45:15.937Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-06T09:10:15.924Z", + "endDate": "2026-02-06T09:10:20.924Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-06T09:15:16.455Z", + "endDate": "2026-02-06T09:15:21.455Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-06T09:20:17.888Z", + "endDate": "2026-02-06T09:20:22.888Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-06T09:25:16.782Z", + "endDate": "2026-02-06T09:25:24.282Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-06T09:30:17.912Z", + "endDate": "2026-02-06T09:30:22.912Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T09:45:15.938Z", + "endDate": "2026-02-06T09:50:17.269Z", + "value": 0.35, + "unit": "U/hour", + "scheduledBasalRate": 0.35, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T09:50:17.269Z", + "endDate": "2026-02-06T09:50:17.273Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T09:50:17.274Z", + "endDate": "2026-02-06T09:55:18.249Z", + "value": 0.25, + "unit": "U/hour", + "scheduledBasalRate": 0.25, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T09:55:18.249Z", + "endDate": "2026-02-06T09:55:18.252Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T09:55:18.253Z", + "endDate": "2026-02-06T10:10:16.032Z", + "value": 0.2, + "unit": "U/hour", + "scheduledBasalRate": 0.2, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T10:10:16.032Z", + "endDate": "2026-02-06T10:10:16.035Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T10:10:16.036Z", + "endDate": "2026-02-06T10:15:17.852Z", + "value": 0.35, + "unit": "U/hour", + "scheduledBasalRate": 0.35, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T10:15:17.852Z", + "endDate": "2026-02-06T10:15:17.856Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T10:15:17.857Z", + "endDate": "2026-02-06T10:20:16.189Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T10:20:16.189Z", + "endDate": "2026-02-06T10:55:17.216Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-06T10:25:16.344Z", + "endDate": "2026-02-06T10:25:21.344Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-06T10:30:16.917Z", + "endDate": "2026-02-06T10:30:21.917Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-06T10:35:21.011Z", + "endDate": "2026-02-06T10:35:27.011Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-06T10:40:16.238Z", + "endDate": "2026-02-06T10:40:22.238Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-06T10:45:18.327Z", + "endDate": "2026-02-06T10:45:23.327Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-06T10:50:16.88Z", + "endDate": "2026-02-06T10:50:21.880Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T10:55:17.216Z", + "endDate": "2026-02-06T11:00:17.221Z", + "value": 0.4, + "unit": "U/hour", + "scheduledBasalRate": 0.4, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T11:00:17.222Z", + "endDate": "2026-02-06T11:00:17.231Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T11:00:17.231Z", + "endDate": "2026-02-06T11:15:16.026Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T11:15:16.027Z", + "endDate": "2026-02-06T11:15:16.031Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T11:15:16.031Z", + "endDate": "2026-02-06T11:20:16.617Z", + "value": 0.05, + "unit": "U/hour", + "scheduledBasalRate": 0.05, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T11:20:16.617Z", + "endDate": "2026-02-06T11:20:16.747Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T11:20:16.748Z", + "endDate": "2026-02-06T11:40:17.653Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T11:40:17.654Z", + "endDate": "2026-02-06T12:15:16.227Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-06T11:40:18.523Z", + "endDate": "2026-02-06T11:40:23.523Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-06T11:45:17.868Z", + "endDate": "2026-02-06T11:45:22.868Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-06T11:50:16.086Z", + "endDate": "2026-02-06T11:50:21.086Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-06T11:55:17.652Z", + "endDate": "2026-02-06T11:55:25.152Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-06T12:00:17.958Z", + "endDate": "2026-02-06T12:00:23.958Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-06T12:05:19.912Z", + "endDate": "2026-02-06T12:05:24.912Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-06T12:10:18.955Z", + "endDate": "2026-02-06T12:10:23.955Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T12:15:16.227Z", + "endDate": "2026-02-06T12:20:20.314Z", + "value": 0.2, + "unit": "U/hour", + "scheduledBasalRate": 0.2, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T12:20:20.314Z", + "endDate": "2026-02-06T12:20:20.318Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T12:20:20.319Z", + "endDate": "2026-02-06T12:35:19.143Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T12:35:19.143Z", + "endDate": "2026-02-06T12:35:19.146Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T12:35:19.146Z", + "endDate": "2026-02-06T12:40:17.346Z", + "value": 0.4, + "unit": "U/hour", + "scheduledBasalRate": 0.4, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T12:40:17.347Z", + "endDate": "2026-02-06T12:45:15.613Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T12:45:15.614Z", + "endDate": "2026-02-06T12:50:16.139Z", + "value": 0.25, + "unit": "U/hour", + "scheduledBasalRate": 0.25, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T12:50:16.139Z", + "endDate": "2026-02-06T12:50:16.142Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T12:50:16.143Z", + "endDate": "2026-02-06T12:55:18.125Z", + "value": 0.55, + "unit": "U/hour", + "scheduledBasalRate": 0.55, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T12:55:18.125Z", + "endDate": "2026-02-06T13:00:16.206Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T13:00:16.206Z", + "endDate": "2026-02-06T13:10:17.760Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T13:10:17.761Z", + "endDate": "2026-02-06T13:40:17.048Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-06T13:10:18.495Z", + "endDate": "2026-02-06T13:10:23.495Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-06T13:15:16.478Z", + "endDate": "2026-02-06T13:15:22.478Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-06T13:20:18.27Z", + "endDate": "2026-02-06T13:20:23.270Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-06T13:25:16.46Z", + "endDate": "2026-02-06T13:25:23.960Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-06T13:30:16.327Z", + "endDate": "2026-02-06T13:30:22.327Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-06T13:35:17.757Z", + "endDate": "2026-02-06T13:35:22.757Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T13:40:17.048Z", + "endDate": "2026-02-06T13:55:16.556Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T13:55:16.556Z", + "endDate": "2026-02-06T13:55:16.560Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T13:55:16.56Z", + "endDate": "2026-02-06T14:00:17.949Z", + "value": 0.3, + "unit": "U/hour", + "scheduledBasalRate": 0.3, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T14:00:17.951Z", + "endDate": "2026-02-06T14:20:19.626Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T14:00:17.95Z", + "endDate": "2026-02-06T14:00:17.951Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T14:20:19.627Z", + "endDate": "2026-02-06T14:30:19.260Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T14:30:19.261Z", + "endDate": "2026-02-06T14:40:17.536Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T14:40:17.537Z", + "endDate": "2026-02-06T14:45:18.051Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T14:45:18.052Z", + "endDate": "2026-02-06T14:55:17.815Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T14:55:17.815Z", + "endDate": "2026-02-06T14:59:59.999Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T15:00:00Z", + "endDate": "2026-02-06T15:05:36.081Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-06T15:00:16.525Z", + "endDate": "2026-02-06T15:00:21.525Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-06T15:05:18.402Z", + "endDate": "2026-02-06T15:05:23.402Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T15:05:36.082Z", + "endDate": "2026-02-06T15:06:24.802Z", + "value": 0.55, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T15:06:24.802Z", + "endDate": "2026-02-06T15:20:16.372Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-06T15:06:54.165Z", + "endDate": "2026-02-06T15:10:01.665Z", + "value": 6.25, + "unit": "U", + "isMutable": false + }, + { + "type": "bolus", + "startDate": "2026-02-06T15:15:19.011Z", + "endDate": "2026-02-06T15:15:37.011Z", + "value": 0.6, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T15:20:16.373Z", + "endDate": "2026-02-06T15:25:16.797Z", + "value": 0.65, + "unit": "U/hour", + "scheduledBasalRate": 0.65, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T15:25:16.797Z", + "endDate": "2026-02-06T15:25:16.801Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T15:25:16.802Z", + "endDate": "2026-02-06T15:30:16.861Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T15:30:16.862Z", + "endDate": "2026-02-06T15:30:16.865Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T15:30:16.865Z", + "endDate": "2026-02-06T15:35:19.041Z", + "value": 0.2, + "unit": "U/hour", + "scheduledBasalRate": 0.2, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T15:35:19.042Z", + "endDate": "2026-02-06T15:40:16.504Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T15:40:16.504Z", + "endDate": "2026-02-06T15:45:16.877Z", + "value": 0.55, + "unit": "U/hour", + "scheduledBasalRate": 0.55, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T15:45:16.877Z", + "endDate": "2026-02-06T15:45:16.882Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T15:45:16.883Z", + "endDate": "2026-02-06T15:50:18.935Z", + "value": 0.1, + "unit": "U/hour", + "scheduledBasalRate": 0.1, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T15:50:18.935Z", + "endDate": "2026-02-06T15:50:18.938Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T15:50:18.939Z", + "endDate": "2026-02-06T15:55:18.311Z", + "value": 0.25, + "unit": "U/hour", + "scheduledBasalRate": 0.25, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T15:55:18.311Z", + "endDate": "2026-02-06T15:55:18.315Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T15:55:18.315Z", + "endDate": "2026-02-06T16:00:19.995Z", + "value": 0.65, + "unit": "U/hour", + "scheduledBasalRate": 0.65, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T16:00:19.996Z", + "endDate": "2026-02-06T16:00:19.999Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T16:00:20Z", + "endDate": "2026-02-06T16:05:17.510Z", + "value": 0.25, + "unit": "U/hour", + "scheduledBasalRate": 0.25, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T16:05:17.513Z", + "endDate": "2026-02-06T16:20:19.295Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T16:05:17.51Z", + "endDate": "2026-02-06T16:05:17.512Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T16:20:19.296Z", + "endDate": "2026-02-06T16:20:19.306Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T16:20:19.307Z", + "endDate": "2026-02-06T16:25:17.798Z", + "value": 0.05, + "unit": "U/hour", + "scheduledBasalRate": 0.05, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T16:25:17.798Z", + "endDate": "2026-02-06T16:25:17.801Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T16:25:17.801Z", + "endDate": "2026-02-06T16:30:18.956Z", + "value": 0.15, + "unit": "U/hour", + "scheduledBasalRate": 0.15, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T16:30:18.957Z", + "endDate": "2026-02-06T16:30:18.960Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T16:30:18.96Z", + "endDate": "2026-02-06T16:35:16.744Z", + "value": 0.35, + "unit": "U/hour", + "scheduledBasalRate": 0.35, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T16:35:16.744Z", + "endDate": "2026-02-06T16:35:16.746Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T16:35:16.747Z", + "endDate": "2026-02-06T16:40:16.662Z", + "value": 0.3, + "unit": "U/hour", + "scheduledBasalRate": 0.3, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T16:40:16.662Z", + "endDate": "2026-02-06T16:55:16.326Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T16:55:16.326Z", + "endDate": "2026-02-06T17:00:16.983Z", + "value": 0.55, + "unit": "U/hour", + "scheduledBasalRate": 0.55, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T17:00:16.983Z", + "endDate": "2026-02-06T17:05:15.803Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T17:05:15.804Z", + "endDate": "2026-02-06T17:05:17.324Z", + "value": 0.4, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T17:05:17.324Z", + "endDate": "2026-02-06T17:10:20.484Z", + "value": 0.8, + "unit": "U/hour", + "scheduledBasalRate": 0.8, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T17:10:20.485Z", + "endDate": "2026-02-06T17:10:20.487Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T17:10:20.488Z", + "endDate": "2026-02-06T17:15:18.542Z", + "value": 0.5, + "unit": "U/hour", + "scheduledBasalRate": 0.5, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T17:15:18.543Z", + "endDate": "2026-02-06T17:25:17.618Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-06T17:15:19.289Z", + "endDate": "2026-02-06T17:15:24.289Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-06T17:20:18.231Z", + "endDate": "2026-02-06T17:20:24.231Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T17:25:17.618Z", + "endDate": "2026-02-06T17:45:17.815Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T17:45:17.815Z", + "endDate": "2026-02-06T17:45:17.817Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T17:45:17.818Z", + "endDate": "2026-02-06T18:00:19.701Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T18:00:19.701Z", + "endDate": "2026-02-06T18:55:19.021Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-06T18:00:20.454Z", + "endDate": "2026-02-06T18:00:25.454Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-06T18:05:19.512Z", + "endDate": "2026-02-06T18:05:24.512Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-06T18:10:17.476Z", + "endDate": "2026-02-06T18:10:22.476Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-06T18:20:17.198Z", + "endDate": "2026-02-06T18:20:22.198Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-06T18:25:19.408Z", + "endDate": "2026-02-06T18:25:24.408Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-06T18:30:18.667Z", + "endDate": "2026-02-06T18:30:23.667Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-06T18:35:18.778Z", + "endDate": "2026-02-06T18:35:23.778Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-06T18:40:18.454Z", + "endDate": "2026-02-06T18:40:23.454Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-06T18:45:18.881Z", + "endDate": "2026-02-06T18:45:23.881Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T18:55:19.021Z", + "endDate": "2026-02-06T19:05:17.271Z", + "value": 0.1, + "unit": "U/hour", + "scheduledBasalRate": 0.1, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T19:05:17.272Z", + "endDate": "2026-02-06T19:05:17.275Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T19:05:17.275Z", + "endDate": "2026-02-06T19:15:17.131Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T19:15:17.132Z", + "endDate": "2026-02-06T19:15:17.135Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T19:15:17.136Z", + "endDate": "2026-02-06T19:20:19.640Z", + "value": 0.2, + "unit": "U/hour", + "scheduledBasalRate": 0.2, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T19:20:19.645Z", + "endDate": "2026-02-06T19:30:18.282Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T19:20:19.64Z", + "endDate": "2026-02-06T19:20:19.644Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T19:30:18.283Z", + "endDate": "2026-02-06T19:35:16.643Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T19:35:16.643Z", + "endDate": "2026-02-06T19:40:17.650Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T19:40:17.651Z", + "endDate": "2026-02-06T20:30:32.368Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-06T19:55:17.997Z", + "endDate": "2026-02-06T19:55:22.997Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-06T20:20:19.823Z", + "endDate": "2026-02-06T20:20:24.823Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-06T20:26:26.376Z", + "endDate": "2026-02-06T20:27:30.876Z", + "value": 2.15, + "unit": "U", + "isMutable": false + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T20:30:32.368Z", + "endDate": "2026-02-06T20:30:48.144Z", + "value": 0.5, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T20:30:48.144Z", + "endDate": "2026-02-06T20:45:18.718Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-06T20:31:12.806Z", + "endDate": "2026-02-06T20:31:18.806Z", + "value": 0.2, + "unit": "U", + "isMutable": false + }, + { + "type": "bolus", + "startDate": "2026-02-06T20:35:17.306Z", + "endDate": "2026-02-06T20:35:22.306Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T20:45:18.718Z", + "endDate": "2026-02-06T20:50:18.205Z", + "value": 0.1, + "unit": "U/hour", + "scheduledBasalRate": 0.1, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T20:50:18.206Z", + "endDate": "2026-02-06T20:55:19.236Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T20:55:19.237Z", + "endDate": "2026-02-06T21:05:29.336Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T21:05:29.336Z", + "endDate": "2026-02-06T21:10:16.615Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T21:10:16.616Z", + "endDate": "2026-02-06T21:15:16.958Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T21:15:16.959Z", + "endDate": "2026-02-06T21:21:46.654Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T21:21:46.654Z", + "endDate": "2026-02-06T21:25:19.317Z", + "value": 0.5, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T21:25:19.318Z", + "endDate": "2026-02-06T21:45:17.997Z", + "value": 0.5, + "unit": "U/hour", + "scheduledBasalRate": 0.5, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T21:45:17.997Z", + "endDate": "2026-02-06T21:45:18.006Z", + "value": 0.5, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T21:45:18.007Z", + "endDate": "2026-02-06T21:55:20.783Z", + "value": 0.5, + "unit": "U/hour", + "scheduledBasalRate": 0.5, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T21:55:20.783Z", + "endDate": "2026-02-06T21:59:59.999Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-06T21:55:21.564Z", + "endDate": "2026-02-06T21:55:26.564Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-06T21:59:50.74Z", + "endDate": "2026-02-06T21:59:55.740Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T22:00:00Z", + "endDate": "2026-02-06T22:18:23.706Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-06T22:00:17.996Z", + "endDate": "2026-02-06T22:00:22.996Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-06T22:15:17.842Z", + "endDate": "2026-02-06T22:15:22.842Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T22:18:23.707Z", + "endDate": "2026-02-06T22:20:17.326Z", + "value": 0.45, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T22:20:17.326Z", + "endDate": "2026-02-06T22:40:21.881Z", + "value": 0.45, + "unit": "U/hour", + "scheduledBasalRate": 0.45, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T22:40:21.882Z", + "endDate": "2026-02-06T22:40:21.885Z", + "value": 0.45, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T22:40:21.886Z", + "endDate": "2026-02-06T23:00:18.184Z", + "value": 0.45, + "unit": "U/hour", + "scheduledBasalRate": 0.45, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-06T22:55:19.115Z", + "endDate": "2026-02-06T22:55:24.115Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T23:00:18.185Z", + "endDate": "2026-02-06T23:00:18.186Z", + "value": 0.45, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T23:00:18.186Z", + "endDate": "2026-02-06T23:20:21.724Z", + "value": 0.45, + "unit": "U/hour", + "scheduledBasalRate": 0.45, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-06T23:15:18.124Z", + "endDate": "2026-02-06T23:15:23.124Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T23:20:21.725Z", + "endDate": "2026-02-06T23:20:21.728Z", + "value": 0.45, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T23:20:21.728Z", + "endDate": "2026-02-06T23:40:22.237Z", + "value": 0.45, + "unit": "U/hour", + "scheduledBasalRate": 0.45, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-06T23:35:22.408Z", + "endDate": "2026-02-06T23:35:29.908Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T23:40:22.238Z", + "endDate": "2026-02-06T23:40:22.241Z", + "value": 0.45, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-06T23:40:22.241Z", + "endDate": "2026-02-07T00:00:20.087Z", + "value": 0.45, + "unit": "U/hour", + "scheduledBasalRate": 0.45, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-06T23:40:23.393Z", + "endDate": "2026-02-06T23:40:28.393Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-06T23:58:17.4Z", + "endDate": "2026-02-06T23:59:54.900Z", + "value": 3.25, + "unit": "U", + "isMutable": false + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T00:00:20.087Z", + "endDate": "2026-02-07T00:10:18.544Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-07T00:05:18.294Z", + "endDate": "2026-02-07T00:05:33.294Z", + "value": 0.5, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T00:10:18.545Z", + "endDate": "2026-02-07T00:15:17.349Z", + "value": 0.2, + "unit": "U/hour", + "scheduledBasalRate": 0.2, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T00:15:17.352Z", + "endDate": "2026-02-07T00:20:19.774Z", + "value": 0.25, + "unit": "U/hour", + "scheduledBasalRate": 0.25, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T00:15:17.35Z", + "endDate": "2026-02-07T00:15:17.351Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T00:20:19.774Z", + "endDate": "2026-02-07T00:35:17.114Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-07T00:25:20.127Z", + "endDate": "2026-02-07T00:25:25.127Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-07T00:30:17.224Z", + "endDate": "2026-02-07T00:30:22.224Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T00:35:17.115Z", + "endDate": "2026-02-07T00:40:18.739Z", + "value": 0.35, + "unit": "U/hour", + "scheduledBasalRate": 0.35, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T00:40:18.739Z", + "endDate": "2026-02-07T00:40:18.741Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T00:40:18.741Z", + "endDate": "2026-02-07T00:45:24.177Z", + "value": 0.15, + "unit": "U/hour", + "scheduledBasalRate": 0.15, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T00:45:24.178Z", + "endDate": "2026-02-07T00:45:24.180Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T00:45:24.181Z", + "endDate": "2026-02-07T00:50:23.633Z", + "value": 0.45, + "unit": "U/hour", + "scheduledBasalRate": 0.45, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T00:50:23.633Z", + "endDate": "2026-02-07T00:50:23.635Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T00:50:23.635Z", + "endDate": "2026-02-07T00:55:19.104Z", + "value": 0.25, + "unit": "U/hour", + "scheduledBasalRate": 0.25, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T00:55:19.105Z", + "endDate": "2026-02-07T00:55:19.106Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T00:55:19.107Z", + "endDate": "2026-02-07T01:05:17.949Z", + "value": 0.2, + "unit": "U/hour", + "scheduledBasalRate": 0.2, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-07T00:58:10.319Z", + "endDate": "2026-02-07T01:00:55.319Z", + "value": 5.5, + "unit": "U", + "isMutable": false + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T01:05:17.95Z", + "endDate": "2026-02-07T01:24:09.202Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T01:24:09.202Z", + "endDate": "2026-02-07T01:25:19.052Z", + "value": 0.55, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T01:25:19.053Z", + "endDate": "2026-02-07T01:45:19.095Z", + "value": 0.55, + "unit": "U/hour", + "scheduledBasalRate": 0.55, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-07T01:30:19.976Z", + "endDate": "2026-02-07T01:30:36.476Z", + "value": 0.55, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-07T01:35:18.168Z", + "endDate": "2026-02-07T01:35:33.168Z", + "value": 0.5, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-07T01:40:18.295Z", + "endDate": "2026-02-07T01:40:28.795Z", + "value": 0.35, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T01:45:19.096Z", + "endDate": "2026-02-07T01:45:19.098Z", + "value": 0.55, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T01:45:19.099Z", + "endDate": "2026-02-07T01:50:19.911Z", + "value": 0.55, + "unit": "U/hour", + "scheduledBasalRate": 0.55, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T01:50:19.911Z", + "endDate": "2026-02-07T01:50:19.913Z", + "value": 0.55, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T01:50:19.913Z", + "endDate": "2026-02-07T01:55:24.776Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T01:55:24.777Z", + "endDate": "2026-02-07T01:55:24.780Z", + "value": 0.55, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T01:55:24.78Z", + "endDate": "2026-02-07T02:15:19.600Z", + "value": 0.55, + "unit": "U/hour", + "scheduledBasalRate": 0.55, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-07T01:55:26.021Z", + "endDate": "2026-02-07T01:55:35.021Z", + "value": 0.3, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-07T02:00:27.246Z", + "endDate": "2026-02-07T02:00:34.746Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T02:15:19.603Z", + "endDate": "2026-02-07T02:35:19.645Z", + "value": 0.55, + "unit": "U/hour", + "scheduledBasalRate": 0.55, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T02:15:19.6Z", + "endDate": "2026-02-07T02:15:19.603Z", + "value": 0.55, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-07T02:15:20.845Z", + "endDate": "2026-02-07T02:15:25.845Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-07T02:20:22.187Z", + "endDate": "2026-02-07T02:20:27.187Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T02:35:19.646Z", + "endDate": "2026-02-07T02:35:19.648Z", + "value": 0.55, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T02:35:19.649Z", + "endDate": "2026-02-07T02:55:27.388Z", + "value": 0.55, + "unit": "U/hour", + "scheduledBasalRate": 0.55, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T02:55:27.388Z", + "endDate": "2026-02-07T02:55:27.390Z", + "value": 0.55, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T02:55:27.39Z", + "endDate": "2026-02-07T03:15:19.395Z", + "value": 0.55, + "unit": "U/hour", + "scheduledBasalRate": 0.55, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-07T03:10:27.351Z", + "endDate": "2026-02-07T03:10:32.351Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T03:15:19.395Z", + "endDate": "2026-02-07T03:15:19.397Z", + "value": 0.55, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T03:15:19.398Z", + "endDate": "2026-02-07T03:25:18.591Z", + "value": 0.55, + "unit": "U/hour", + "scheduledBasalRate": 0.55, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T03:25:18.592Z", + "endDate": "2026-02-07T04:20:26.845Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-07T03:25:19.339Z", + "endDate": "2026-02-07T03:25:29.839Z", + "value": 0.35, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-07T03:40:19.171Z", + "endDate": "2026-02-07T03:40:26.671Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-07T03:45:18.247Z", + "endDate": "2026-02-07T03:45:23.247Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-07T03:50:18.988Z", + "endDate": "2026-02-07T03:50:24.988Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-07T03:55:18.709Z", + "endDate": "2026-02-07T03:55:23.709Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-07T04:01:14.186Z", + "endDate": "2026-02-07T04:02:23.186Z", + "value": 2.3, + "unit": "U", + "isMutable": false + }, + { + "type": "bolus", + "startDate": "2026-02-07T04:05:18.107Z", + "endDate": "2026-02-07T04:05:28.607Z", + "value": 0.35, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-07T04:10:20.109Z", + "endDate": "2026-02-07T04:10:41.109Z", + "value": 0.7, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T04:20:26.845Z", + "endDate": "2026-02-07T04:25:23.161Z", + "value": 0.65, + "unit": "U/hour", + "scheduledBasalRate": 0.65, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T04:25:23.162Z", + "endDate": "2026-02-07T04:25:23.164Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T04:25:23.164Z", + "endDate": "2026-02-07T04:45:22.369Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T04:45:22.369Z", + "endDate": "2026-02-07T04:45:22.370Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T04:45:22.371Z", + "endDate": "2026-02-07T05:00:20.308Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T05:00:20.309Z", + "endDate": "2026-02-07T05:00:20.312Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T05:00:20.312Z", + "endDate": "2026-02-07T05:05:18.169Z", + "value": 0.35, + "unit": "U/hour", + "scheduledBasalRate": 0.35, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T05:05:18.169Z", + "endDate": "2026-02-07T05:05:18.171Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T05:05:18.172Z", + "endDate": "2026-02-07T05:08:36.308Z", + "value": 0.3, + "unit": "U/hour", + "scheduledBasalRate": 0.3, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "suspend", + "startDate": "2026-02-07T05:08:36.309Z", + "endDate": "2026-02-07T05:10:58.695Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr" + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T05:10:58.695Z", + "endDate": "2026-02-07T05:30:00.000Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T05:30:00Z", + "endDate": "2026-02-07T06:55:20.436Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-07T05:33:21.994Z", + "endDate": "2026-02-07T05:33:26.994Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-07T05:40:33.414Z", + "endDate": "2026-02-07T05:40:46.914Z", + "value": 0.45, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-07T05:45:28.08Z", + "endDate": "2026-02-07T05:45:37.080Z", + "value": 0.3, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-07T05:50:33.8Z", + "endDate": "2026-02-07T05:50:45.800Z", + "value": 0.4, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-07T05:55:26.5Z", + "endDate": "2026-02-07T05:55:35.500Z", + "value": 0.3, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-07T06:00:27.121Z", + "endDate": "2026-02-07T06:00:32.121Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-07T06:05:25.084Z", + "endDate": "2026-02-07T06:05:32.584Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-07T06:10:24.549Z", + "endDate": "2026-02-07T06:10:29.549Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-07T06:20:19.49Z", + "endDate": "2026-02-07T06:20:24.490Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-07T06:25:18.925Z", + "endDate": "2026-02-07T06:25:24.925Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-07T06:30:20.836Z", + "endDate": "2026-02-07T06:30:28.336Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-07T06:35:21.532Z", + "endDate": "2026-02-07T06:35:26.532Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-07T06:45:18.675Z", + "endDate": "2026-02-07T06:45:23.675Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T06:55:20.437Z", + "endDate": "2026-02-07T07:00:20.549Z", + "value": 0.5, + "unit": "U/hour", + "scheduledBasalRate": 0.5, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T07:00:20.549Z", + "endDate": "2026-02-07T07:59:59.999Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-07T07:05:19.654Z", + "endDate": "2026-02-07T07:05:24.654Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-07T07:10:18.471Z", + "endDate": "2026-02-07T07:10:25.971Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-07T07:15:18.436Z", + "endDate": "2026-02-07T07:15:24.436Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-07T07:20:19.911Z", + "endDate": "2026-02-07T07:20:25.911Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-07T07:25:20.965Z", + "endDate": "2026-02-07T07:25:25.965Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-07T07:30:18.286Z", + "endDate": "2026-02-07T07:30:23.286Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-07T07:35:18.156Z", + "endDate": "2026-02-07T07:35:23.156Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-07T07:50:20.612Z", + "endDate": "2026-02-07T07:50:26.612Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T08:00:00Z", + "endDate": "2026-02-07T08:30:19.418Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-07T08:00:28.631Z", + "endDate": "2026-02-07T08:00:33.631Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-07T08:05:56.175Z", + "endDate": "2026-02-07T08:06:01.175Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-07T08:10:19.937Z", + "endDate": "2026-02-07T08:10:24.937Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-07T08:15:19.03Z", + "endDate": "2026-02-07T08:15:28.030Z", + "value": 0.3, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-07T08:20:20.431Z", + "endDate": "2026-02-07T08:20:32.431Z", + "value": 0.4, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-07T08:25:19.985Z", + "endDate": "2026-02-07T08:25:24.985Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T08:30:19.419Z", + "endDate": "2026-02-07T08:35:18.763Z", + "value": 0.5, + "unit": "U/hour", + "scheduledBasalRate": 0.5, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T08:35:18.763Z", + "endDate": "2026-02-07T08:55:18.995Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-07T08:40:18.961Z", + "endDate": "2026-02-07T08:40:23.961Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-07T08:45:19.087Z", + "endDate": "2026-02-07T08:45:26.587Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-07T08:50:20.774Z", + "endDate": "2026-02-07T08:50:25.774Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T08:55:18.996Z", + "endDate": "2026-02-07T09:00:19.284Z", + "value": 0.5, + "unit": "U/hour", + "scheduledBasalRate": 0.5, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T09:00:19.284Z", + "endDate": "2026-02-07T09:00:19.339Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T09:00:19.34Z", + "endDate": "2026-02-07T09:05:19.197Z", + "value": 0.05, + "unit": "U/hour", + "scheduledBasalRate": 0.05, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T09:05:19.198Z", + "endDate": "2026-02-07T09:50:20.394Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-07T09:10:20.282Z", + "endDate": "2026-02-07T09:10:32.282Z", + "value": 0.4, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-07T09:15:19.828Z", + "endDate": "2026-02-07T09:15:33.328Z", + "value": 0.45, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-07T09:20:18.842Z", + "endDate": "2026-02-07T09:20:23.842Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-07T09:25:19.131Z", + "endDate": "2026-02-07T09:25:24.131Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-07T09:30:21.28Z", + "endDate": "2026-02-07T09:30:26.280Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-07T09:40:25.821Z", + "endDate": "2026-02-07T09:40:34.821Z", + "value": 0.3, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-07T09:45:19.437Z", + "endDate": "2026-02-07T09:45:24.437Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T09:50:20.394Z", + "endDate": "2026-02-07T10:00:22.665Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T10:00:22.666Z", + "endDate": "2026-02-07T10:00:22.669Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T10:00:22.669Z", + "endDate": "2026-02-07T10:05:18.546Z", + "value": 0.05, + "unit": "U/hour", + "scheduledBasalRate": 0.05, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T10:05:18.547Z", + "endDate": "2026-02-07T10:05:18.549Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T10:05:18.55Z", + "endDate": "2026-02-07T10:10:20.310Z", + "value": 0.45, + "unit": "U/hour", + "scheduledBasalRate": 0.45, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T10:10:20.31Z", + "endDate": "2026-02-07T10:15:18.639Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T10:15:18.639Z", + "endDate": "2026-02-07T10:20:19.060Z", + "value": 0.45, + "unit": "U/hour", + "scheduledBasalRate": 0.45, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T10:20:19.06Z", + "endDate": "2026-02-07T11:05:20.385Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-07T10:30:18.723Z", + "endDate": "2026-02-07T10:30:23.723Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-07T10:40:18.648Z", + "endDate": "2026-02-07T10:40:23.648Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-07T10:50:19.459Z", + "endDate": "2026-02-07T10:50:24.459Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-07T10:55:21.187Z", + "endDate": "2026-02-07T10:55:26.187Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-07T11:00:23.604Z", + "endDate": "2026-02-07T11:00:28.604Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T11:05:20.385Z", + "endDate": "2026-02-07T11:10:19.921Z", + "value": 0.5, + "unit": "U/hour", + "scheduledBasalRate": 0.5, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T11:10:19.922Z", + "endDate": "2026-02-07T11:10:19.926Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T11:10:19.926Z", + "endDate": "2026-02-07T11:15:19.303Z", + "value": 0.55, + "unit": "U/hour", + "scheduledBasalRate": 0.55, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T11:15:19.304Z", + "endDate": "2026-02-07T11:30:20.095Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-07T11:20:18.695Z", + "endDate": "2026-02-07T11:20:24.695Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-07T11:25:20.081Z", + "endDate": "2026-02-07T11:25:25.081Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T11:30:20.095Z", + "endDate": "2026-02-07T11:35:18.981Z", + "value": 0.3, + "unit": "U/hour", + "scheduledBasalRate": 0.3, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T11:35:18.982Z", + "endDate": "2026-02-07T11:35:18.986Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T11:35:18.987Z", + "endDate": "2026-02-07T11:45:20.866Z", + "value": 0.45, + "unit": "U/hour", + "scheduledBasalRate": 0.45, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T11:45:20.866Z", + "endDate": "2026-02-07T11:45:20.868Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T11:45:20.868Z", + "endDate": "2026-02-07T11:50:20.914Z", + "value": 0.2, + "unit": "U/hour", + "scheduledBasalRate": 0.2, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T11:50:20.915Z", + "endDate": "2026-02-07T11:50:20.919Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T11:50:20.919Z", + "endDate": "2026-02-07T12:10:19.578Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T12:10:19.579Z", + "endDate": "2026-02-07T12:10:19.581Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T12:10:19.581Z", + "endDate": "2026-02-07T12:15:18.861Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T12:15:18.862Z", + "endDate": "2026-02-07T12:20:20.764Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T12:20:20.764Z", + "endDate": "2026-02-07T12:40:19.224Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T12:40:19.224Z", + "endDate": "2026-02-07T13:00:18.812Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T13:00:18.813Z", + "endDate": "2026-02-07T13:20:21.497Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T13:20:21.498Z", + "endDate": "2026-02-07T13:20:21.501Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T13:20:21.501Z", + "endDate": "2026-02-07T13:40:19.970Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T13:40:19.971Z", + "endDate": "2026-02-07T13:40:19.973Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T13:40:19.974Z", + "endDate": "2026-02-07T13:55:19.799Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T13:55:19.8Z", + "endDate": "2026-02-07T14:15:18.902Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T14:15:18.902Z", + "endDate": "2026-02-07T14:20:21.441Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T14:20:21.442Z", + "endDate": "2026-02-07T14:30:20.534Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T14:30:20.535Z", + "endDate": "2026-02-07T14:50:26.865Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T14:50:26.865Z", + "endDate": "2026-02-07T15:00:00.000Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T15:00:00Z", + "endDate": "2026-02-07T15:45:22.238Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-07T15:20:21.451Z", + "endDate": "2026-02-07T15:20:34.951Z", + "value": 0.45, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-07T15:25:21.495Z", + "endDate": "2026-02-07T15:25:26.495Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-07T15:30:22.112Z", + "endDate": "2026-02-07T15:30:27.112Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-07T15:35:19.773Z", + "endDate": "2026-02-07T15:35:24.773Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T15:45:22.239Z", + "endDate": "2026-02-07T15:50:19.826Z", + "value": 0.35, + "unit": "U/hour", + "scheduledBasalRate": 0.35, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T15:50:19.826Z", + "endDate": "2026-02-07T15:50:19.830Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T15:50:19.831Z", + "endDate": "2026-02-07T15:55:20.459Z", + "value": 0.8, + "unit": "U/hour", + "scheduledBasalRate": 0.8, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T15:55:20.464Z", + "endDate": "2026-02-07T16:00:34.201Z", + "value": 0.9, + "unit": "U/hour", + "scheduledBasalRate": 0.9, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T15:55:20.46Z", + "endDate": "2026-02-07T15:55:20.463Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T16:00:34.201Z", + "endDate": "2026-02-07T16:45:19.216Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T16:45:19.217Z", + "endDate": "2026-02-07T16:55:19.521Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T16:55:19.521Z", + "endDate": "2026-02-07T17:05:19.086Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-07T16:55:20.274Z", + "endDate": "2026-02-07T16:55:30.774Z", + "value": 0.35, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-07T17:00:20.772Z", + "endDate": "2026-02-07T17:00:28.272Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-07T17:04:54.458Z", + "endDate": "2026-02-07T17:05:00.458Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T17:05:19.087Z", + "endDate": "2026-02-07T17:20:21.862Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T17:20:21.862Z", + "endDate": "2026-02-07T17:35:24.598Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-07T17:20:22.806Z", + "endDate": "2026-02-07T17:20:27.806Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-07T17:21:57.907Z", + "endDate": "2026-02-07T17:24:12.907Z", + "value": 4.5, + "unit": "U", + "isMutable": false + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T17:35:24.599Z", + "endDate": "2026-02-07T17:45:27.194Z", + "value": 0.4, + "unit": "U/hour", + "scheduledBasalRate": 0.4, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T17:45:27.194Z", + "endDate": "2026-02-07T17:45:27.197Z", + "value": 0.4, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T17:45:27.198Z", + "endDate": "2026-02-07T17:55:19.472Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T17:55:19.473Z", + "endDate": "2026-02-07T18:00:19.770Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T18:00:19.771Z", + "endDate": "2026-02-07T18:05:19.491Z", + "value": 0.55, + "unit": "U/hour", + "scheduledBasalRate": 0.55, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T18:05:19.492Z", + "endDate": "2026-02-07T18:10:21.302Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T18:10:21.302Z", + "endDate": "2026-02-07T18:15:19.412Z", + "value": 0.45, + "unit": "U/hour", + "scheduledBasalRate": 0.45, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T18:15:19.412Z", + "endDate": "2026-02-07T18:43:41.851Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-07T18:15:19.953Z", + "endDate": "2026-02-07T18:15:24.953Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-07T18:20:20.33Z", + "endDate": "2026-02-07T18:20:29.330Z", + "value": 0.3, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-07T18:25:21.489Z", + "endDate": "2026-02-07T18:25:26.489Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-07T18:30:21.085Z", + "endDate": "2026-02-07T18:30:34.585Z", + "value": 0.45, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-07T18:35:19.424Z", + "endDate": "2026-02-07T18:35:32.924Z", + "value": 0.45, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-07T18:40:21.393Z", + "endDate": "2026-02-07T18:40:39.393Z", + "value": 0.6, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T18:43:41.851Z", + "endDate": "2026-02-07T18:44:45.141Z", + "value": 0.4, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T18:44:45.142Z", + "endDate": "2026-02-07T18:59:59.999Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-07T18:45:24.273Z", + "endDate": "2026-02-07T18:45:36.273Z", + "value": 0.4, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-07T18:50:24.608Z", + "endDate": "2026-02-07T18:50:32.108Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-07T18:55:19.919Z", + "endDate": "2026-02-07T18:56:01.919Z", + "value": 1.4, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T19:00:00Z", + "endDate": "2026-02-07T19:20:21.415Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-07T19:00:19.429Z", + "endDate": "2026-02-07T19:01:02.929Z", + "value": 1.45, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-07T19:05:23.244Z", + "endDate": "2026-02-07T19:05:41.244Z", + "value": 0.6, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-07T19:15:22.611Z", + "endDate": "2026-02-07T19:15:27.611Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T19:20:21.415Z", + "endDate": "2026-02-07T19:30:19.833Z", + "value": 0.65, + "unit": "U/hour", + "scheduledBasalRate": 0.65, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T19:30:19.834Z", + "endDate": "2026-02-07T19:30:19.836Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T19:30:19.836Z", + "endDate": "2026-02-07T19:40:22.260Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T19:40:22.261Z", + "endDate": "2026-02-07T20:10:21.396Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-07T19:45:22.552Z", + "endDate": "2026-02-07T19:45:27.552Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-07T19:50:20.776Z", + "endDate": "2026-02-07T19:50:28.276Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-07T19:55:19.598Z", + "endDate": "2026-02-07T19:55:27.098Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-07T20:00:21.777Z", + "endDate": "2026-02-07T20:00:29.277Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-07T20:05:20.645Z", + "endDate": "2026-02-07T20:05:25.645Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T20:10:21.396Z", + "endDate": "2026-02-07T20:15:19.727Z", + "value": 0.75, + "unit": "U/hour", + "scheduledBasalRate": 0.75, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T20:15:19.728Z", + "endDate": "2026-02-07T21:15:21.414Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-07T20:15:20.357Z", + "endDate": "2026-02-07T20:15:25.357Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-07T20:20:19.867Z", + "endDate": "2026-02-07T20:20:24.867Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-07T20:25:22.182Z", + "endDate": "2026-02-07T20:25:27.182Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-07T20:30:20.627Z", + "endDate": "2026-02-07T20:30:25.627Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-07T20:35:20.754Z", + "endDate": "2026-02-07T20:35:25.754Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-07T20:46:07.44Z", + "endDate": "2026-02-07T20:46:12.440Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-07T20:50:19.456Z", + "endDate": "2026-02-07T20:50:24.456Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-07T20:55:21.741Z", + "endDate": "2026-02-07T20:55:27.741Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-07T21:00:19.783Z", + "endDate": "2026-02-07T21:00:28.783Z", + "value": 0.3, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-07T21:05:20.416Z", + "endDate": "2026-02-07T21:05:27.916Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T21:15:21.414Z", + "endDate": "2026-02-07T21:20:19.983Z", + "value": 0.5, + "unit": "U/hour", + "scheduledBasalRate": 0.5, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T21:20:19.984Z", + "endDate": "2026-02-07T21:20:19.985Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T21:20:19.986Z", + "endDate": "2026-02-07T21:40:22.408Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-07T21:22:23.827Z", + "endDate": "2026-02-07T21:25:20.827Z", + "value": 5.9, + "unit": "U", + "isMutable": false + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T21:40:22.408Z", + "endDate": "2026-02-07T21:40:22.410Z", + "value": 0.5, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T21:40:22.411Z", + "endDate": "2026-02-07T21:55:21.780Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T21:55:21.782Z", + "endDate": "2026-02-07T22:00:21.638Z", + "value": 0.5, + "unit": "U/hour", + "scheduledBasalRate": 0.5, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T21:55:21.78Z", + "endDate": "2026-02-07T21:55:21.782Z", + "value": 0.5, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T22:00:21.639Z", + "endDate": "2026-02-07T22:00:21.643Z", + "value": 0.45, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T22:00:21.643Z", + "endDate": "2026-02-07T22:20:29.986Z", + "value": 0.45, + "unit": "U/hour", + "scheduledBasalRate": 0.45, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T22:20:29.986Z", + "endDate": "2026-02-07T22:20:29.987Z", + "value": 0.45, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T22:20:29.988Z", + "endDate": "2026-02-07T22:25:22.343Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T22:25:22.343Z", + "endDate": "2026-02-07T22:25:22.345Z", + "value": 0.45, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T22:25:22.346Z", + "endDate": "2026-02-07T22:45:21.254Z", + "value": 0.45, + "unit": "U/hour", + "scheduledBasalRate": 0.45, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T22:45:21.255Z", + "endDate": "2026-02-07T22:45:21.259Z", + "value": 0.45, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T22:45:21.259Z", + "endDate": "2026-02-07T23:05:21.144Z", + "value": 0.45, + "unit": "U/hour", + "scheduledBasalRate": 0.45, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T23:05:21.145Z", + "endDate": "2026-02-07T23:05:21.146Z", + "value": 0.45, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T23:05:21.146Z", + "endDate": "2026-02-07T23:20:20.770Z", + "value": 0.45, + "unit": "U/hour", + "scheduledBasalRate": 0.45, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T23:20:20.772Z", + "endDate": "2026-02-07T23:35:20.219Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T23:20:20.77Z", + "endDate": "2026-02-07T23:20:20.771Z", + "value": 0.45, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T23:35:20.219Z", + "endDate": "2026-02-07T23:50:23.252Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-07T23:40:25.145Z", + "endDate": "2026-02-07T23:40:30.145Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T23:50:23.253Z", + "endDate": "2026-02-07T23:55:23.978Z", + "value": 0.65, + "unit": "U/hour", + "scheduledBasalRate": 0.65, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-07T23:55:23.978Z", + "endDate": "2026-02-08T00:05:20.349Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-07T23:55:24.713Z", + "endDate": "2026-02-07T23:55:29.713Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-08T00:00:23.79Z", + "endDate": "2026-02-08T00:00:28.790Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T00:05:20.35Z", + "endDate": "2026-02-08T00:15:20.384Z", + "value": 0.65, + "unit": "U/hour", + "scheduledBasalRate": 0.65, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T00:15:20.384Z", + "endDate": "2026-02-08T00:15:20.385Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T00:15:20.386Z", + "endDate": "2026-02-08T00:20:24.156Z", + "value": 0.2, + "unit": "U/hour", + "scheduledBasalRate": 0.2, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T00:20:24.156Z", + "endDate": "2026-02-08T00:20:24.159Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T00:20:24.16Z", + "endDate": "2026-02-08T00:40:20.891Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T00:40:20.891Z", + "endDate": "2026-02-08T00:40:20.893Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T00:40:20.894Z", + "endDate": "2026-02-08T00:55:20.958Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-08T00:48:08.583Z", + "endDate": "2026-02-08T00:49:37.083Z", + "value": 2.95, + "unit": "U", + "isMutable": false + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T00:55:20.959Z", + "endDate": "2026-02-08T01:00:00.000Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T01:00:00Z", + "endDate": "2026-02-08T01:30:20.115Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-08T01:00:27.34Z", + "endDate": "2026-02-08T01:01:04.840Z", + "value": 1.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-08T01:05:22.426Z", + "endDate": "2026-02-08T01:05:47.926Z", + "value": 0.85, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-08T01:10:22.386Z", + "endDate": "2026-02-08T01:10:34.386Z", + "value": 0.4, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-08T01:15:20.637Z", + "endDate": "2026-02-08T01:15:25.637Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-08T01:20:24.784Z", + "endDate": "2026-02-08T01:20:29.784Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-08T01:25:23.108Z", + "endDate": "2026-02-08T01:25:28.108Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T01:30:20.116Z", + "endDate": "2026-02-08T01:35:22.021Z", + "value": 0.25, + "unit": "U/hour", + "scheduledBasalRate": 0.25, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T01:35:22.021Z", + "endDate": "2026-02-08T01:35:22.023Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T01:35:22.024Z", + "endDate": "2026-02-08T01:55:22.536Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T01:55:22.537Z", + "endDate": "2026-02-08T01:55:22.540Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T01:55:22.54Z", + "endDate": "2026-02-08T02:05:20.985Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T02:05:20.985Z", + "endDate": "2026-02-08T03:10:25.834Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-08T02:55:27.003Z", + "endDate": "2026-02-08T02:55:32.003Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-08T03:00:28.596Z", + "endDate": "2026-02-08T03:00:33.596Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T03:10:25.835Z", + "endDate": "2026-02-08T03:20:23.354Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-08T03:11:12.581Z", + "endDate": "2026-02-08T03:13:11.081Z", + "value": 3.95, + "unit": "U", + "isMutable": false + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T03:20:23.354Z", + "endDate": "2026-02-08T05:29:59.999Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-08T03:30:11.344Z", + "endDate": "2026-02-08T03:32:09.844Z", + "value": 3.95, + "unit": "U", + "isMutable": false + }, + { + "type": "bolus", + "startDate": "2026-02-08T04:00:20.735Z", + "endDate": "2026-02-08T04:00:50.735Z", + "value": 1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-08T04:05:20.441Z", + "endDate": "2026-02-08T04:05:44.441Z", + "value": 0.8, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T05:30:00Z", + "endDate": "2026-02-08T05:55:22.354Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T05:55:22.355Z", + "endDate": "2026-02-08T06:15:23.044Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T06:15:23.044Z", + "endDate": "2026-02-08T06:15:23.152Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T06:15:23.153Z", + "endDate": "2026-02-08T06:35:24.775Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T06:35:24.775Z", + "endDate": "2026-02-08T06:35:24.776Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T06:35:24.776Z", + "endDate": "2026-02-08T06:55:22.514Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T06:55:22.515Z", + "endDate": "2026-02-08T06:55:22.557Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T06:55:22.557Z", + "endDate": "2026-02-08T07:15:23.808Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T07:15:23.809Z", + "endDate": "2026-02-08T07:15:23.810Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T07:15:23.81Z", + "endDate": "2026-02-08T07:35:21.909Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T07:35:21.912Z", + "endDate": "2026-02-08T07:55:21.896Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T07:35:21.91Z", + "endDate": "2026-02-08T07:35:21.911Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T07:55:21.896Z", + "endDate": "2026-02-08T07:55:21.897Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T07:55:21.897Z", + "endDate": "2026-02-08T08:15:22.875Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T08:15:22.876Z", + "endDate": "2026-02-08T08:15:22.878Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T08:15:22.878Z", + "endDate": "2026-02-08T08:35:21.301Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T08:35:21.302Z", + "endDate": "2026-02-08T08:35:21.304Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T08:35:21.305Z", + "endDate": "2026-02-08T08:55:21.752Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T08:55:21.752Z", + "endDate": "2026-02-08T08:55:21.804Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T08:55:21.804Z", + "endDate": "2026-02-08T09:15:21.351Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T09:15:21.352Z", + "endDate": "2026-02-08T09:15:21.359Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T09:15:21.36Z", + "endDate": "2026-02-08T09:35:21.959Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T09:35:21.959Z", + "endDate": "2026-02-08T09:35:21.961Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T09:35:21.961Z", + "endDate": "2026-02-08T09:45:21.939Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T09:45:21.94Z", + "endDate": "2026-02-08T10:00:21.221Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T10:00:21.222Z", + "endDate": "2026-02-08T10:05:21.900Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T10:05:21.901Z", + "endDate": "2026-02-08T10:15:23.040Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T10:15:23.041Z", + "endDate": "2026-02-08T10:35:23.400Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T10:35:23.403Z", + "endDate": "2026-02-08T10:55:21.418Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T10:35:23.4Z", + "endDate": "2026-02-08T10:35:23.402Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T10:55:21.418Z", + "endDate": "2026-02-08T12:40:25.162Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T12:40:25.163Z", + "endDate": "2026-02-08T12:45:27.927Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T12:45:27.928Z", + "endDate": "2026-02-08T13:30:21.890Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-08T13:15:25.996Z", + "endDate": "2026-02-08T13:15:37.996Z", + "value": 0.4, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-08T13:20:23.766Z", + "endDate": "2026-02-08T13:20:31.266Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T13:30:21.89Z", + "endDate": "2026-02-08T13:50:21.930Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T13:50:21.931Z", + "endDate": "2026-02-08T13:50:21.935Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T13:50:21.936Z", + "endDate": "2026-02-08T14:05:23.592Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T14:05:23.593Z", + "endDate": "2026-02-08T14:15:22.232Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T14:15:22.232Z", + "endDate": "2026-02-08T14:35:23.744Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T14:35:23.745Z", + "endDate": "2026-02-08T15:00:00.000Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-08T14:40:23.343Z", + "endDate": "2026-02-08T14:40:30.843Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-08T14:45:24.188Z", + "endDate": "2026-02-08T14:45:30.188Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-08T14:50:23.279Z", + "endDate": "2026-02-08T14:50:30.779Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-08T14:55:22.666Z", + "endDate": "2026-02-08T14:55:27.666Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T15:00:00Z", + "endDate": "2026-02-08T15:00:22.435Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T15:00:22.436Z", + "endDate": "2026-02-08T15:05:22.014Z", + "value": 0.55, + "unit": "U/hour", + "scheduledBasalRate": 0.55, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T15:05:22.014Z", + "endDate": "2026-02-08T15:05:22.017Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T15:05:22.018Z", + "endDate": "2026-02-08T15:10:21.913Z", + "value": 0.5, + "unit": "U/hour", + "scheduledBasalRate": 0.5, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T15:10:21.913Z", + "endDate": "2026-02-08T15:10:21.915Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T15:10:21.916Z", + "endDate": "2026-02-08T15:15:21.856Z", + "value": 0.45, + "unit": "U/hour", + "scheduledBasalRate": 0.45, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T15:15:21.857Z", + "endDate": "2026-02-08T15:15:21.858Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T15:15:21.858Z", + "endDate": "2026-02-08T15:30:22.544Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T15:30:22.545Z", + "endDate": "2026-02-08T15:45:24.021Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-08T15:30:23.354Z", + "endDate": "2026-02-08T15:30:28.354Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-08T15:35:23.54Z", + "endDate": "2026-02-08T15:35:35.540Z", + "value": 0.4, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T15:45:24.021Z", + "endDate": "2026-02-08T15:50:25.633Z", + "value": 0.65, + "unit": "U/hour", + "scheduledBasalRate": 0.65, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T15:50:25.634Z", + "endDate": "2026-02-08T15:59:59.999Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-08T15:50:26.385Z", + "endDate": "2026-02-08T15:50:31.385Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T16:00:00Z", + "endDate": "2026-02-08T16:10:24.869Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T16:10:24.869Z", + "endDate": "2026-02-08T16:15:22.973Z", + "value": 0.6, + "unit": "U/hour", + "scheduledBasalRate": 0.6, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T16:15:22.974Z", + "endDate": "2026-02-08T17:25:22.187Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-08T16:35:27.82Z", + "endDate": "2026-02-08T16:35:32.820Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-08T17:15:23.629Z", + "endDate": "2026-02-08T17:15:28.629Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-08T17:20:23.916Z", + "endDate": "2026-02-08T17:20:28.916Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T17:25:22.187Z", + "endDate": "2026-02-08T17:30:23.852Z", + "value": 0.55, + "unit": "U/hour", + "scheduledBasalRate": 0.55, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T17:30:23.853Z", + "endDate": "2026-02-08T17:40:28.453Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-08T17:30:24.483Z", + "endDate": "2026-02-08T17:30:30.483Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-08T17:35:24.547Z", + "endDate": "2026-02-08T17:35:33.547Z", + "value": 0.3, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T17:40:28.454Z", + "endDate": "2026-02-08T17:50:25.392Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T17:50:25.392Z", + "endDate": "2026-02-08T17:55:24.110Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T17:55:24.111Z", + "endDate": "2026-02-08T18:00:26.091Z", + "value": 0.4, + "unit": "U/hour", + "scheduledBasalRate": 0.4, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T18:00:26.092Z", + "endDate": "2026-02-08T18:00:26.095Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T18:00:26.095Z", + "endDate": "2026-02-08T18:15:22.387Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T18:15:22.388Z", + "endDate": "2026-02-08T18:20:24.379Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T18:20:24.379Z", + "endDate": "2026-02-08T18:40:24.604Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T18:40:24.605Z", + "endDate": "2026-02-08T18:40:24.608Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T18:40:24.608Z", + "endDate": "2026-02-08T18:50:23.080Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T18:50:23.081Z", + "endDate": "2026-02-08T19:00:00.000Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T19:00:00Z", + "endDate": "2026-02-08T19:05:27.144Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-08T19:00:22.193Z", + "endDate": "2026-02-08T19:00:28.193Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T19:05:27.145Z", + "endDate": "2026-02-08T19:10:22.366Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T19:10:22.366Z", + "endDate": "2026-02-08T19:25:21.902Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-08T19:10:23.013Z", + "endDate": "2026-02-08T19:10:28.013Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-08T19:14:04.581Z", + "endDate": "2026-02-08T19:16:39.081Z", + "value": 5.15, + "unit": "U", + "isMutable": false + }, + { + "type": "bolus", + "startDate": "2026-02-08T19:20:24.657Z", + "endDate": "2026-02-08T19:20:35.157Z", + "value": 0.35, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T19:25:21.903Z", + "endDate": "2026-02-08T19:45:23.538Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T19:45:23.539Z", + "endDate": "2026-02-08T19:45:23.541Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T19:45:23.541Z", + "endDate": "2026-02-08T19:50:23.381Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T19:50:23.381Z", + "endDate": "2026-02-08T19:50:23.384Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T19:50:23.385Z", + "endDate": "2026-02-08T19:56:45.938Z", + "value": 0.1, + "unit": "U/hour", + "scheduledBasalRate": 0.1, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T19:56:45.938Z", + "endDate": "2026-02-08T19:56:45.942Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T19:56:45.943Z", + "endDate": "2026-02-08T20:10:25.011Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T20:10:25.012Z", + "endDate": "2026-02-08T20:25:23.124Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-08T20:10:25.626Z", + "endDate": "2026-02-08T20:10:34.626Z", + "value": 0.3, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T20:25:23.124Z", + "endDate": "2026-02-08T20:25:24.248Z", + "value": 0.5, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T20:25:24.249Z", + "endDate": "2026-02-08T20:30:24.938Z", + "value": 1, + "unit": "U/hour", + "scheduledBasalRate": 1, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T20:30:24.939Z", + "endDate": "2026-02-08T20:30:24.941Z", + "value": 0.5, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T20:30:24.941Z", + "endDate": "2026-02-08T20:35:24.387Z", + "value": 0.05, + "unit": "U/hour", + "scheduledBasalRate": 0.05, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T20:35:24.387Z", + "endDate": "2026-02-08T20:35:24.388Z", + "value": 0.5, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T20:35:24.389Z", + "endDate": "2026-02-08T20:40:25.428Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T20:40:25.429Z", + "endDate": "2026-02-08T20:40:25.430Z", + "value": 0.5, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T20:40:25.431Z", + "endDate": "2026-02-08T21:00:23.919Z", + "value": 0.5, + "unit": "U/hour", + "scheduledBasalRate": 0.5, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-08T20:45:24.384Z", + "endDate": "2026-02-08T20:45:29.384Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-08T20:50:28.364Z", + "endDate": "2026-02-08T20:50:33.364Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T21:00:23.922Z", + "endDate": "2026-02-08T21:05:24.495Z", + "value": 0.5, + "unit": "U/hour", + "scheduledBasalRate": 0.5, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T21:00:23.92Z", + "endDate": "2026-02-08T21:00:23.922Z", + "value": 0.5, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-08T21:00:25.12Z", + "endDate": "2026-02-08T21:00:30.120Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T21:05:24.496Z", + "endDate": "2026-02-08T21:50:22.935Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-08T21:05:25.111Z", + "endDate": "2026-02-08T21:05:38.611Z", + "value": 0.45, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-08T21:10:26.168Z", + "endDate": "2026-02-08T21:10:42.668Z", + "value": 0.55, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-08T21:15:22.786Z", + "endDate": "2026-02-08T21:15:39.286Z", + "value": 0.55, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-08T21:20:23.09Z", + "endDate": "2026-02-08T21:20:32.090Z", + "value": 0.3, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-08T21:25:23.972Z", + "endDate": "2026-02-08T21:25:31.472Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-08T21:30:24.982Z", + "endDate": "2026-02-08T21:30:32.482Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-08T21:35:24.521Z", + "endDate": "2026-02-08T21:35:29.521Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-08T21:40:22.769Z", + "endDate": "2026-02-08T21:40:27.769Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T21:50:22.936Z", + "endDate": "2026-02-08T21:50:24.025Z", + "value": 0.5, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T21:50:24.026Z", + "endDate": "2026-02-08T21:55:24.255Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T21:55:24.255Z", + "endDate": "2026-02-08T21:55:24.258Z", + "value": 0.5, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T21:55:24.259Z", + "endDate": "2026-02-08T22:00:25.864Z", + "value": 0.5, + "unit": "U/hour", + "scheduledBasalRate": 0.5, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-08T21:55:25.559Z", + "endDate": "2026-02-08T21:55:30.559Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T22:00:25.864Z", + "endDate": "2026-02-08T22:00:25.865Z", + "value": 0.45, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T22:00:25.866Z", + "endDate": "2026-02-08T22:05:24.098Z", + "value": 0.45, + "unit": "U/hour", + "scheduledBasalRate": 0.45, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T22:05:24.099Z", + "endDate": "2026-02-08T22:05:24.099Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T22:05:24.1Z", + "endDate": "2026-02-08T22:15:22.548Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T22:15:22.548Z", + "endDate": "2026-02-08T22:50:23.760Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-08T22:15:23.045Z", + "endDate": "2026-02-08T22:15:28.045Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-08T22:20:23.635Z", + "endDate": "2026-02-08T22:20:31.135Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-08T22:25:24.936Z", + "endDate": "2026-02-08T22:25:29.936Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-08T22:40:25.401Z", + "endDate": "2026-02-08T22:40:30.401Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-08T22:45:23.799Z", + "endDate": "2026-02-08T22:45:31.299Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T22:50:23.761Z", + "endDate": "2026-02-08T22:55:23.091Z", + "value": 0.4, + "unit": "U/hour", + "scheduledBasalRate": 0.4, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T22:55:23.092Z", + "endDate": "2026-02-08T22:55:23.095Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T22:55:23.096Z", + "endDate": "2026-02-08T23:00:24.912Z", + "value": 0.55, + "unit": "U/hour", + "scheduledBasalRate": 0.55, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T23:00:24.913Z", + "endDate": "2026-02-08T23:05:25.203Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T23:05:25.203Z", + "endDate": "2026-02-08T23:10:30.455Z", + "value": 0.25, + "unit": "U/hour", + "scheduledBasalRate": 0.25, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T23:10:30.455Z", + "endDate": "2026-02-08T23:30:23.346Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-08T23:10:31.055Z", + "endDate": "2026-02-08T23:10:36.055Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T23:30:23.346Z", + "endDate": "2026-02-08T23:30:27.911Z", + "value": 0.45, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T23:30:27.912Z", + "endDate": "2026-02-08T23:40:23.507Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T23:40:23.508Z", + "endDate": "2026-02-08T23:40:23.510Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T23:40:23.51Z", + "endDate": "2026-02-08T23:45:25.478Z", + "value": 0.35, + "unit": "U/hour", + "scheduledBasalRate": 0.35, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T23:45:25.479Z", + "endDate": "2026-02-08T23:45:25.480Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T23:45:25.48Z", + "endDate": "2026-02-08T23:50:22.782Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T23:50:22.783Z", + "endDate": "2026-02-08T23:50:22.786Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T23:50:22.786Z", + "endDate": "2026-02-08T23:55:23.217Z", + "value": 0.15, + "unit": "U/hour", + "scheduledBasalRate": 0.15, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T23:55:23.217Z", + "endDate": "2026-02-08T23:55:23.232Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-08T23:55:23.232Z", + "endDate": "2026-02-09T00:00:25.915Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T00:00:25.916Z", + "endDate": "2026-02-09T00:00:25.918Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T00:00:25.919Z", + "endDate": "2026-02-09T00:05:26.792Z", + "value": 0.25, + "unit": "U/hour", + "scheduledBasalRate": 0.25, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T00:05:26.792Z", + "endDate": "2026-02-09T01:00:00.000Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-09T00:15:23.532Z", + "endDate": "2026-02-09T00:15:28.532Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-09T00:25:26.589Z", + "endDate": "2026-02-09T00:25:31.589Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-09T00:30:33.391Z", + "endDate": "2026-02-09T00:30:38.391Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-09T00:35:26.185Z", + "endDate": "2026-02-09T00:35:33.685Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-09T00:40:09.567Z", + "endDate": "2026-02-09T00:41:42.567Z", + "value": 3.1, + "unit": "U", + "isMutable": false + }, + { + "type": "bolus", + "startDate": "2026-02-09T00:45:24.634Z", + "endDate": "2026-02-09T00:45:29.634Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T01:00:00Z", + "endDate": "2026-02-09T01:10:26.531Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-09T01:05:24.265Z", + "endDate": "2026-02-09T01:05:29.265Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T01:10:26.531Z", + "endDate": "2026-02-09T01:15:26.285Z", + "value": 0.9, + "unit": "U/hour", + "scheduledBasalRate": 0.9, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T01:15:26.286Z", + "endDate": "2026-02-09T01:15:26.288Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T01:15:26.288Z", + "endDate": "2026-02-09T01:20:22.824Z", + "value": 0.65, + "unit": "U/hour", + "scheduledBasalRate": 0.65, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T01:20:22.825Z", + "endDate": "2026-02-09T01:20:22.826Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T01:20:22.826Z", + "endDate": "2026-02-09T01:25:23.552Z", + "value": 0.4, + "unit": "U/hour", + "scheduledBasalRate": 0.4, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T01:25:23.553Z", + "endDate": "2026-02-09T01:25:23.555Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T01:25:23.555Z", + "endDate": "2026-02-09T01:30:22.958Z", + "value": 0.65, + "unit": "U/hour", + "scheduledBasalRate": 0.65, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T01:30:22.959Z", + "endDate": "2026-02-09T01:45:24.419Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-09T01:35:24.208Z", + "endDate": "2026-02-09T01:35:29.208Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T01:45:24.42Z", + "endDate": "2026-02-09T01:50:23.699Z", + "value": 0.8, + "unit": "U/hour", + "scheduledBasalRate": 0.8, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T01:50:23.701Z", + "endDate": "2026-02-09T01:55:23.223Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T01:50:23.7Z", + "endDate": "2026-02-09T01:50:23.701Z", + "value": 0.55, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T01:55:23.224Z", + "endDate": "2026-02-09T04:25:25.887Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-09T01:55:23.75Z", + "endDate": "2026-02-09T01:55:28.750Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-09T01:57:12.293Z", + "endDate": "2026-02-09T01:59:09.293Z", + "value": 3.9, + "unit": "U", + "isMutable": false + }, + { + "type": "bolus", + "startDate": "2026-02-09T02:00:23.694Z", + "endDate": "2026-02-09T02:00:40.194Z", + "value": 0.55, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-09T02:05:24.584Z", + "endDate": "2026-02-09T02:05:51.584Z", + "value": 0.9, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-09T02:15:23.132Z", + "endDate": "2026-02-09T02:15:41.132Z", + "value": 0.6, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-09T03:05:25.019Z", + "endDate": "2026-02-09T03:05:50.519Z", + "value": 0.85, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-09T03:10:23.677Z", + "endDate": "2026-02-09T03:10:50.677Z", + "value": 0.9, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-09T03:15:24.282Z", + "endDate": "2026-02-09T03:15:46.782Z", + "value": 0.75, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-09T03:40:23.23Z", + "endDate": "2026-02-09T03:40:32.230Z", + "value": 0.3, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-09T03:45:23.278Z", + "endDate": "2026-02-09T03:45:32.278Z", + "value": 0.3, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-09T03:50:28.439Z", + "endDate": "2026-02-09T03:50:33.439Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-09T04:05:23.323Z", + "endDate": "2026-02-09T04:05:28.323Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-09T04:10:25.093Z", + "endDate": "2026-02-09T04:10:32.593Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-09T04:15:25.791Z", + "endDate": "2026-02-09T04:15:30.791Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T04:25:25.888Z", + "endDate": "2026-02-09T04:30:24.036Z", + "value": 0.85, + "unit": "U/hour", + "scheduledBasalRate": 0.85, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T04:30:24.036Z", + "endDate": "2026-02-09T04:35:25.043Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-09T04:30:24.681Z", + "endDate": "2026-02-09T04:30:29.681Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T04:35:25.043Z", + "endDate": "2026-02-09T04:45:26.135Z", + "value": 0.5, + "unit": "U/hour", + "scheduledBasalRate": 0.5, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T04:45:26.136Z", + "endDate": "2026-02-09T04:45:26.145Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T04:45:26.145Z", + "endDate": "2026-02-09T04:50:23.486Z", + "value": 0.9, + "unit": "U/hour", + "scheduledBasalRate": 0.9, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T04:50:23.487Z", + "endDate": "2026-02-09T05:20:23.953Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-09T04:50:24.087Z", + "endDate": "2026-02-09T04:50:29.087Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-09T04:54:40.635Z", + "endDate": "2026-02-09T04:54:45.635Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-09T04:55:23.37Z", + "endDate": "2026-02-09T04:55:29.370Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-09T05:05:23.454Z", + "endDate": "2026-02-09T05:05:28.454Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-09T05:10:24.96Z", + "endDate": "2026-02-09T05:10:36.960Z", + "value": 0.4, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-09T05:14:53.102Z", + "endDate": "2026-02-09T05:14:59.102Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-09T05:15:28.457Z", + "endDate": "2026-02-09T05:15:35.957Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T05:20:23.953Z", + "endDate": "2026-02-09T05:25:25.309Z", + "value": 0.7, + "unit": "U/hour", + "scheduledBasalRate": 0.7, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T05:25:25.309Z", + "endDate": "2026-02-09T05:29:59.999Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-09T05:25:25.942Z", + "endDate": "2026-02-09T05:25:30.942Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T05:30:00Z", + "endDate": "2026-02-09T06:00:23.325Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-09T05:30:25.002Z", + "endDate": "2026-02-09T05:30:30.002Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-09T05:40:26.378Z", + "endDate": "2026-02-09T05:40:35.378Z", + "value": 0.3, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-09T05:45:25.95Z", + "endDate": "2026-02-09T05:45:36.450Z", + "value": 0.35, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-09T05:50:24.173Z", + "endDate": "2026-02-09T05:50:31.673Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-09T05:55:25.451Z", + "endDate": "2026-02-09T05:55:30.451Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T06:00:23.325Z", + "endDate": "2026-02-09T06:05:25.691Z", + "value": 0.6, + "unit": "U/hour", + "scheduledBasalRate": 0.6, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T06:05:25.691Z", + "endDate": "2026-02-09T06:05:25.695Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T06:05:25.696Z", + "endDate": "2026-02-09T06:15:29.601Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T06:15:29.601Z", + "endDate": "2026-02-09T06:15:29.605Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T06:15:29.605Z", + "endDate": "2026-02-09T06:25:24.548Z", + "value": 0.35, + "unit": "U/hour", + "scheduledBasalRate": 0.35, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T06:25:24.549Z", + "endDate": "2026-02-09T06:25:24.551Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T06:25:24.551Z", + "endDate": "2026-02-09T06:30:25.200Z", + "value": 0.2, + "unit": "U/hour", + "scheduledBasalRate": 0.2, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T06:30:25.201Z", + "endDate": "2026-02-09T06:30:25.206Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T06:30:25.207Z", + "endDate": "2026-02-09T06:35:24.500Z", + "value": 0.05, + "unit": "U/hour", + "scheduledBasalRate": 0.05, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T06:35:24.5Z", + "endDate": "2026-02-09T06:55:23.158Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-09T06:40:24.071Z", + "endDate": "2026-02-09T06:40:29.071Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-09T06:45:25.307Z", + "endDate": "2026-02-09T06:45:30.307Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T06:55:23.158Z", + "endDate": "2026-02-09T07:00:25.335Z", + "value": 0.1, + "unit": "U/hour", + "scheduledBasalRate": 0.1, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T07:00:25.336Z", + "endDate": "2026-02-09T07:40:23.194Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-09T07:05:24.412Z", + "endDate": "2026-02-09T07:05:30.412Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-09T07:10:27.147Z", + "endDate": "2026-02-09T07:10:32.147Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-09T07:15:24.513Z", + "endDate": "2026-02-09T07:15:32.013Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-09T07:20:28.943Z", + "endDate": "2026-02-09T07:20:33.943Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-09T07:25:28.231Z", + "endDate": "2026-02-09T07:25:33.231Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-09T07:30:25.222Z", + "endDate": "2026-02-09T07:30:30.222Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T07:40:23.194Z", + "endDate": "2026-02-09T07:45:25.652Z", + "value": 0.25, + "unit": "U/hour", + "scheduledBasalRate": 0.25, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T07:45:25.653Z", + "endDate": "2026-02-09T07:45:25.708Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T07:45:25.708Z", + "endDate": "2026-02-09T07:50:24.954Z", + "value": 0.2, + "unit": "U/hour", + "scheduledBasalRate": 0.2, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T07:50:24.955Z", + "endDate": "2026-02-09T08:00:00.000Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-09T07:55:24.017Z", + "endDate": "2026-02-09T07:55:29.017Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T08:00:00Z", + "endDate": "2026-02-09T08:35:24.334Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-09T08:00:26.064Z", + "endDate": "2026-02-09T08:00:41.064Z", + "value": 0.5, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-09T08:05:24.192Z", + "endDate": "2026-02-09T08:05:31.692Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-09T08:25:25.909Z", + "endDate": "2026-02-09T08:25:30.909Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T08:35:24.334Z", + "endDate": "2026-02-09T08:40:24.381Z", + "value": 0.3, + "unit": "U/hour", + "scheduledBasalRate": 0.3, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T08:40:24.382Z", + "endDate": "2026-02-09T08:50:25.348Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T08:50:25.348Z", + "endDate": "2026-02-09T08:55:25.235Z", + "value": 0.4, + "unit": "U/hour", + "scheduledBasalRate": 0.4, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T08:55:25.236Z", + "endDate": "2026-02-09T08:55:25.239Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T08:55:25.239Z", + "endDate": "2026-02-09T09:00:24.733Z", + "value": 0.25, + "unit": "U/hour", + "scheduledBasalRate": 0.25, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T09:00:24.733Z", + "endDate": "2026-02-09T09:15:25.491Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T09:15:25.492Z", + "endDate": "2026-02-09T09:20:26.104Z", + "value": 0.45, + "unit": "U/hour", + "scheduledBasalRate": 0.45, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T09:20:26.105Z", + "endDate": "2026-02-09T09:20:26.108Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T09:20:26.109Z", + "endDate": "2026-02-09T09:25:24.836Z", + "value": 0.5, + "unit": "U/hour", + "scheduledBasalRate": 0.5, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T09:25:24.836Z", + "endDate": "2026-02-09T09:35:25.557Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-09T09:25:25.616Z", + "endDate": "2026-02-09T09:25:30.616Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-09T09:30:25.274Z", + "endDate": "2026-02-09T09:30:30.274Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T09:35:25.557Z", + "endDate": "2026-02-09T09:40:28.149Z", + "value": 0.15, + "unit": "U/hour", + "scheduledBasalRate": 0.15, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T09:40:28.153Z", + "endDate": "2026-02-09T09:45:26.988Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T09:40:28.15Z", + "endDate": "2026-02-09T09:40:28.153Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T09:45:26.988Z", + "endDate": "2026-02-09T09:45:26.992Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T09:45:26.993Z", + "endDate": "2026-02-09T09:50:25.536Z", + "value": 0.15, + "unit": "U/hour", + "scheduledBasalRate": 0.15, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T09:50:25.536Z", + "endDate": "2026-02-09T09:50:25.538Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T09:50:25.539Z", + "endDate": "2026-02-09T10:10:25.916Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T10:10:25.916Z", + "endDate": "2026-02-09T10:10:25.920Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T10:10:25.92Z", + "endDate": "2026-02-09T10:15:25.919Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T10:15:25.92Z", + "endDate": "2026-02-09T10:40:24.995Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-09T10:15:26.656Z", + "endDate": "2026-02-09T10:15:31.656Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-09T10:20:25.67Z", + "endDate": "2026-02-09T10:20:30.670Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-09T10:25:24.313Z", + "endDate": "2026-02-09T10:25:29.313Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T10:40:24.995Z", + "endDate": "2026-02-09T11:00:24.369Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T11:00:24.372Z", + "endDate": "2026-02-09T11:05:25.691Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T11:00:24.37Z", + "endDate": "2026-02-09T11:00:24.372Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T11:05:25.692Z", + "endDate": "2026-02-09T11:20:25.344Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T11:20:25.345Z", + "endDate": "2026-02-09T11:25:26.133Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T11:25:26.133Z", + "endDate": "2026-02-09T11:45:23.809Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-09T11:30:24.159Z", + "endDate": "2026-02-09T11:30:34.659Z", + "value": 0.35, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-09T11:35:24.582Z", + "endDate": "2026-02-09T11:35:32.082Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T11:45:23.809Z", + "endDate": "2026-02-09T11:50:26.787Z", + "value": 0.25, + "unit": "U/hour", + "scheduledBasalRate": 0.25, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T11:50:26.787Z", + "endDate": "2026-02-09T11:50:26.790Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T11:50:26.791Z", + "endDate": "2026-02-09T12:10:25.353Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T12:10:25.353Z", + "endDate": "2026-02-09T12:10:25.355Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T12:10:25.356Z", + "endDate": "2026-02-09T12:25:26.572Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T12:25:26.573Z", + "endDate": "2026-02-09T12:55:23.990Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-09T12:35:26.81Z", + "endDate": "2026-02-09T12:35:31.810Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-09T12:40:25.36Z", + "endDate": "2026-02-09T12:40:35.860Z", + "value": 0.35, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-09T12:45:26.325Z", + "endDate": "2026-02-09T12:45:36.825Z", + "value": 0.35, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-09T12:50:24.996Z", + "endDate": "2026-02-09T12:50:29.996Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T12:55:23.99Z", + "endDate": "2026-02-09T13:00:24.630Z", + "value": 0.15, + "unit": "U/hour", + "scheduledBasalRate": 0.15, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T13:00:24.631Z", + "endDate": "2026-02-09T13:00:24.636Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T13:00:24.636Z", + "endDate": "2026-02-09T13:20:26.403Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T13:20:26.404Z", + "endDate": "2026-02-09T13:20:26.408Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T13:20:26.409Z", + "endDate": "2026-02-09T13:30:25.949Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T13:30:25.949Z", + "endDate": "2026-02-09T13:30:25.952Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T13:30:25.952Z", + "endDate": "2026-02-09T13:35:36.258Z", + "value": 0.25, + "unit": "U/hour", + "scheduledBasalRate": 0.25, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T13:35:36.258Z", + "endDate": "2026-02-09T13:40:26.113Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T13:40:26.114Z", + "endDate": "2026-02-09T13:45:25.991Z", + "value": 0.05, + "unit": "U/hour", + "scheduledBasalRate": 0.05, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T13:45:25.992Z", + "endDate": "2026-02-09T13:45:25.995Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T13:45:25.995Z", + "endDate": "2026-02-09T13:50:24.798Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T13:50:24.798Z", + "endDate": "2026-02-09T14:40:25.155Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-09T14:15:26.324Z", + "endDate": "2026-02-09T14:15:31.324Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-09T14:20:26.538Z", + "endDate": "2026-02-09T14:20:31.538Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-09T14:25:24.517Z", + "endDate": "2026-02-09T14:25:29.517Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T14:40:25.156Z", + "endDate": "2026-02-09T14:40:26.439Z", + "value": 0.4, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T14:40:26.439Z", + "endDate": "2026-02-09T14:45:24.416Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T14:45:24.417Z", + "endDate": "2026-02-09T14:45:24.419Z", + "value": 0.4, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T14:45:24.42Z", + "endDate": "2026-02-09T14:55:25.158Z", + "value": 0.4, + "unit": "U/hour", + "scheduledBasalRate": 0.4, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T14:55:25.158Z", + "endDate": "2026-02-09T14:55:25.164Z", + "value": 0.4, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T14:55:25.165Z", + "endDate": "2026-02-09T15:00:25.579Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T15:00:25.581Z", + "endDate": "2026-02-09T15:20:24.915Z", + "value": 0.55, + "unit": "U/hour", + "scheduledBasalRate": 0.55, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T15:00:25.58Z", + "endDate": "2026-02-09T15:00:25.581Z", + "value": 0.55, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-09T15:15:25.068Z", + "endDate": "2026-02-09T15:15:30.068Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T15:20:24.916Z", + "endDate": "2026-02-09T15:40:24.380Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-09T15:20:25.666Z", + "endDate": "2026-02-09T15:20:37.666Z", + "value": 0.4, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-09T15:29:23.482Z", + "endDate": "2026-02-09T15:29:29.482Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-09T15:30:25.236Z", + "endDate": "2026-02-09T15:30:32.736Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T15:40:24.38Z", + "endDate": "2026-02-09T15:45:31.578Z", + "value": 0.2, + "unit": "U/hour", + "scheduledBasalRate": 0.2, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T15:45:31.579Z", + "endDate": "2026-02-09T15:45:31.581Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T15:45:31.581Z", + "endDate": "2026-02-09T16:05:24.588Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T16:05:24.588Z", + "endDate": "2026-02-09T16:05:24.590Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T16:05:24.591Z", + "endDate": "2026-02-09T16:25:24.500Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T16:25:24.501Z", + "endDate": "2026-02-09T16:25:24.503Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T16:25:24.503Z", + "endDate": "2026-02-09T16:40:28.370Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T16:40:28.371Z", + "endDate": "2026-02-09T17:10:24.579Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-09T16:55:25.331Z", + "endDate": "2026-02-09T16:55:32.831Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-09T17:00:25.513Z", + "endDate": "2026-02-09T17:00:31.513Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-09T17:05:27.184Z", + "endDate": "2026-02-09T17:05:34.684Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T17:10:24.58Z", + "endDate": "2026-02-09T17:20:24.948Z", + "value": 0.35, + "unit": "U/hour", + "scheduledBasalRate": 0.35, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T17:20:24.948Z", + "endDate": "2026-02-09T17:30:26.841Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-09T17:20:25.616Z", + "endDate": "2026-02-09T17:20:39.116Z", + "value": 0.45, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-09T17:28:27.99Z", + "endDate": "2026-02-09T17:28:32.990Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T17:30:26.842Z", + "endDate": "2026-02-09T17:40:25.077Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T17:40:25.078Z", + "endDate": "2026-02-09T17:45:24.151Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T17:45:24.152Z", + "endDate": "2026-02-09T17:50:25.410Z", + "value": 0.55, + "unit": "U/hour", + "scheduledBasalRate": 0.55, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T17:50:25.411Z", + "endDate": "2026-02-09T17:50:25.412Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T17:50:25.412Z", + "endDate": "2026-02-09T17:55:26.568Z", + "value": 0.5, + "unit": "U/hour", + "scheduledBasalRate": 0.5, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T17:55:26.569Z", + "endDate": "2026-02-09T17:55:26.571Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T17:55:26.571Z", + "endDate": "2026-02-09T18:05:25.474Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T18:05:25.475Z", + "endDate": "2026-02-09T18:10:24.539Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-09T18:05:26.075Z", + "endDate": "2026-02-09T18:05:31.075Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T18:10:24.539Z", + "endDate": "2026-02-09T18:15:24.952Z", + "value": 0.5, + "unit": "U/hour", + "scheduledBasalRate": 0.5, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T18:15:24.953Z", + "endDate": "2026-02-09T19:00:00.000Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-09T18:20:26.012Z", + "endDate": "2026-02-09T18:20:31.012Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-09T18:30:26.917Z", + "endDate": "2026-02-09T18:30:31.917Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-09T18:45:27.002Z", + "endDate": "2026-02-09T18:45:32.002Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-09T18:48:04.279Z", + "endDate": "2026-02-09T18:49:58.279Z", + "value": 3.8, + "unit": "U", + "isMutable": false + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T19:00:00Z", + "endDate": "2026-02-09T19:20:26.441Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-09T19:05:25.964Z", + "endDate": "2026-02-09T19:05:30.964Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-09T19:10:26.596Z", + "endDate": "2026-02-09T19:10:34.096Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-09T19:15:26.137Z", + "endDate": "2026-02-09T19:15:31.137Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T19:20:26.441Z", + "endDate": "2026-02-09T19:40:27.790Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T19:40:27.791Z", + "endDate": "2026-02-09T19:40:27.805Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T19:40:27.806Z", + "endDate": "2026-02-09T20:00:25.562Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T20:00:25.562Z", + "endDate": "2026-02-09T20:00:25.572Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T20:00:25.572Z", + "endDate": "2026-02-09T20:05:26.889Z", + "value": 0.05, + "unit": "U/hour", + "scheduledBasalRate": 0.05, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T20:05:26.89Z", + "endDate": "2026-02-09T20:10:25.407Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T20:10:25.408Z", + "endDate": "2026-02-09T20:15:29.794Z", + "value": 0.75, + "unit": "U/hour", + "scheduledBasalRate": 0.75, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T20:15:29.794Z", + "endDate": "2026-02-09T20:15:29.797Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T20:15:29.797Z", + "endDate": "2026-02-09T20:20:25.238Z", + "value": 0.6, + "unit": "U/hour", + "scheduledBasalRate": 0.6, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T20:20:25.238Z", + "endDate": "2026-02-09T20:20:25.244Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T20:20:25.245Z", + "endDate": "2026-02-09T20:25:27.223Z", + "value": 0.15, + "unit": "U/hour", + "scheduledBasalRate": 0.15, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T20:25:27.224Z", + "endDate": "2026-02-09T20:25:27.250Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T20:25:27.25Z", + "endDate": "2026-02-09T20:30:30.987Z", + "value": 0.4, + "unit": "U/hour", + "scheduledBasalRate": 0.4, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T20:30:30.987Z", + "endDate": "2026-02-09T20:30:30.989Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T20:30:30.99Z", + "endDate": "2026-02-09T20:40:25.865Z", + "value": 0.45, + "unit": "U/hour", + "scheduledBasalRate": 0.45, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-09T20:33:38.116Z", + "endDate": "2026-02-09T20:35:47.116Z", + "value": 4.3, + "unit": "U", + "isMutable": false + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T20:40:25.866Z", + "endDate": "2026-02-09T21:45:25.719Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-09T21:30:27.338Z", + "endDate": "2026-02-09T21:30:32.338Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-09T21:35:27.295Z", + "endDate": "2026-02-09T21:35:32.295Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-09T21:40:12.524Z", + "endDate": "2026-02-09T21:40:17.524Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T21:45:25.719Z", + "endDate": "2026-02-09T21:50:27.860Z", + "value": 0.6, + "unit": "U/hour", + "scheduledBasalRate": 0.6, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T21:50:27.861Z", + "endDate": "2026-02-09T21:50:27.863Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T21:50:27.863Z", + "endDate": "2026-02-09T21:55:25.989Z", + "value": 0.55, + "unit": "U/hour", + "scheduledBasalRate": 0.55, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T21:55:25.989Z", + "endDate": "2026-02-09T21:55:25.990Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T21:55:25.991Z", + "endDate": "2026-02-09T22:00:26.789Z", + "value": 0.7, + "unit": "U/hour", + "scheduledBasalRate": 0.7, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T22:00:26.79Z", + "endDate": "2026-02-09T22:23:24.374Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-09T22:05:27.817Z", + "endDate": "2026-02-09T22:05:32.817Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-09T22:10:25.534Z", + "endDate": "2026-02-09T22:10:30.534Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-09T22:15:26.319Z", + "endDate": "2026-02-09T22:15:31.319Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T22:23:24.374Z", + "endDate": "2026-02-09T22:25:27.415Z", + "value": 0.1, + "unit": "U/hour", + "scheduledBasalRate": 0.1, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T22:25:27.415Z", + "endDate": "2026-02-09T22:25:27.443Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T22:25:27.444Z", + "endDate": "2026-02-09T22:30:25.215Z", + "value": 0.15, + "unit": "U/hour", + "scheduledBasalRate": 0.15, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T22:30:25.215Z", + "endDate": "2026-02-09T22:30:25.222Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T22:30:25.223Z", + "endDate": "2026-02-09T22:35:29.179Z", + "value": 0.6, + "unit": "U/hour", + "scheduledBasalRate": 0.6, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T22:35:29.179Z", + "endDate": "2026-02-09T22:35:29.182Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T22:35:29.182Z", + "endDate": "2026-02-09T22:35:31.998Z", + "value": 0.7, + "unit": "U/hour", + "scheduledBasalRate": 0.7, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T22:35:31.999Z", + "endDate": "2026-02-09T22:35:32.001Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T22:35:32.001Z", + "endDate": "2026-02-09T22:40:26.469Z", + "value": 0.6, + "unit": "U/hour", + "scheduledBasalRate": 0.6, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-09T22:40:26.47Z", + "endDate": "2026-02-10T00:30:30.924Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T00:30:30.924Z", + "endDate": "2026-02-10T00:35:25.947Z", + "value": 0.15, + "unit": "U/hour", + "scheduledBasalRate": 0.15, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T00:35:25.948Z", + "endDate": "2026-02-10T00:35:25.951Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T00:35:25.951Z", + "endDate": "2026-02-10T00:40:26.191Z", + "value": 0.3, + "unit": "U/hour", + "scheduledBasalRate": 0.3, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T00:40:26.191Z", + "endDate": "2026-02-10T00:59:59.999Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-10T00:40:26.809Z", + "endDate": "2026-02-10T00:40:31.809Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-10T00:55:26.223Z", + "endDate": "2026-02-10T00:55:31.223Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T01:00:00Z", + "endDate": "2026-02-10T01:05:27.210Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T01:05:27.211Z", + "endDate": "2026-02-10T01:10:25.651Z", + "value": 0.8, + "unit": "U/hour", + "scheduledBasalRate": 0.8, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T01:10:25.651Z", + "endDate": "2026-02-10T01:15:25.845Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T01:15:25.845Z", + "endDate": "2026-02-10T01:20:29.409Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-10T01:19:21.053Z", + "endDate": "2026-02-10T01:22:04.553Z", + "value": 5.45, + "unit": "U", + "isMutable": false + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T01:20:29.41Z", + "endDate": "2026-02-10T01:55:25.112Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-10T01:45:28.289Z", + "endDate": "2026-02-10T01:45:33.289Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T01:55:25.112Z", + "endDate": "2026-02-10T02:00:26.235Z", + "value": 0.2, + "unit": "U/hour", + "scheduledBasalRate": 0.2, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T02:00:26.235Z", + "endDate": "2026-02-10T02:00:26.237Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T02:00:26.238Z", + "endDate": "2026-02-10T02:05:27.295Z", + "value": 0.75, + "unit": "U/hour", + "scheduledBasalRate": 0.75, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T02:05:27.296Z", + "endDate": "2026-02-10T02:10:26.297Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-10T02:05:27.912Z", + "endDate": "2026-02-10T02:05:32.912Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T02:10:26.297Z", + "endDate": "2026-02-10T02:15:28.032Z", + "value": 0.75, + "unit": "U/hour", + "scheduledBasalRate": 0.75, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T02:15:28.032Z", + "endDate": "2026-02-10T02:15:28.034Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T02:15:28.034Z", + "endDate": "2026-02-10T02:20:28.637Z", + "value": 0.8, + "unit": "U/hour", + "scheduledBasalRate": 0.8, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T02:20:28.638Z", + "endDate": "2026-02-10T03:05:27.812Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-10T02:30:28.262Z", + "endDate": "2026-02-10T02:30:33.262Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-10T02:55:26.023Z", + "endDate": "2026-02-10T02:55:31.023Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-10T03:00:28.218Z", + "endDate": "2026-02-10T03:00:33.218Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T03:05:27.813Z", + "endDate": "2026-02-10T03:10:26.746Z", + "value": 0.6, + "unit": "U/hour", + "scheduledBasalRate": 0.6, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T03:10:26.746Z", + "endDate": "2026-02-10T03:15:27.551Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T03:15:27.552Z", + "endDate": "2026-02-10T03:20:28.028Z", + "value": 0.7, + "unit": "U/hour", + "scheduledBasalRate": 0.7, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T03:20:28.029Z", + "endDate": "2026-02-10T03:20:28.032Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T03:20:28.032Z", + "endDate": "2026-02-10T03:25:26.081Z", + "value": 0.5, + "unit": "U/hour", + "scheduledBasalRate": 0.5, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T03:25:26.081Z", + "endDate": "2026-02-10T03:25:26.082Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T03:25:26.082Z", + "endDate": "2026-02-10T03:30:26.035Z", + "value": 0.9, + "unit": "U/hour", + "scheduledBasalRate": 0.9, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T03:30:26.035Z", + "endDate": "2026-02-10T03:30:26.047Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T03:30:26.047Z", + "endDate": "2026-02-10T03:35:28.323Z", + "value": 0.8, + "unit": "U/hour", + "scheduledBasalRate": 0.8, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T03:35:28.324Z", + "endDate": "2026-02-10T04:00:25.546Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-10T03:45:28.689Z", + "endDate": "2026-02-10T03:45:33.689Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-10T03:50:26.129Z", + "endDate": "2026-02-10T03:50:31.129Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T04:00:25.546Z", + "endDate": "2026-02-10T04:05:26.665Z", + "value": 0.85, + "unit": "U/hour", + "scheduledBasalRate": 0.85, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T04:05:26.665Z", + "endDate": "2026-02-10T04:25:27.473Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-10T04:15:26.179Z", + "endDate": "2026-02-10T04:15:31.179Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T04:25:27.473Z", + "endDate": "2026-02-10T04:25:34.511Z", + "value": 0.15, + "unit": "U/hour", + "scheduledBasalRate": 0.15, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "suspend", + "startDate": "2026-02-10T04:25:34.512Z", + "endDate": "2026-02-10T04:28:19.797Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr" + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T04:28:19.798Z", + "endDate": "2026-02-10T05:05:25.908Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-10T04:30:27.312Z", + "endDate": "2026-02-10T04:30:32.312Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-10T04:35:27.326Z", + "endDate": "2026-02-10T04:35:36.326Z", + "value": 0.3, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-10T04:40:27.153Z", + "endDate": "2026-02-10T04:40:32.153Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-10T04:55:26.359Z", + "endDate": "2026-02-10T04:55:31.359Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T05:05:25.908Z", + "endDate": "2026-02-10T05:10:26.931Z", + "value": 0.85, + "unit": "U/hour", + "scheduledBasalRate": 0.85, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T05:10:26.932Z", + "endDate": "2026-02-10T05:10:26.936Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T05:10:26.936Z", + "endDate": "2026-02-10T05:15:28.391Z", + "value": 0.6, + "unit": "U/hour", + "scheduledBasalRate": 0.6, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T05:15:28.391Z", + "endDate": "2026-02-10T05:15:28.393Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T05:15:28.394Z", + "endDate": "2026-02-10T05:20:26.235Z", + "value": 0.7, + "unit": "U/hour", + "scheduledBasalRate": 0.7, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T05:20:26.236Z", + "endDate": "2026-02-10T05:20:26.238Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T05:20:26.238Z", + "endDate": "2026-02-10T05:25:27.258Z", + "value": 0.9, + "unit": "U/hour", + "scheduledBasalRate": 0.9, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T05:25:27.259Z", + "endDate": "2026-02-10T05:25:27.261Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T05:25:27.261Z", + "endDate": "2026-02-10T05:30:27.144Z", + "value": 0.35, + "unit": "U/hour", + "scheduledBasalRate": 0.35, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T05:30:27.145Z", + "endDate": "2026-02-10T05:30:27.147Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T05:30:27.148Z", + "endDate": "2026-02-10T05:50:26.364Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T05:50:26.364Z", + "endDate": "2026-02-10T05:50:26.367Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T05:50:26.368Z", + "endDate": "2026-02-10T05:55:28.256Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T05:55:28.256Z", + "endDate": "2026-02-10T06:25:25.784Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-10T06:00:26.895Z", + "endDate": "2026-02-10T06:00:31.895Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-10T06:05:27.366Z", + "endDate": "2026-02-10T06:05:32.366Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-10T06:10:26.395Z", + "endDate": "2026-02-10T06:10:32.395Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-10T06:15:26.398Z", + "endDate": "2026-02-10T06:15:31.398Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T06:25:25.784Z", + "endDate": "2026-02-10T06:30:27.056Z", + "value": 0.3, + "unit": "U/hour", + "scheduledBasalRate": 0.3, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T06:30:27.057Z", + "endDate": "2026-02-10T06:30:27.059Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T06:30:27.06Z", + "endDate": "2026-02-10T06:50:28.199Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T06:50:28.2Z", + "endDate": "2026-02-10T07:00:26.597Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-10T06:50:28.964Z", + "endDate": "2026-02-10T06:50:33.964Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T07:00:26.597Z", + "endDate": "2026-02-10T07:05:26.380Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T07:05:26.38Z", + "endDate": "2026-02-10T07:35:27.388Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-10T07:05:27.071Z", + "endDate": "2026-02-10T07:05:32.071Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-10T07:10:28.979Z", + "endDate": "2026-02-10T07:10:33.979Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-10T07:15:27.452Z", + "endDate": "2026-02-10T07:15:32.452Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-10T07:20:28.091Z", + "endDate": "2026-02-10T07:20:33.091Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-10T07:25:26.675Z", + "endDate": "2026-02-10T07:25:31.675Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T07:35:27.389Z", + "endDate": "2026-02-10T07:40:29.214Z", + "value": 0.1, + "unit": "U/hour", + "scheduledBasalRate": 0.1, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T07:40:29.214Z", + "endDate": "2026-02-10T07:40:29.216Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T07:40:29.217Z", + "endDate": "2026-02-10T07:45:27.508Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T07:45:27.508Z", + "endDate": "2026-02-10T07:45:27.510Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T07:45:27.511Z", + "endDate": "2026-02-10T07:55:26.933Z", + "value": 0.05, + "unit": "U/hour", + "scheduledBasalRate": 0.05, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T07:55:26.933Z", + "endDate": "2026-02-10T07:55:26.935Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T07:55:26.935Z", + "endDate": "2026-02-10T08:00:26.474Z", + "value": 0.1, + "unit": "U/hour", + "scheduledBasalRate": 0.1, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T08:00:26.474Z", + "endDate": "2026-02-10T08:00:26.476Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T08:00:26.477Z", + "endDate": "2026-02-10T08:05:27.869Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T08:05:27.87Z", + "endDate": "2026-02-10T08:45:26.093Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-10T08:15:29.318Z", + "endDate": "2026-02-10T08:15:34.318Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-10T08:20:28.829Z", + "endDate": "2026-02-10T08:20:33.829Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T08:45:26.094Z", + "endDate": "2026-02-10T08:55:26.547Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T08:55:26.547Z", + "endDate": "2026-02-10T09:05:27.427Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T09:05:27.428Z", + "endDate": "2026-02-10T09:10:26.862Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T09:10:26.863Z", + "endDate": "2026-02-10T09:50:28.049Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-10T09:25:26.876Z", + "endDate": "2026-02-10T09:25:31.876Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-10T09:30:27.496Z", + "endDate": "2026-02-10T09:30:32.496Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-10T09:35:26.901Z", + "endDate": "2026-02-10T09:35:31.901Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-10T09:40:27.295Z", + "endDate": "2026-02-10T09:40:32.295Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-10T09:45:27.314Z", + "endDate": "2026-02-10T09:45:32.314Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T09:50:28.049Z", + "endDate": "2026-02-10T09:55:28.477Z", + "value": 0.05, + "unit": "U/hour", + "scheduledBasalRate": 0.05, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T09:55:28.478Z", + "endDate": "2026-02-10T09:55:28.481Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T09:55:28.481Z", + "endDate": "2026-02-10T10:15:28.467Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T10:15:28.468Z", + "endDate": "2026-02-10T10:15:28.470Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T10:15:28.471Z", + "endDate": "2026-02-10T10:30:28.586Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T10:30:28.586Z", + "endDate": "2026-02-10T11:30:28.761Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-10T11:15:27.236Z", + "endDate": "2026-02-10T11:15:34.736Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-10T11:20:28.829Z", + "endDate": "2026-02-10T11:20:33.829Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T11:30:28.762Z", + "endDate": "2026-02-10T11:35:28.364Z", + "value": 0.1, + "unit": "U/hour", + "scheduledBasalRate": 0.1, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T11:35:28.364Z", + "endDate": "2026-02-10T11:35:28.366Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T11:35:28.366Z", + "endDate": "2026-02-10T11:45:28.988Z", + "value": 0.05, + "unit": "U/hour", + "scheduledBasalRate": 0.05, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T11:45:28.989Z", + "endDate": "2026-02-10T11:45:28.991Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T11:45:28.992Z", + "endDate": "2026-02-10T12:05:28.480Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T12:05:28.482Z", + "endDate": "2026-02-10T12:20:29.511Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T12:05:28.48Z", + "endDate": "2026-02-10T12:05:28.482Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T12:20:29.511Z", + "endDate": "2026-02-10T12:50:28.438Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T12:50:28.439Z", + "endDate": "2026-02-10T13:05:28.638Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T13:05:28.639Z", + "endDate": "2026-02-10T13:30:26.636Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-10T13:20:27.764Z", + "endDate": "2026-02-10T13:20:35.264Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T13:30:26.636Z", + "endDate": "2026-02-10T13:50:29.299Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T13:50:29.3Z", + "endDate": "2026-02-10T14:20:28.482Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-10T14:05:27.534Z", + "endDate": "2026-02-10T14:05:35.034Z", + "value": 0.25, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-10T14:10:27.493Z", + "endDate": "2026-02-10T14:10:36.493Z", + "value": 0.3, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T14:20:28.482Z", + "endDate": "2026-02-10T14:30:27.177Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T14:30:27.177Z", + "endDate": "2026-02-10T14:30:27.180Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T14:30:27.18Z", + "endDate": "2026-02-10T14:35:28.383Z", + "value": 0.35, + "unit": "U/hour", + "scheduledBasalRate": 0.35, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T14:35:28.384Z", + "endDate": "2026-02-10T14:35:28.386Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T14:35:28.386Z", + "endDate": "2026-02-10T14:50:45.467Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T14:50:45.468Z", + "endDate": "2026-02-10T15:00:00.000Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-10T14:50:46.263Z", + "endDate": "2026-02-10T14:50:51.263Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-10T14:55:27.086Z", + "endDate": "2026-02-10T14:55:32.086Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T15:00:00Z", + "endDate": "2026-02-10T15:20:29.258Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-10T15:00:28.081Z", + "endDate": "2026-02-10T15:00:40.081Z", + "value": 0.4, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-10T15:05:28.188Z", + "endDate": "2026-02-10T15:05:38.688Z", + "value": 0.35, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-10T15:10:31.357Z", + "endDate": "2026-02-10T15:10:37.357Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T15:20:29.259Z", + "endDate": "2026-02-10T15:25:29.288Z", + "value": 0.85, + "unit": "U/hour", + "scheduledBasalRate": 0.85, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T15:25:29.288Z", + "endDate": "2026-02-10T15:25:29.290Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T15:25:29.29Z", + "endDate": "2026-02-10T15:30:28.980Z", + "value": 0.75, + "unit": "U/hour", + "scheduledBasalRate": 0.75, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T15:30:28.982Z", + "endDate": "2026-02-10T15:35:29.714Z", + "value": 0.8, + "unit": "U/hour", + "scheduledBasalRate": 0.8, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T15:30:28.98Z", + "endDate": "2026-02-10T15:30:28.981Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T15:35:29.715Z", + "endDate": "2026-02-10T15:35:29.715Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T15:35:29.716Z", + "endDate": "2026-02-10T15:40:29.590Z", + "value": 0.55, + "unit": "U/hour", + "scheduledBasalRate": 0.55, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T15:40:29.591Z", + "endDate": "2026-02-10T15:45:30.820Z", + "value": 0.4, + "unit": "U/hour", + "scheduledBasalRate": 0.4, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T15:40:29.59Z", + "endDate": "2026-02-10T15:40:29.591Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T15:45:30.821Z", + "endDate": "2026-02-10T15:45:30.823Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T15:45:30.824Z", + "endDate": "2026-02-10T15:50:28.228Z", + "value": 0.45, + "unit": "U/hour", + "scheduledBasalRate": 0.45, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T15:50:28.228Z", + "endDate": "2026-02-10T15:50:28.230Z", + "value": 1.1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T15:50:28.23Z", + "endDate": "2026-02-10T16:00:29.439Z", + "value": 0.65, + "unit": "U/hour", + "scheduledBasalRate": 0.65, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-10T15:54:40.984Z", + "endDate": "2026-02-10T15:56:36.484Z", + "value": 3.85, + "unit": "U", + "isMutable": false + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T16:00:29.444Z", + "endDate": "2026-02-10T16:05:31.663Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T16:00:29.44Z", + "endDate": "2026-02-10T16:00:29.443Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T16:05:31.663Z", + "endDate": "2026-02-10T16:15:30.167Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T16:15:30.168Z", + "endDate": "2026-02-10T16:20:28.421Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T16:20:28.421Z", + "endDate": "2026-02-10T16:25:27.004Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T16:25:27.005Z", + "endDate": "2026-02-10T16:35:27.247Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T16:35:27.247Z", + "endDate": "2026-02-10T16:35:27.249Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T16:35:27.249Z", + "endDate": "2026-02-10T16:40:27.326Z", + "value": 0.3, + "unit": "U/hour", + "scheduledBasalRate": 0.3, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-10T16:35:36.878Z", + "endDate": "2026-02-10T16:36:18.878Z", + "value": 1.4, + "unit": "U", + "isMutable": false + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T16:40:27.327Z", + "endDate": "2026-02-10T17:05:21.895Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-10T16:40:27.838Z", + "endDate": "2026-02-10T16:40:32.838Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-10T16:50:29.779Z", + "endDate": "2026-02-10T16:50:34.779Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-10T16:55:27.851Z", + "endDate": "2026-02-10T16:55:32.851Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T17:05:21.895Z", + "endDate": "2026-02-10T17:05:27.647Z", + "value": 0.05, + "unit": "U/hour", + "scheduledBasalRate": 0.05, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T17:05:27.648Z", + "endDate": "2026-02-10T18:25:27.381Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-10T17:10:28.556Z", + "endDate": "2026-02-10T17:10:33.556Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-10T17:25:28.692Z", + "endDate": "2026-02-10T17:25:33.692Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-10T17:30:29.824Z", + "endDate": "2026-02-10T17:30:34.824Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-10T17:35:28.615Z", + "endDate": "2026-02-10T17:35:33.615Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-10T17:40:27.782Z", + "endDate": "2026-02-10T17:40:33.782Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-10T17:45:28.51Z", + "endDate": "2026-02-10T17:45:33.510Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-10T17:50:27.977Z", + "endDate": "2026-02-10T17:50:33.977Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-10T17:55:29.391Z", + "endDate": "2026-02-10T17:55:34.391Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-10T18:00:27.671Z", + "endDate": "2026-02-10T18:00:32.671Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-10T18:05:29.148Z", + "endDate": "2026-02-10T18:05:34.148Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-10T18:15:29.594Z", + "endDate": "2026-02-10T18:15:34.594Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-10T18:20:28.956Z", + "endDate": "2026-02-10T18:20:33.956Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T18:25:27.381Z", + "endDate": "2026-02-10T18:30:30.006Z", + "value": 0.2, + "unit": "U/hour", + "scheduledBasalRate": 0.2, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T18:30:30.006Z", + "endDate": "2026-02-10T18:30:30.009Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T18:30:30.009Z", + "endDate": "2026-02-10T18:35:27.448Z", + "value": 0.25, + "unit": "U/hour", + "scheduledBasalRate": 0.25, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T18:35:27.449Z", + "endDate": "2026-02-10T18:35:27.452Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T18:35:27.453Z", + "endDate": "2026-02-10T18:40:29.192Z", + "value": 0.4, + "unit": "U/hour", + "scheduledBasalRate": 0.4, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T18:40:29.192Z", + "endDate": "2026-02-10T18:50:29.728Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-10T18:40:30.077Z", + "endDate": "2026-02-10T18:40:35.077Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-10T18:45:27.608Z", + "endDate": "2026-02-10T18:45:32.608Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T18:50:29.729Z", + "endDate": "2026-02-10T18:55:27.861Z", + "value": 0.1, + "unit": "U/hour", + "scheduledBasalRate": 0.1, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T18:55:27.861Z", + "endDate": "2026-02-10T18:55:27.894Z", + "value": 0.8, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T18:55:27.894Z", + "endDate": "2026-02-10T19:00:28.859Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T19:00:28.864Z", + "endDate": "2026-02-10T19:05:27.652Z", + "value": 0.7, + "unit": "U/hour", + "scheduledBasalRate": 0.7, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T19:00:28.86Z", + "endDate": "2026-02-10T19:00:28.864Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T19:05:27.652Z", + "endDate": "2026-02-10T19:10:29.071Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-10T19:05:28.473Z", + "endDate": "2026-02-10T19:05:33.473Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T19:10:29.071Z", + "endDate": "2026-02-10T19:15:31.395Z", + "value": 0.5, + "unit": "U/hour", + "scheduledBasalRate": 0.5, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T19:15:31.395Z", + "endDate": "2026-02-10T19:15:31.398Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T19:15:31.399Z", + "endDate": "2026-02-10T19:35:30.576Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T19:35:30.576Z", + "endDate": "2026-02-10T19:35:30.579Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T19:35:30.58Z", + "endDate": "2026-02-10T19:40:29.921Z", + "value": 0.1, + "unit": "U/hour", + "scheduledBasalRate": 0.1, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T19:40:29.922Z", + "endDate": "2026-02-10T19:40:29.924Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T19:40:29.924Z", + "endDate": "2026-02-10T19:55:37.512Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-10T19:47:44.977Z", + "endDate": "2026-02-10T19:48:50.977Z", + "value": 2.2, + "unit": "U", + "isMutable": false + }, + { + "type": "bolus", + "startDate": "2026-02-10T19:51:21.393Z", + "endDate": "2026-02-10T19:59:21.393Z", + "value": 16, + "unit": "U", + "isMutable": false + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T19:55:37.513Z", + "endDate": "2026-02-10T20:38:57.457Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-10T20:05:33.807Z", + "endDate": "2026-02-10T20:06:09.807Z", + "value": 1.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-10T20:15:27.998Z", + "endDate": "2026-02-10T20:15:54.998Z", + "value": 0.9, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-10T20:20:30.165Z", + "endDate": "2026-02-10T20:20:49.665Z", + "value": 0.65, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-10T20:25:29.011Z", + "endDate": "2026-02-10T20:25:34.011Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-10T20:30:29.004Z", + "endDate": "2026-02-10T20:30:34.004Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-10T20:35:29.397Z", + "endDate": "2026-02-10T20:35:34.397Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T20:38:57.457Z", + "endDate": "2026-02-10T20:40:39.733Z", + "value": 0.5, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T20:40:39.734Z", + "endDate": "2026-02-10T21:00:28.134Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T21:00:28.135Z", + "endDate": "2026-02-10T21:00:28.138Z", + "value": 0.5, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T21:00:28.138Z", + "endDate": "2026-02-10T21:10:28.685Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T21:10:28.686Z", + "endDate": "2026-02-10T21:10:28.688Z", + "value": 0.5, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T21:10:28.688Z", + "endDate": "2026-02-10T21:15:29.418Z", + "value": 0.5, + "unit": "U/hour", + "scheduledBasalRate": 0.5, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T21:15:29.419Z", + "endDate": "2026-02-10T21:15:29.421Z", + "value": 0.5, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T21:15:29.422Z", + "endDate": "2026-02-10T21:20:28.390Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T21:20:28.393Z", + "endDate": "2026-02-10T21:40:27.957Z", + "value": 0.5, + "unit": "U/hour", + "scheduledBasalRate": 0.5, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T21:20:28.39Z", + "endDate": "2026-02-10T21:20:28.392Z", + "value": 0.5, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T21:40:27.957Z", + "endDate": "2026-02-10T21:40:27.960Z", + "value": 0.5, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T21:40:27.961Z", + "endDate": "2026-02-10T21:45:31.851Z", + "value": 0.5, + "unit": "U/hour", + "scheduledBasalRate": 0.5, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T21:45:31.852Z", + "endDate": "2026-02-10T21:50:27.929Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-10T21:45:32.467Z", + "endDate": "2026-02-10T21:45:38.467Z", + "value": 0.2, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T21:50:27.93Z", + "endDate": "2026-02-10T21:55:29.752Z", + "value": 0.7, + "unit": "U/hour", + "scheduledBasalRate": 0.7, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T21:55:29.752Z", + "endDate": "2026-02-10T21:55:29.763Z", + "value": 1, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T21:55:29.763Z", + "endDate": "2026-02-10T22:05:30.590Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T22:05:30.591Z", + "endDate": "2026-02-10T22:45:28.995Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-10T22:05:31.341Z", + "endDate": "2026-02-10T22:05:36.341Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-10T22:06:10.341Z", + "endDate": "2026-02-10T22:08:32.841Z", + "value": 4.75, + "unit": "U", + "isMutable": false + }, + { + "type": "bolus", + "startDate": "2026-02-10T22:10:29.549Z", + "endDate": "2026-02-10T22:10:47.549Z", + "value": 0.6, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-10T22:15:28.97Z", + "endDate": "2026-02-10T22:15:40.970Z", + "value": 0.4, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-10T22:20:29.816Z", + "endDate": "2026-02-10T22:20:34.816Z", + "value": 0.15, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-10T22:25:30.769Z", + "endDate": "2026-02-10T22:25:35.769Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-10T22:30:31.031Z", + "endDate": "2026-02-10T22:30:36.031Z", + "value": 0.1, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-10T22:35:28.937Z", + "endDate": "2026-02-10T22:35:33.937Z", + "value": 0.05, + "unit": "U", + "isMutable": false, + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T22:45:28.995Z", + "endDate": "2026-02-10T22:50:29.092Z", + "value": 0.4, + "unit": "U/hour", + "scheduledBasalRate": 0.4, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T22:50:29.093Z", + "endDate": "2026-02-10T22:50:29.095Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T22:50:29.096Z", + "endDate": "2026-02-10T22:55:28.197Z", + "value": 0.35, + "unit": "U/hour", + "scheduledBasalRate": 0.35, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T22:55:28.198Z", + "endDate": "2026-02-10T22:55:28.199Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T22:55:28.199Z", + "endDate": "2026-02-10T23:15:27.943Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T23:15:27.943Z", + "endDate": "2026-02-10T23:15:27.945Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T23:15:27.946Z", + "endDate": "2026-02-10T23:35:29.010Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T23:35:29.015Z", + "endDate": "2026-02-11T00:00:28.827Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-10T23:35:29.01Z", + "endDate": "2026-02-10T23:35:29.014Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-11T00:00:28.827Z", + "endDate": "2026-02-11T00:00:28.829Z", + "value": 0.9, + "unit": "U/hour", + "automatic": true + }, + { + "type": "tempBasal", + "startDate": "2026-02-11T00:00:28.829Z", + "endDate": "2026-02-11T00:05:37.841Z", + "value": 0, + "unit": "U/hour", + "scheduledBasalRate": 0, + "scheduledBasalRateUnit": "IU/hr", + "automatic": true + } +] \ No newline at end of file diff --git a/Loop/Resources/LoopInsights/TestData/tidepool_glucose_samples.json b/Loop/Resources/LoopInsights/TestData/tidepool_glucose_samples.json new file mode 100644 index 0000000000..90625bc5a0 --- /dev/null +++ b/Loop/Resources/LoopInsights/TestData/tidepool_glucose_samples.json @@ -0,0 +1,79697 @@ +[ + { + "startDate": "2026-01-13T19:29:52.417Z", + "quantity": 83.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ebc6a37e7af365c2728008b644a07ef8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-13T19:34:53.442Z", + "quantity": 84.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4710a1dcb56f29ad8f2fedec4561874f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-13T19:39:51.87Z", + "quantity": 82.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e562189c095f75f4e8a4a3b67f971f63", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-13T19:44:52.039Z", + "quantity": 79.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "754e2c5906443890eb27a30f8d94a85b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-13T19:49:51.418Z", + "quantity": 77.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9e1a4b1a1b7e84474c8be1d5d1ca9b78", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-13T19:54:51.124Z", + "quantity": 80.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f7a1ddcbe11b6bbd14a6ebf1eceaa4e3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-13T19:59:51.343Z", + "quantity": 85.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2e48095929958c3790f6aef751858450", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-13T20:04:52.051Z", + "quantity": 91.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "567e9e4801c213a29366ddd3bf3ce422", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-13T20:09:52.06Z", + "quantity": 88.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1d41ff852673463b159726d51119ded3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-13T20:14:51.388Z", + "quantity": 89.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7d179c355c033b6b2681bdc6faa1f9d1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-13T20:19:52.165Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f007c1114b8c56b82db606e415f04e23", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-13T20:19:52.165Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d9104e7e5bb7605ab591a4339b68923f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-13T20:24:51.267Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "58f0885828f624d4876711c117081a09", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-13T20:29:52.264Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cce8bf2a35328647e34dba88ae177c3a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-13T20:34:52.143Z", + "quantity": 133.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a4ddc287e196961cf3a2f56ec0ad471d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-13T20:39:51.872Z", + "quantity": 150.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4fe29d9fb9e8690561bdbfdb7d65b11d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-13T20:44:51.569Z", + "quantity": 160.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7b755ef7cbd407b4c80c0f75788f5c53", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-13T20:49:51.418Z", + "quantity": 172.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5e141cbfe86aca5e6bf21ed589a66148", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-13T20:54:51.566Z", + "quantity": 183.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "37b473a8365db654bcb2a71149f4e7fe", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-13T20:59:51.575Z", + "quantity": 185.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4dda45348c3b8672af11748b3f2f591f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-13T21:04:51.874Z", + "quantity": 181.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "80d07c8fdb7da58e398e558f09e70977", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-13T21:09:51.384Z", + "quantity": 186.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b8d6a24f91595c362015ec20ede47ad3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-13T21:14:51.446Z", + "quantity": 194.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "dec3d5e1742401032922d9796ef918a9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-13T21:19:51.977Z", + "quantity": 200.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "551aefd9f6f53648c30585c64a9406e3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-13T21:24:52.225Z", + "quantity": 203.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7491295db3c82efd0aa3d6617dbbcdcd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-13T21:29:51.866Z", + "quantity": 208.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1f871515f2d7c6e3d66770e3f37889d4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-13T21:34:52.579Z", + "quantity": 210.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "422dd459d6b51bbc241a94439b6deef1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-13T21:39:52.03Z", + "quantity": 210.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d4ea2f63cda26c7ee4a8b8ea757ab5ed", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-13T21:44:52.36Z", + "quantity": 216.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9ad8389ba349849bfcbb7105af6829cf", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-13T21:49:52.001Z", + "quantity": 218.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bd3cec2196e42ade33fb30c80ad3f084", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-13T21:54:51.55Z", + "quantity": 214.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6d8eb9cc617a2a7bcff2aef956a14205", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-13T21:59:51.36Z", + "quantity": 212.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "23e1a2da1e401d2dbb854fdbea14c303", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-13T22:04:52.109Z", + "quantity": 221.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "39250a6d83818e6dc487be4201f440ec", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-13T22:09:52.573Z", + "quantity": 224.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "632193374231f9626f6af34f0ce99c21", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-13T22:14:52.231Z", + "quantity": 216.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e4ca9633002775a8cca05f43f8025bd5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-13T22:19:52.01Z", + "quantity": 220.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "db31eaae14f750d58b1e370a514c2a4e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-13T22:24:51.893Z", + "quantity": 226.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cdcc4f6b90b6f0d12b94a091123e3e6b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-13T22:24:51.893Z", + "quantity": 226.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "15fe04346654b9ec479e7353f8d4e032", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-13T22:29:51.413Z", + "quantity": 232.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "83b065cc99f610c2649291bf5e341806", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-13T22:34:52.356Z", + "quantity": 230.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "47278c8ca02fd0b2f07aa688cd1ccc46", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-13T22:39:52.125Z", + "quantity": 238.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c705882567b235d7d7ce5e1810463b4a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-13T22:44:51.517Z", + "quantity": 232.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8f9a5f4395c0ec1402d6ffc95f9003a9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-13T22:49:52Z", + "quantity": 239.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ffbee51c71bd16f0702b9bde53973dce", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-13T22:54:51.43Z", + "quantity": 240.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fa74b2cbbffd06ba9582dcc9b7f46b2e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-13T22:59:52.261Z", + "quantity": 240.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2b0d51ba9c977ffc557d6247a4fee58a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-13T23:04:51.642Z", + "quantity": 238.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f2aa6a5f59c086db5b57266121a7ead8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-13T23:09:51.721Z", + "quantity": 236.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1fc20eabb4b8e1763e3d5c690867efc1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-13T23:14:52.383Z", + "quantity": 230.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5f1692aaf948ee36eef0fb86b6b7db87", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-13T23:19:52.054Z", + "quantity": 227.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1cfc40ee0dcb49a20fe50040d473558a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-13T23:24:52.422Z", + "quantity": 227.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2ef4f5bdca3038152c75641141df4488", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-13T23:29:51.79Z", + "quantity": 227.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "61b3125d8cdff75942f7c3e6ea1d58db", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-13T23:34:53.141Z", + "quantity": 225.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a29846bbf5805f1c18dc69e49c76c278", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-13T23:39:51.783Z", + "quantity": 218.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4762bf74acd67e76724b79a88670aec5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-13T23:44:52.512Z", + "quantity": 213.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ac509bde1467beae19b8b94549bd5a0a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-13T23:49:52.452Z", + "quantity": 200.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e6ba8f8127f81678e3fe0e8bd8b7dba5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-13T23:54:51.913Z", + "quantity": 185.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d00405790460d1e8c57c31508539977f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-13T23:59:52.213Z", + "quantity": 175.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "18717b6e4518dababd660f51b9b6d365", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T00:04:52.355Z", + "quantity": 163.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8692b9abe7ba4c90ccf2986ab0d4741b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T00:09:53.709Z", + "quantity": 162.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a709f37009f74b90a44a42df2f8171e5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T00:14:52.079Z", + "quantity": 156.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "94b9034b5851d16fc969ffac3de1c897", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T00:14:52.079Z", + "quantity": 156.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "caf41053f309ee93fcd197de1010a9ca", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T00:19:51.592Z", + "quantity": 144.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8335a5813b7393d9967889c552fd90ff", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T00:24:52.442Z", + "quantity": 138.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "377643cacb2aeb4288e45d6a192a7f47", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T00:29:51.754Z", + "quantity": 134.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "89a36e8b184001b040d4e33a2fd162e7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T00:34:52.474Z", + "quantity": 130.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "56c1e6afc375d0be2897d1ae3a454814", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T00:39:52.503Z", + "quantity": 124.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6dcd17d2af22053284d27a3768ef89be", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T00:44:52.374Z", + "quantity": 118.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "585bf4aaa8cf3a55afc5561cc1ed529d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T00:49:52.454Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "828f0aaa12f23524ac20ea699d78ee22", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T00:54:51.873Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c1deb3bfdf147d31a8c02524d86230d8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T00:59:52.001Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c971eafab820f7d33e2063130419dfb9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T01:04:52.767Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3057355d56a94d5076bf56943e3350e8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T01:09:52.767Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a390d94c08160ab1176112c57800a280", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T01:14:52.569Z", + "quantity": 85.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "06a854822090ed0cee1919fccf534b2f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T01:19:52.704Z", + "quantity": 82.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4bd1a70ff851c799f81f9015ff9911de", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T01:24:53.527Z", + "quantity": 79.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9d60936e223aa84bf7c7f4259d67f363", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T01:29:52.839Z", + "quantity": 74.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7163b77234f2e6ce3bfad2e3770468f4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T01:34:53.005Z", + "quantity": 71.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a7d10ee4177694800ab197b4ed696253", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T01:39:56.521Z", + "quantity": 69.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "51bcea341d4240bb6844aa4086e198a7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T01:44:52.456Z", + "quantity": 69.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "22ece89eac670a76f9ef2c46fc844f6e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T01:49:52.473Z", + "quantity": 69.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6fe3b717a7375ce7eb3f5daf3bc510d0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T01:54:52.437Z", + "quantity": 70.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8cbeb15f3c01ac3a51fa3a6788b54ea3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T01:59:52.613Z", + "quantity": 74.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ecfdd930e08842c2f0786dfd8562c204", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T02:04:52.769Z", + "quantity": 77.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ff74ca79373082d03b15cd9ed5c8c074", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T02:04:52.769Z", + "quantity": 77.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "98e06728b925dc39371078bc0d9c0ac4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T02:09:52.805Z", + "quantity": 88.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a65e2bbe90222e8bdf4bd8dc589d34be", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T02:14:52.301Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9ad104c395146df79ae57c68c7de315b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T02:19:52.046Z", + "quantity": 137.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ff9d3de94736a451eee8c6b165407693", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T02:24:52.44Z", + "quantity": 151.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9fe23f4cf13959675623e63ada611b57", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T02:29:53.259Z", + "quantity": 169.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "76710cacc2ed73270e2540d192d3f8aa", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T02:34:52.313Z", + "quantity": 192.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "dff0172d6493cadf7465ea54a80cc501", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T02:39:52.454Z", + "quantity": 213.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bab0787fa04e81d7d9023c7d547c7856", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T02:44:52.488Z", + "quantity": 220.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e9f9a0b8fa9dc39f74db0a2f971dcb39", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T02:49:52.273Z", + "quantity": 236.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ba464b077ae1b7a50eedfe70fe52d416", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T02:54:52.82Z", + "quantity": 228.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "512f4009e6fa73d51adc22f24b68b6ce", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T02:59:53.373Z", + "quantity": 237.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "48e4d62f2c7e6c46785d8a15e8ebf041", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T03:04:52.708Z", + "quantity": 243.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "189ead8d0a059da759b1bd95075f91ac", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T03:09:52.746Z", + "quantity": 235.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7d5d3821107439fa70b0089df572a332", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T03:14:52.746Z", + "quantity": 218.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "36e6ea6c284018fe8ac05d4d83fea855", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T03:19:52.657Z", + "quantity": 204.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5c8a90f50ad690f289d95aca4a718780", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T03:24:52.351Z", + "quantity": 198.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e66c92e74a809589013215026d746b68", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T03:29:52.015Z", + "quantity": 193.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4ba49d58bce183d1293858a883458478", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T03:34:52.451Z", + "quantity": 184.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b072a2c5724e060136b769247d2f6162", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T03:39:52.504Z", + "quantity": 176.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bf50e368a3dd7a04d26f0f7040442703", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T03:44:53.955Z", + "quantity": 176.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d73136886dcec03e1b95fa44d0346a36", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T03:49:53.955Z", + "quantity": 169.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "dd56f15da26a696fcc8927d8d00e6cd5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T03:54:52.609Z", + "quantity": 166.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9a60e64c188fdd44e5784501cef68eae", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T03:59:52.242Z", + "quantity": 162.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cc05493a2ac175649994bdb2f75467b0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T04:04:52.325Z", + "quantity": 147.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ea9782d051c46a6b24bb7d82a03aaa4f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T04:09:52.535Z", + "quantity": 151.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "dbf46b82ced5d1f93484a2b84614f4f7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T04:09:52.535Z", + "quantity": 151.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5276b60a86701dee6c4873f26a243a6c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T04:14:52.735Z", + "quantity": 148.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "886859a01fc019d4def148ec372dc26f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T04:19:52.739Z", + "quantity": 150.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "17543251e64226ffdae218c9e9c449b7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T04:24:52.846Z", + "quantity": 149.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e98d466f7821e0ef0f9dfb9a3c782276", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T04:29:52.59Z", + "quantity": 149.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bbbded94d2c8b465d6c3ad68af40ec5f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T04:34:52.589Z", + "quantity": 149.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "677c919f83332ccfa26b6056d309cd8d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T04:39:52.961Z", + "quantity": 146.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9b92b52dd050a35eefa602d93cdc0695", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T04:44:52.295Z", + "quantity": 141.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6659fe0fb180b7b1aea26c02bb101d41", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T04:49:53.164Z", + "quantity": 149.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "55daad31a25934209d76fd4690f083dc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T04:54:52.71Z", + "quantity": 151.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1b53bd2b91ed05d1bd336818cf7fb9fa", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T04:59:52.608Z", + "quantity": 150.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b499b8a81aa896871c8a6b89776046f4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T05:04:52.362Z", + "quantity": 148.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "70ea475a0bc0a2b1041a99f57b886961", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T05:09:52.271Z", + "quantity": 145.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "99a3367c3f50c4f8cf3224e2bad915e3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T05:14:52.995Z", + "quantity": 139.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a346fdc66e8c2f09d0e76b9c4d59c160", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T05:19:52.526Z", + "quantity": 138.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "641994c112082b6f9b51881420e3a918", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T05:24:53.106Z", + "quantity": 139.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b749a7b744ff7fec8ac9d24cd1762159", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T05:29:52.507Z", + "quantity": 148.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "930f34e0f0bf3879fc259fc1aab96207", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T05:34:52.76Z", + "quantity": 152.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "576c3f04ad6019dc9f2173a1d4720d37", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T05:39:53.049Z", + "quantity": 149.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cf0ed05fc5dda08737a2d208e7697a86", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T05:44:52.747Z", + "quantity": 143.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5eb20a6068e692a4d96840ac7389d76e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T05:49:52.856Z", + "quantity": 146.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "72fcbe4ff0d5944350d48098ed3de15d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T05:54:53.447Z", + "quantity": 152.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6efb9e7418db63cfeb6d7e955d50bcd1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T05:59:52.621Z", + "quantity": 154.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "72fc6fec40097a471efff16a3aadf2e0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T06:04:53.138Z", + "quantity": 155.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2b1b07fa736bb7a46e099c7dc93168f8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T06:09:52.384Z", + "quantity": 156.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "081dfe9dbb21f985fe5a8c4380599c2c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T06:14:52.981Z", + "quantity": 157.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f82510732101b871f8d171dfcec11afa", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T06:19:53.11Z", + "quantity": 156.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e19a9e19cc7da88ec676fe1b571a2d41", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T06:24:52.608Z", + "quantity": 158.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1253bd38ded691b4d662759fb62e5705", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T06:24:52.608Z", + "quantity": 158.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d44088768f2e49ed05d42d0e07a81cc9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T06:29:52.946Z", + "quantity": 159.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b59f2b4662e59a0ba54cc1267ee4f909", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T06:34:52.795Z", + "quantity": 160.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6d837e8d326f459773bfd28ee37a0c23", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T06:39:53.051Z", + "quantity": 164.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cc088a6a6372e08cb4c0f747ae43f31e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T06:44:53.14Z", + "quantity": 163.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "55592c730b59d15b683f0154cbdbe209", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T06:49:53.196Z", + "quantity": 161.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6965926fce33b83a978f62eb5909eb8a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T06:54:53.04Z", + "quantity": 161.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b19771b0234d0298b1559bb90bf9d56d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T06:59:53.186Z", + "quantity": 154.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "09cb3af7fd095108e61280fd5745c8a0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T07:04:52.58Z", + "quantity": 151.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f9389a3b27cbbd6fc2e7d7ff1c7f12fa", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T07:09:52.695Z", + "quantity": 154.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6be9ca1ee442fd96a648ae1d0d72b8f4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T07:14:52.741Z", + "quantity": 154.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bd5286ca159a9ccb6f8597f262354b39", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T07:19:52.999Z", + "quantity": 151.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bee7d5debf72d49cb01483302d4d5330", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T07:24:53.295Z", + "quantity": 148.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8d3c6082ffcd13bccd9b602a8a399c2b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T07:29:53.128Z", + "quantity": 145.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ad2bd0b9f11b0b86a96318055047e605", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T07:34:53.136Z", + "quantity": 152.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e04932022217c337f9330aaae07aa473", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T07:39:53.216Z", + "quantity": 145.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "72d160858c199dae3cb37e44932577c1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T07:44:52.98Z", + "quantity": 141.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "929c83fe6db51e7cad9bb394fb00862f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T07:49:53.173Z", + "quantity": 141.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ec00675429775ad38bf80b80c2e95782", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T07:54:53.672Z", + "quantity": 142.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e0e3fbbe4045570dd9ddc30f314a66d9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T07:59:52.59Z", + "quantity": 142.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "58aa64063d776f5c6bd4afe3129816a2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T08:04:52.467Z", + "quantity": 142.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ed85819a742a621922138d1aabe42e26", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T08:09:53.003Z", + "quantity": 143.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2d7d51927c441b7f99881b9a5ece6544", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T08:14:52.599Z", + "quantity": 143.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1325012e1803e979474da8d94abfad89", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T08:19:53.265Z", + "quantity": 142.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7b0606abeb6053a75382358827e4bc8e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T08:24:53.159Z", + "quantity": 139.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3bcc1e74ab82c59e3c9b24527613dcd6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T08:29:53.317Z", + "quantity": 139.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "13f80dedf09b4405605020782184c303", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T08:34:53.232Z", + "quantity": 139.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "342c0bb706b1733ec39ff1531c2002a8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T08:34:53.232Z", + "quantity": 139.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a20ef6745b2312beadc7f4d8f416b5bc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T08:39:53.117Z", + "quantity": 138.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "649e755e296c6ab764e41af05bcd5f03", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T08:44:53.001Z", + "quantity": 138.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5753e80f36472ae2cf382c0580ecd8b4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T08:49:53.437Z", + "quantity": 133.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "898e193491ee9acce6f9b51fecf327cd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T08:54:52.991Z", + "quantity": 133.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "639392944a3875ebf5991abaef8d3176", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T08:59:52.695Z", + "quantity": 132.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8a3b23c45c5693d50fba6c14b92ffc9d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T09:04:52.881Z", + "quantity": 135.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "26b4b98a01773a09506266bf76095d14", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T09:09:53.287Z", + "quantity": 137.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "29247100949918f4a62b301cf4808c74", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T09:14:53.243Z", + "quantity": 127.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0257a1a3cb88c76f9c93803e8a5e9ed8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T09:19:52.707Z", + "quantity": 118.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5a11f1eb039cd6fc1867dfc89cb0f35e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T09:24:53.451Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8493239408667c499f2120be9b012088", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T09:29:53.314Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a0c7b14d8d28252a38b404f69bba88ac", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T09:34:53.247Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a96cd6754f5eb3c274a567605438f978", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T09:39:52.944Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "51f263ed7f3cf1274bf81a6e2b4757d5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T09:44:53.349Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2ddf11aede5d2b0f07a964d95d4167bd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T09:49:52.663Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e28b4a341773420f5580b661c2b6d802", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T09:54:53.099Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2289ec6f548ce87a14a222178e0f5e42", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T09:59:54.116Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "73ca3dd0cb1faa29bb48349b700a1849", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T10:04:53.392Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c3e2191fc76f734ba128316249fb119f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T10:09:53.627Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "59cd155834fa54d5d6574fc9cd79993c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T10:14:53.622Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6f0102e57674cfbc5ea7cebd52128d5a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T10:19:52.846Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a7b547a5871b41a709f7fbb57d85978b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T10:24:53.63Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "779f42cf0c168d5d0dd712f8da266e93", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T10:29:52.786Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d81a1c70db64f878959e14c8188a45b1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T10:34:53.394Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0e7c823ce7c8920e0cde388227dc5e7e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T10:34:53.394Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8198e84d8339469d016aa68ec0353257", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T10:39:52.952Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e01b1e4950ee6636ae1baffecf9b58ba", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T10:44:53.318Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "58c4c41f89bc49ce44b4becd7c9c569e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T10:49:52.907Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0aeee7865b54ece306f5e019bb3c157f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T10:54:53.685Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8ee10dcf3b3a78deb04f41f0eb9d8d6e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T10:59:53.522Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "47e539e814a4914ce9a5c71091e26687", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T11:04:52.789Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "49a7d72c99519eb83fa080fd79581d64", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T11:09:53.206Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d62aa56ecf0bfc0a07f79a1aec55f2e8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T11:14:53.396Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f7a1fbec75c323ff55af47ef81cf84e0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T11:19:53.264Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b0a8429e153c7fc7cfda8dc9a46582f1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T11:24:53.243Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0164378a9bdcdedac3a58c4e7e2dfc12", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T11:29:53.58Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "238394c178a5ea9b6c599c1173c3beba", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T11:34:53.818Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0ac7d1948a8c2de265f00f3fbbe96077", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T11:39:53.755Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "50a40701d9f04dcb51c93c617e598fe7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T11:44:53.612Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "570584ab136baf4a7cbe4ceba7783d1f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T11:49:52.996Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a10d20236b2757fc2a06ed612bc9ab58", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T11:54:53.681Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fd36db9466477a741e905c48ad8354b0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T11:59:54.296Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "70a1bf978001c68d0900208655662e13", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T12:04:53.541Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6c83041e96d76e7b9f30d5582f70ebc1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T12:09:53.385Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9ba873bbbbd03e932d7ac7179b77841d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T12:14:53.59Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4a3e7682925fc5d67aa95ebe2bf532d0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T12:19:52.925Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9c2cd4590ba71fb7617b9f58fec0c88e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T12:24:53.755Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "22f601326681db69d84920912552dee7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T12:29:53.691Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "94ceeba73639a0913965cc6b4c97739b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T12:34:53.038Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2d1fb6f0106b3247affe0e986df00adc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T12:39:53.605Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "23f51fc514b0a745af84d13d79632fa3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T12:39:53.605Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6d18d5cbff040f0f29c9e8358ba386b0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T12:44:53.632Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7c7c35b9f6f3e8dde5f3838a3681f747", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T12:49:53.218Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cb5380fb6cde22a9224a9b704d2e8f41", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T12:54:53.895Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f6708bce16dc813b2dc2f8beb4f1024e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T12:59:53.201Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6ed9e4fd16b91db2b9ca72eaeca6884f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T13:04:53.155Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8bc55aa77b8d2b17ebbb128f51b91dbd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T13:09:53.61Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e9780562951a8dda12dc9b11c25dd539", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T13:14:54.026Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a9230f7a0371f805bacfb87e539889b0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T13:19:53.5Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "125eb6c5a93f611714db416f5a90d686", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T13:24:53.897Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b7f7c7ae45e75ea3913803bf0f5a1f12", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T13:29:53.664Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a1b718b68cc706b1ab185ffd52eae0c0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T13:34:53.75Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "edef01a2615e9764398316a77ccce585", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T13:39:53.947Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8c8daf92e3a6de69efc63d598598f462", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T13:44:53.687Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "031c4074113841016bac88297f158454", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T13:49:53.837Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fb017f1d2fff926e0f77248124e17298", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T13:54:53.654Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9ee2233125594fb5bef0c36ed4c26e51", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T13:59:53.245Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c64f947aab83604b5f6aab08c6784533", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T14:04:54.298Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d91bd91873e89251f954d79a81a1fc9f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T14:09:54.124Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "43ac982fea8aa13b39ebf7c631134216", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T14:14:54.124Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6ade6fbabbaedaa65c8dded9081c26f0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T14:19:54.096Z", + "quantity": 121.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3c9be92833af7c89f1fef6a9761517ea", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T14:24:53.562Z", + "quantity": 118.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b90b49fa5a9c9b4944047f17630c47fa", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T14:29:53.424Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bfda20127c3b2a432f9aa548b80d91da", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T14:34:54.002Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "09bc12a45199e2fa08590840a6f5a7b3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T14:39:54.085Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e6dfb22bd82907e5f05790fbd63c9d1d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T14:44:53.274Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0e29152e29ebb5f82d78dabc2330c836", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T14:49:54.042Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "350991ffbaf6838f9dbd44baec147867", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T14:54:53.789Z", + "quantity": 118.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1c911ddfb3b9c50ec858ab67b648964e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T14:59:53.232Z", + "quantity": 120.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "27fdcdf7ca62b9c3808df3653c285dd3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T15:04:53.575Z", + "quantity": 120.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ae168e09d7f46f3c1ed36b6706c7dbfb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T15:09:54.014Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b3dd82d600e686f1db9d835284bfcced", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T15:14:54.183Z", + "quantity": 124.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4e2b7ecde80937ebc535b0320420abb5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T15:19:53.569Z", + "quantity": 124.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "773d047299dd859ada8ff3111ad97abc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T15:24:54.066Z", + "quantity": 126.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ff2a90e2e4c158424166145bc6097a13", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T15:29:53.823Z", + "quantity": 123.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a7a4ef44601963072c4f7673aa3e57e9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T15:34:53.58Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "201c148a994b5bb35c0bc371bfdafce6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T15:39:54.025Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5986484b30546bb4df255f287f16c940", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T15:44:53.669Z", + "quantity": 120.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a6d79dfdd3a0a34395c1928c3820c6d5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T15:49:54.164Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "68f146ad1e674f92b4e443fc2734b4b5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T15:54:54.269Z", + "quantity": 125.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "98880263d9a925f5312751e49a825216", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T15:59:53.946Z", + "quantity": 128.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "860699eb60b7770437906fafb9c03bcb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T16:04:55.04Z", + "quantity": 127.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bab9dd921671df031da6ccf3b82e8664", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T16:09:53.365Z", + "quantity": 130.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8ca1ce089c5e16cc61a242e4ce91fde7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T16:14:54.048Z", + "quantity": 130.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ab0e21d01ab051f6322cdff64094a5f7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T16:14:54.048Z", + "quantity": 130.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ce377f4ba72d51cad584f28ccac0309a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T16:19:53.897Z", + "quantity": 127.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "255d8dc31909e3024cd55ee0436d17ce", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T16:24:54.347Z", + "quantity": 125.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "86207846caa576a802c7162110d123df", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T16:29:53.882Z", + "quantity": 125.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "10cb952593fc6f81e2576c043ba6ff2f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T16:34:54.27Z", + "quantity": 131.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "32a782d03b45f8596dbad52996078c98", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T16:39:54.428Z", + "quantity": 138.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0583e1f87f4b89e2a6df407a83341d3f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T16:44:53.975Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b81f4b030ba15d52888c26305507cc35", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T16:49:53.514Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a9a4ed072c0eaee5464971c7244c82fe", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T16:54:54.301Z", + "quantity": 124.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9e39cbec6e05d7f59c68b4add3514e73", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T16:59:53.781Z", + "quantity": 121.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "14732daf72bd8e7709dcc632ce45a7f0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T17:04:54.202Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d009f68898cc7065d589dcbea12457af", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T17:09:54.247Z", + "quantity": 120.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "156c559cc7c36ea12cdaa56315b389b4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T17:14:54.367Z", + "quantity": 120.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "09f8187dba1c75ab9b5f1fada30d00b3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T17:19:54.034Z", + "quantity": 121.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "971ba706f226992e011a0c0857589b7c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T17:24:53.952Z", + "quantity": 124.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "077cc950975b4d6aa95a46120df9e169", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T17:29:54.152Z", + "quantity": 125.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e81c3ed3e94856c5b6b734fe26847ee5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T17:34:54.229Z", + "quantity": 124.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "32a44cb196fdbca95d184ad858bf0bfd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T17:39:54.457Z", + "quantity": 126.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0de6f9083df69c3948944add6bc1154b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T17:44:54.338Z", + "quantity": 128.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "28c44f1c2b5272d569c587351ae34fea", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T17:49:54.254Z", + "quantity": 129.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d1f75f85fcde15a84a5453d91eb1e14e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T17:54:53.664Z", + "quantity": 133.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "34d76c6f43d23ca13692a3f7e6ebab93", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T17:59:54.204Z", + "quantity": 138.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "45ef0557cc919d16bd4c1e08f26025e1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T18:04:54.404Z", + "quantity": 137.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0e8d2a14f599af5d1dd3441cd8fc0fe7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T18:09:54.983Z", + "quantity": 137.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "63c5e6f3724c9ca6f7b0a9f5d1ee7272", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T18:14:53.813Z", + "quantity": 143.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fd61ee0d15cc081a67bb3dcd98c4f857", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T18:19:54.014Z", + "quantity": 157.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "26c0eda644a78fd89d89672a2c58e1fb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T18:24:54.37Z", + "quantity": 168.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fb8d157967da6cefc2b6902a761bbfdc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T18:29:53.736Z", + "quantity": 178.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "13a2cbbb98bb93cde4308712a0d27e41", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T18:34:53.714Z", + "quantity": 190.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "92ad9c8019940b58be2f172214e4c0ad", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T18:39:54.366Z", + "quantity": 200.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fe593ff4bed3c0e6c886938573e8f16c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T18:44:54.397Z", + "quantity": 200.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "eabcf07ce4b4b51304de329e9d071c7c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T18:49:53.876Z", + "quantity": 200.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "49cbf0dc787e9495c7e1982c52eee56b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T18:54:54.495Z", + "quantity": 206.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ace96efe7c3e2018c9b343eda525cd08", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T18:59:54.209Z", + "quantity": 202.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e1cc21a73cb272b381b08bcc8073cfa8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T19:04:53.925Z", + "quantity": 195.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8d49a7bff50a9572bd15fc5f1d748236", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T19:09:54.426Z", + "quantity": 192.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "008d6529868766b73ef0cd1160a7ad10", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T19:14:54.223Z", + "quantity": 184.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4712ef6d2b2f8e04bff45658cf6928e1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T19:19:54.112Z", + "quantity": 177.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "098f514e4a65af3c8320f81b51b31754", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T19:24:53.783Z", + "quantity": 175.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "dffadbd3b091ead2be349e46b4338cf5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T19:29:53.765Z", + "quantity": 174.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5c8d635ffcef50c27f9e12aec92c90fd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T19:34:54.205Z", + "quantity": 163.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4644d5080f49c06379ba7fbc42f03cc8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T19:39:53.898Z", + "quantity": 159.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1da9a889d36ab57f5ff353ea56281a64", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T19:44:54.427Z", + "quantity": 156.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "14242e89dcbbbec3e804469b1c550eeb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T19:49:53.948Z", + "quantity": 155.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d56f6f7652228eb7b9b3fb4d4b323f57", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T19:54:54.42Z", + "quantity": 154.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f469c6c2de1f3ee7a9401aa8b6d8ef9c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T19:59:54.662Z", + "quantity": 152.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8a0a958df08336db8c09500240945156", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T20:04:54.031Z", + "quantity": 151.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1b9273452459b7ce2de299ddc2eaa20e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T20:09:56.871Z", + "quantity": 148.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e165b9a966ed45119413d851d2865f87", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T20:14:54.768Z", + "quantity": 147.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "10c5cf75f85e50882da8f685bba11395", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T20:19:54.799Z", + "quantity": 145.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1dc81ca2537f345e7a5845f01b5d01b7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T20:24:53.978Z", + "quantity": 142.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a459e2e8c4f73368b8446314d06d82a5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T20:29:54.168Z", + "quantity": 141.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b2cf6b47a7070f29a0d18ab06bee7922", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T20:34:53.862Z", + "quantity": 137.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3472c243e3070ea7cb143ee9905bced7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T20:39:54.751Z", + "quantity": 136.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "233b50ab073ba9f6fcfcf7bc00ac0ad6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T20:39:54.751Z", + "quantity": 136.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3400ec4ae7eaee80ac7772039055cf94", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T20:44:54.559Z", + "quantity": 133.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0af9a126d65d288c37b15410a849cef8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T20:49:53.822Z", + "quantity": 130.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "159c4e1e8ad8eac2ebaccf8e0584c44b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T20:54:54.363Z", + "quantity": 131.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c1d82e7a790b3a2710d9f5e11b8ebd34", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T20:59:54.249Z", + "quantity": 130.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bc2e8a5dd5c24e75603b1302d4ccda73", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T21:04:54.789Z", + "quantity": 129.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7f498ca2347ecd8da450763674345f94", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T21:09:54.796Z", + "quantity": 128.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ad8ce465199d93bf840dff6c13612f5e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T21:14:54.422Z", + "quantity": 126.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "03115086e4ddb5548447b5eb09034d81", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T21:19:54.152Z", + "quantity": 123.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e2c57be41e7034c78f1ab8bedf4a8c4d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T21:24:54.637Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d3462bd5fc6e53dc823454ef4840d168", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T21:29:54.4Z", + "quantity": 118.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6bf7fdde601ecfa63f179af21da2290b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T21:34:54.828Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "653824058ccda9f6ea6fa64365f09508", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T21:39:54.288Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "39a7c79f99953340c9735f1373a51954", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T21:44:54.457Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e9e8765af7acbacc2db9567720e6eedd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T21:49:54.844Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6b7e7e246e74876091dd6391e925a55d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T21:54:54.165Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4c2ef0a6aae7813fd9c5b198e6f03c53", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T21:59:54.513Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1e5eec0e8dabaf8ecdba70595310bec9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T22:04:54.836Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f40012949f9bbe8ff905846264da77c0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T22:09:54.387Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cb2422f804c8229b8e5193e96d2ae7ef", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T22:14:55.99Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0e88ace168b174fbd6003d424cbb9f0a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T22:19:54.406Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b237133f5f1888205c907b9f660bd0b8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T22:24:54.059Z", + "quantity": 90.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fef1c22a565e52cc8b1b029348d284d9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T22:29:54.038Z", + "quantity": 87.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "16cabaab4f8277fa7d456852e0c50dc1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T22:34:54.135Z", + "quantity": 83.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "89caeb1a6a240278cda15c7955ac596c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T22:39:54.025Z", + "quantity": 82.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f773e8d6d54324703005bd5509347f3f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T22:44:54.366Z", + "quantity": 84.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "14265edd7bbf3a31f1c0acba97e58a76", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T22:49:54.938Z", + "quantity": 79.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2a6e454d9ee1a4b71fc70422afb9d8f8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T22:54:54.564Z", + "quantity": 78.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a41c322b0c2d78f53ee962c96eda927d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T22:54:54.564Z", + "quantity": 78.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f51a6ad3547d2f02c807610136ecfa78", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T22:59:54.614Z", + "quantity": 80.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ea5c49ae11adefd42738ecfc6e0ee335", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T23:04:54.892Z", + "quantity": 79.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "aa1935f19daca15ced05cc594b04c1d5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T23:09:54.583Z", + "quantity": 79.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0e22cc25b0227213f90e8718cc2cd5c1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T23:14:54.241Z", + "quantity": 79.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c41a0fe54029df29bd6e3da8b19407e9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T23:19:54.348Z", + "quantity": 81.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e726b5ed4bb5dc6a68b65b4689145b3f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T23:24:54.818Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ed4f05477cd63483f82bda7c4f3a651f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T23:29:54.18Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f97c2b49afbdf6d1a4fa12c0e53c74d2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T23:34:55.74Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a7bdd903c5106f9ce67cfa5d6ff0a420", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T23:39:55.602Z", + "quantity": 129.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5c9e499d0d233e892a37c77a0d89b53f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T23:44:55.227Z", + "quantity": 148.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "712cabbc2360cd5a440a225fd36346d4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T23:49:55.126Z", + "quantity": 155.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "59d9bd1a107e88a8f8b8e6c7f3c84c44", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T23:54:56.787Z", + "quantity": 170.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2fb47609cac4b0797b1091a7b1c8a204", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-14T23:59:55.328Z", + "quantity": 184.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "798f764fe7b7f03821dd07be79213344", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T00:04:55.147Z", + "quantity": 196.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "08405fe2486aaeec57e82141a7da7a85", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T00:09:54.345Z", + "quantity": 204.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ca6f4d934d4fce0f2b1e64663a56e654", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T00:14:56.286Z", + "quantity": 211.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "891d7c29e6de0a332d6b11eb882d28cc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T00:19:55.123Z", + "quantity": 225.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3d685fc3caccb08e4ec2a825a15b96ce", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T00:24:54.986Z", + "quantity": 229.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a0409e6d7aa30f62a8c26bad501938e8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T00:29:55.132Z", + "quantity": 234.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1fd586f6c932bf6ea1d67e9d7757fbda", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T00:34:55.766Z", + "quantity": 230.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7e12ea29efbb1c882507915e9bfb825a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T00:39:55.385Z", + "quantity": 229.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ddf6de006b0e25f71bf09ef8adde7838", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T00:44:56.304Z", + "quantity": 230.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0750920bccc3c768210d868761145c9a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T00:49:55.683Z", + "quantity": 232.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "80a7b4272e26b0e851e203f1efa80fe4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T00:49:55.683Z", + "quantity": 232.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0ada0a6038b575b84eb86fdf180bfc81", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T00:54:55.434Z", + "quantity": 229.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b52c441d4e1fe039621f71a9bfc2d506", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T00:59:54.978Z", + "quantity": 228.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cefc387030d0ab29119ca2a1457585a8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T01:04:54.978Z", + "quantity": 224.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "da0e4cba8b8f4ceb279e141577ecee59", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T01:09:55.089Z", + "quantity": 223.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ae01247d1064adea29a352d571b299d3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T01:14:54.684Z", + "quantity": 231.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e252f89c3053bb69ffffea3d3ec9edf9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T01:19:54.919Z", + "quantity": 232.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d62c28bd5777f044bca9ae7f9dd6ef3f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T01:24:54.649Z", + "quantity": 223.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b800bf277bd64918e59f367c9fc8a871", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T01:29:54.819Z", + "quantity": 223.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "acfa578df2561416f2fe7692f9b43d86", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T01:34:55.226Z", + "quantity": 232.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "caf9b1440f6576c3da55d24d6ad70a5a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T01:39:54.666Z", + "quantity": 233.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b01760d6384b9c2808f0ee6b8e0bd93b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T01:44:55.038Z", + "quantity": 237.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0c4c389e0c1bb5cd725d60785bdba3ca", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T01:49:55.175Z", + "quantity": 239.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "213f9021d516537c09bedb3538b7ac2c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T01:54:55.323Z", + "quantity": 238.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e914f863843eddfc65526a4c613fa88d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T01:59:54.715Z", + "quantity": 234.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c3a5306d5b3f5f8b3b7abd49e8615ccf", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T02:04:55.084Z", + "quantity": 235.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "817286225d70070649ebb1ec23c4d911", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T02:09:54.715Z", + "quantity": 231.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0af6d958d8f7a120bcb2f50e0d58a905", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T02:15:00.712Z", + "quantity": 240.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b0dc1a2d28bf646596ce2589214f4b8e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T02:20:00.712Z", + "quantity": 248.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "642433281ea0507fc67b18332ecbe469", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T02:24:56.815Z", + "quantity": 259.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e923c5e927d239d11231b313b3418400", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T02:29:56.815Z", + "quantity": 265.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b8708c176c423afc5822cd9fc8cac7c0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T02:34:55.759Z", + "quantity": 278.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "48b31b1a38066d2f9df31beb80529884", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T02:39:55.759Z", + "quantity": 286.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c4f704857144d8f2f5c49042a90f187d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T02:44:54.895Z", + "quantity": 300.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2b2779e51ff920ef67df5383811ac0df", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T02:49:55.574Z", + "quantity": 293.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5bd15ca064e07e44811f013c2637a5d3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T02:49:55.574Z", + "quantity": 293.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f8146051b646ec9150a73937928b3d9b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T02:54:55.786Z", + "quantity": 297.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "36ea5287e16ccf5fd4e75e225a16be51", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T02:59:56.03Z", + "quantity": 307.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "124056f2d42babc94c1e247b8ef2a1f0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T03:04:56.208Z", + "quantity": 312.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2209403d1014efa241591f1bd204dffa", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T03:09:54.673Z", + "quantity": 315.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ec3f0d551c27e5629349e93827ab38ce", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T03:14:54.673Z", + "quantity": 322.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ff00895dda36ce3e4c2c0300690db4d5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T03:19:55.809Z", + "quantity": 326.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f0f54e33838e260ad2e2fda7695afbb4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T03:24:55.111Z", + "quantity": 326.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c24fbf395d276ef1d5b8154140ba39b4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T03:29:55.533Z", + "quantity": 321.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a86ce4d6583b5149a25dea631a3882a8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T03:34:55.435Z", + "quantity": 324.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cb92e1546edb8663e16adda88a4db1e9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T03:39:55.551Z", + "quantity": 312.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8777c22785d6980485b14cfda25d7ebd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T03:44:55.018Z", + "quantity": 298.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bc90f1ed78c00df6fd660fb7bf3a0c0e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T03:49:54.727Z", + "quantity": 285.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "eeb51944e6eec16e73a6e837e5e1ca05", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T03:54:54.825Z", + "quantity": 287.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f0fc11e95a6c6dedaaf9b16cfd8fd263", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T03:59:54.659Z", + "quantity": 291.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0283b7e1f6409dc0a4082aee400eed75", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T04:04:55.299Z", + "quantity": 287.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3ebde2d1ea2bbefdf59cb81b57baef93", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T04:09:55.334Z", + "quantity": 287.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0e50b32bfbb4fbdf8908ac7d208b8112", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T04:14:54.833Z", + "quantity": 285.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0f6bf5d790b0c39f02e5ec04522c78f7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T04:19:55.675Z", + "quantity": 282.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "50cd1a09a782a98860f0c3cb8f4a70e4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T04:24:56.695Z", + "quantity": 280.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3ecaa1335900cb57c7c7ce3be2650928", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T04:29:55.531Z", + "quantity": 279.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e9cf01a34689ce35f8a0e879b2ec6534", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T04:34:55.223Z", + "quantity": 262.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "74bb0aa1ef81a00209d25b5f2274d4d0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T04:34:55.223Z", + "quantity": 262.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "71a24203b7f738db01ade4dfead797f9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T04:39:54.942Z", + "quantity": 256.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9d7d43754ba7406c6d78b01a472e3f3f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T04:44:55.382Z", + "quantity": 259.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "040d4beec9661f435f61eff7c42996e3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T04:49:55.053Z", + "quantity": 250.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "47602ec3014836f93f1ef49ee7887831", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T04:54:55.502Z", + "quantity": 245.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9f375087eb9dacd58c8b64852023bd70", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T04:59:55.682Z", + "quantity": 247.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5ad6305d54d04e3bab94e32201d9b37e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T05:04:55.481Z", + "quantity": 241.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ffc7fadb66d289df559636bb20b9b440", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T05:09:54.984Z", + "quantity": 234.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cfe22988b88a1a758e157a379249a78a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T05:14:55.502Z", + "quantity": 230.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1b2abe2216faef42d2012fabf4db2648", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T05:19:55.73Z", + "quantity": 228.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "526981b3a7d78b8d8103bf772f5430c5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T05:24:54.91Z", + "quantity": 218.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0058b52a9174b2f68bfdb9d332eae854", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T05:29:55.557Z", + "quantity": 214.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9e83365f2479ce04dd38466f0cf4e0e2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T05:34:55.684Z", + "quantity": 209.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "68fbc9849c5f11a0a1980fbfefb7a54a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T05:39:55.682Z", + "quantity": 197.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c49a8be0702e68305604be9cb08e214e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T05:44:55.788Z", + "quantity": 201.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "41cbbdd9245a578f1ea4a754d2360368", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T05:49:55.11Z", + "quantity": 193.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d4853a63cc004df95511f809a12b6565", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T05:54:55.1Z", + "quantity": 190.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7adf1812ee5dc8e86c43964d819a8b72", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T05:59:55.549Z", + "quantity": 186.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "37f71fd2eaca97e1f1dbc0642639456d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T06:04:55.158Z", + "quantity": 183.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e45acbd7dd682b5be6e869505b5385f9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T06:09:55.507Z", + "quantity": 175.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c9c369ed5e9b0e5e6ba5e506ce8403ec", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T06:14:55.746Z", + "quantity": 165.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d6596cbf1c1916d9e2e3987cb76b892b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T06:19:55.843Z", + "quantity": 165.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f47a21144f653135bd18aa24256f7a63", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T06:24:55.709Z", + "quantity": 165.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bf09e6acdc7c61d56ce64615f3c3642b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T06:24:55.709Z", + "quantity": 165.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "57c1f056b42e83314349fbe35b955abb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T06:29:56.749Z", + "quantity": 164.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "240626352be2f79e3a28fd30511e3acb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T06:34:55.404Z", + "quantity": 164.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a0ad83a2d6dfb3e34109799e77510309", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T06:39:55.67Z", + "quantity": 162.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "992ba1652385d24ae10a15eaaa363549", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T06:44:55.675Z", + "quantity": 161.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "55a941f2f3c962e7ae864c9a8542c18a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T06:49:55.661Z", + "quantity": 160.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4c42cfd1f53714ca141607d5eea4f571", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T06:54:55.477Z", + "quantity": 158.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ae3abc474e0ef12ebdc0699dbb4b62c2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T06:59:55.424Z", + "quantity": 156.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3eb38ddc1748923f8e2f3c1739c2e417", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T07:04:55.77Z", + "quantity": 157.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "380312f28c6e763e76f9648b4977d9ae", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T07:09:55.457Z", + "quantity": 156.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "80ed192358b59338b8716d56a2786414", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T07:14:55.745Z", + "quantity": 155.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9b6f75a1d8c7f429369a354599b1be89", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T07:19:55.704Z", + "quantity": 154.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "149e515ec6dbcfaa1faa42020141d26c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T07:24:55.352Z", + "quantity": 153.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a8b4cc99a7b4c21c922c532f4ac17fbf", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T07:29:55.629Z", + "quantity": 151.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fd08b50d4b07db2f0323d560a79bcd25", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T07:34:55.376Z", + "quantity": 150.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c108f34bb242fe61d44e9b51a42867cb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T07:39:55.795Z", + "quantity": 149.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e3d0aa214ced805731d04a488d8f8d1f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T07:44:55.375Z", + "quantity": 145.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f32b8da87d308d78a6c82d97818b7748", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T07:49:55.843Z", + "quantity": 140.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9f1d65bbd0d2c316c129140c2c7690ef", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T07:54:56.051Z", + "quantity": 134.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e5dc7ac310edb4973b94aba5be18e9a2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T07:59:55.978Z", + "quantity": 129.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5fbd6b9e31f6c4965dc8c200c4ab8e17", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T08:04:55.726Z", + "quantity": 127.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0325ae5812a3a63175f579ae585ed787", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T08:09:55.454Z", + "quantity": 134.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "37eef4f3b5e9101351d529f859791ecc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T08:14:55.782Z", + "quantity": 135.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "523c84672c22ca027fc9515ab8ead784", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T08:19:55.178Z", + "quantity": 132.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "023c7afa69f8cad95b21c36efd24a233", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T08:24:55.646Z", + "quantity": 128.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f8770f315d894d52099ec4282a7df3d7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T08:29:55.731Z", + "quantity": 125.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3659665e707013050b4c3f2220721285", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T08:34:57.21Z", + "quantity": 124.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2a5471b13d669390d38cfbb7b4675e65", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T08:34:57.21Z", + "quantity": 124.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "22e4a7c7e5d869e7813af152cfd825ea", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T08:39:55.936Z", + "quantity": 121.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e2133ec16a9c207d09fbf7adc7208744", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T08:44:55.871Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ec5807b7c04d84fceeae09ba0b549f0f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T08:49:55.517Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "22e00683b8f2db93d83a49e8a5727586", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T08:54:56.083Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "44b7b7c35db7209cbb93714f34b5ddde", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T08:59:55.441Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b0dd0a234d4e0b651a24343784002381", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T09:04:56.008Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7615e26caedf30271f7235b0a44e715e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T09:09:55.516Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "aeb71fe7a89e9de4e9d927aa4c56fe62", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T09:14:55.963Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b5a8361df387eb607f80c28372114c25", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T09:19:55.241Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "daa7c962460c8ce796b75581e39f195b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T09:24:55.839Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "21d24708072989e7cf8a5ad4d3afe8c3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T09:29:56.108Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7b07a3f438c61f6821386407a5d293c9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T09:34:55.747Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b3ea64a2d322384230ff2318be436639", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T09:39:56.223Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6853262411f2e7979dcb5917d497a7fa", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T09:44:56.272Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1cfeee33d7241186aa18215a7f1fb711", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T09:49:55.651Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b64250a23a2803c5614f94fe1a0c61a2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T09:54:56.167Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6956be9e52469287a2c5a3530364d4d7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T09:59:55.515Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0cdea205d23a58a48e3b02d77777d3bc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T10:04:55.344Z", + "quantity": 86.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0972bb6b9e87df7f194f7a69b16c5973", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T10:09:55.974Z", + "quantity": 88.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e4c8c92c6393e3765d441530e06a39c1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T10:14:56.001Z", + "quantity": 91.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7afe416413ee7ac12906796eef605333", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T10:19:56.29Z", + "quantity": 90.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2f8e58c3919f0cc7a21f656397ef2d70", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T10:19:56.29Z", + "quantity": 90.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "972e99dbc4ae7d43ae4efe7e00e25f22", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T10:24:56.158Z", + "quantity": 88.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "822a577b88fece36c3688b9222f578f8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T10:29:56.4Z", + "quantity": 84.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "be0d00efae3f7c1a973a5bcb2244e279", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T10:34:56.889Z", + "quantity": 81.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f3ce5029256930d5281476ee9d9cd382", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T10:39:55.636Z", + "quantity": 80.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "73f6c7792924d94d1f1cef484e934c4d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T10:44:56.155Z", + "quantity": 80.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "702d7246df4aedc0ea095fa854164dac", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T10:49:56.326Z", + "quantity": 83.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e67443e6e18708b602c55c425c695c04", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T10:54:56.163Z", + "quantity": 84.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1dc71353abfe281058857df837f99031", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T10:59:55.62Z", + "quantity": 85.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d4ab72d1253116c30b50bd989b586cba", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T11:04:56.148Z", + "quantity": 85.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d6c9f00729107e5b7139f87db3693481", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T11:09:56.306Z", + "quantity": 86.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "58a957e5dd5ff0f35fb65d8348efffab", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T11:14:56.334Z", + "quantity": 87.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "778298c803853dd098e0efb60a79dd32", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T11:19:56.362Z", + "quantity": 87.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8735529b7a1a5489bb5c2e22f85fcfca", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T11:24:55.58Z", + "quantity": 87.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0049a417fd09d8f674f4bc2c6dfa5586", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T11:29:56.367Z", + "quantity": 85.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1a8bc61773a2847b04f6487924f52742", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T11:34:55.647Z", + "quantity": 84.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "03f1998e7ff7c4a4c52a656c0a5cddcc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T11:39:56.454Z", + "quantity": 86.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "209f4c66cb14095e41a802221cfff5bf", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T11:44:55.552Z", + "quantity": 86.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ca7a540d1e72c4d1ac3f583a3e2ec93c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T11:49:56.129Z", + "quantity": 87.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "618269c7cc3e18a50c76c4f4045e350f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T11:54:56.348Z", + "quantity": 88.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e27de120ba25378eae1ea5c9e6d7d3fe", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T11:59:56.226Z", + "quantity": 89.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9bc604ff7eecf036877f1fa24b237967", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T12:04:56.273Z", + "quantity": 90.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f35f0282e2eda4526c4623501121f01c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T12:09:55.959Z", + "quantity": 90.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1febfc3480a72457945dd09ff923520a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T12:14:56.298Z", + "quantity": 89.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "703a065dafd568bac1d736dd7a1baa48", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T12:19:56.386Z", + "quantity": 84.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9e1403be3d88d823a7246be01bb0647e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T12:24:56.074Z", + "quantity": 85.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "027a9ce0970aff9fed1d0b2f29d23b68", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T12:24:56.074Z", + "quantity": 85.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b6abe4158f3524b257dbec4afe5311bf", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T12:29:56.285Z", + "quantity": 88.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "45b6f8749fb8149ec118f64f132111e4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T12:34:55.655Z", + "quantity": 90.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3e0181641fe89f0a72cf7d7e2f67d3f6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T12:39:57.316Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2fa866e2db0745f99148bf5d22dc589d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T12:44:55.822Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c4a9985773b4d6507940f84250e37cee", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T12:49:56.269Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d8d98212a93672831a9d68fd0b75e097", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T12:54:56.588Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1330449665ff42c3097c8ffea1cd9cc9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T12:59:56.455Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e1dd1d3a1447dc7afa50dff4706de6f3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T13:04:55.863Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a1c6fb5566050a49e4cb8b8014c90a5e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T13:09:55.942Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5321fa2a35276d906c1bfdc8b274fb0c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T13:14:56.378Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a165f4a371d64180361e18743188f3f6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T13:19:56.087Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3574968faf39472a34c9fcef4b9e80c0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T13:24:55.801Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "540fd46ef9791ba8c29b78a804441c11", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T13:29:56.42Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "239908a0707e42dcde3b853865110425", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T13:34:56.667Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e1d29755097e4e5f1be59728bb85b764", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T13:39:55.935Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3c462f4b6c05ca8aae54eb1aad4f8750", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T13:44:55.936Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e5e7f284bc8df8f4568e13c98e42097a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T13:49:56.121Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c1946b9c0bba6d9e2643312a4f6cd585", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T13:54:56.378Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e1644e57a22114c347982ba25258cd82", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T13:59:55.856Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "10b9e22e11568fa13cadcb9db631ab92", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T14:04:56.246Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9814692988067629e448913dbaf41a41", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T14:09:55.875Z", + "quantity": 91.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f434b62d7233c9800ecd01867e70f130", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T14:14:56.28Z", + "quantity": 90.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "479d7c9186c55523c6e26574371d2528", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T14:19:56.696Z", + "quantity": 88.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0b2952e144ef69d4a03d91a1d088bdfa", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T14:24:56.141Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7afa5301baff8ddc765bf54df3199f74", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T14:29:56.707Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0a8c6e475654e5e74d28718757051015", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T14:29:56.707Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b8163a9fa6cb24a801d81b1cf8e12d78", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T14:34:56.707Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5d6483b2f78c0bf27efce75da9c6796d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T14:39:57.381Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "09ad63076ec982c1fcc376161d859da4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T14:44:56.659Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "694476fe6d50d0bcb60747536e32c82c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T14:49:56.118Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7453ed9d012be716a8caaa5a2ef22f20", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T14:54:56.098Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ae8333833816cc0e35ef03d058419031", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T14:59:56.047Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "901c0df8c73443b84541d3a4c454c8ba", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T15:04:56.135Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "877f6fc12fb8564e95abe822938ab0bf", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T15:09:56.072Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "469869693ecd94c801db54951426d794", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T15:14:56.76Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "41db0d8722513b78bc632ad372414857", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T15:19:55.914Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "37f000277eec9bf57b868106cbe8ee11", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T15:24:56.759Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7a1519e49e6970032b891a9d61c569db", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T15:29:56.813Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9191cf138772ccb409c71cde0e8d510d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T15:34:56.221Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "463219494434837b990c58c2197c9c5f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T15:39:56.157Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b6e0f6d39ca1f747cfaadcd7e4379578", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T15:44:56.634Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "13b4a2db6300ec150c7bf11211e86a8e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T15:49:56.361Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "32ffa088d663d8e8fcd4e996d32544f9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T15:54:56.632Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3e1ba47f1ec4b3a01b2daf23b9020115", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T15:59:56.248Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f63ca2cf58edf6288fbb956d9e1b3767", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T16:04:56.184Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "669c92d5d16eb732dc1187d6c1221989", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T16:09:56.24Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9a52d5f1fa555b27adfdfa1f5af4a6cb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T16:14:56.424Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5507f3041835705481d2abb50eb6dbb3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T16:19:56.473Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "96fd4e3bfe2c776f7a75c440bbda7470", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T16:24:56.473Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6ca404380b60b4b529a2c47cf57c2948", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T16:29:56.991Z", + "quantity": 121.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0c8d7ece6127e11ce263ab4b0e013ae3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T16:34:56.229Z", + "quantity": 124.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "daca55db8a5f875c24f855d17701b1ae", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T16:34:56.229Z", + "quantity": 124.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "20c633a48bea4f0996ee50d3b1070d8f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T16:39:58.15Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "88b6cc22aef74cee82117b54fa405e49", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T16:44:56.768Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0670d83a745ec5df58e869e00e77dd1e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T16:49:56.759Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b08d20bef8d72720dff42555e9aff014", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T16:54:56.159Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d8c6345d79232c3ced6841e8d43d3107", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T16:59:56.111Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "91b98b528ae93aaaec654ec7e559f0df", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T17:04:56.442Z", + "quantity": 124.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "90048b4899fe62b9d5835d0689a16c39", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T17:09:56.284Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1804de324169bfd69761bf115da9625c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T17:14:56.426Z", + "quantity": 123.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fe335c55df78c0d0ef13dccc55c4e98e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T17:19:57.016Z", + "quantity": 124.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7ae4eb29ceb461178a5f3dae7a6dc170", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T17:24:56.285Z", + "quantity": 124.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1aeb25a8838410eaca79c9c85ec7380a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T17:29:56.773Z", + "quantity": 125.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d1c6a16b782fb1185e5a2e4aecdbbf34", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T17:34:56.552Z", + "quantity": 123.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e34abeb508bca0989ee081fcaa2e1cdc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T17:39:57.082Z", + "quantity": 126.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c2a157651ad67a0d16c1e5d7fe17edff", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T17:44:56.914Z", + "quantity": 124.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2cf974bfde14f0c3bc7a0483e0eb8269", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T17:49:57.834Z", + "quantity": 123.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9b5bf01b9e42ddf8f1450803ba645eca", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T17:54:56.482Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ca3e9f0bc5c58b35a584914c1866d800", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T17:59:56.812Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "97dd98bb16d4a9ae57547ed6529ea6a2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T18:04:56.813Z", + "quantity": 123.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "16888e0b425ebe56b197243606f38430", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T18:09:56.58Z", + "quantity": 120.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a20e10a5e5bc14acf61c4932e56f7225", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T18:14:56.731Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8dfd7faa7e3dae55537827c2bbf58ad7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T18:19:56.76Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b354f2f593d8ac105fc56de492460572", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T18:24:57.157Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8a0f2d42e34329295fc839a8b3b9a8cf", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T18:29:56.455Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "41aa90d909c0eca8f6fbdf51b3674a52", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T18:34:57.123Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8877b5b6a4de4840a110499a8d98dd31", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T18:39:58.265Z", + "quantity": 120.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1d24d1a7176f707da087a4430154bbbf", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T18:44:56.354Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cb5e295783be049c70d4ee16ed4e728d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T18:44:56.354Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0f8ac388cbccbadf667cbaa92fdada37", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T18:49:56.453Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "dddef55f4add9f7971e99fd2feb2704f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T18:54:56.764Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e0334f018ce847f08a4018a4ff666e76", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T18:59:56.975Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "66e423b57ec12ef3170b40490fee1f23", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T19:04:56.724Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4df9f5b1c5cf9390cccfb4d3d25fe7c3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T19:09:56.575Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "58305e336c90b21e0339c9c09a449c81", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T19:14:57.226Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6c34ce209bbb65605308fc26e063bbb0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T19:19:57.551Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "03be2883793ce8ca247e5821194f2db5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T19:24:56.398Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a98995e323d417e0932e27ff5f7f8987", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T19:29:57.317Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b37ba607cceedaafa740a1fea17b7209", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T19:34:56.886Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7cb93ac339cab7c3a8e411cb426f277e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T19:39:57.184Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "094185e9c469305e17ad458eda065d2a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T19:44:56.735Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "759c5ba2385b367ae5906d031f9991d0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T19:49:57.013Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "817db389730bb4cb565302dd7e3aad10", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T19:54:57.522Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ac0867ae2638e6bbd92eb239dc7ee881", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T19:59:57.151Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9ff4521f3c9ac0992cea49c300cbad8c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T20:04:57.222Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f43f3f934190d588a0a2cb96b21020f7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T20:09:57.3Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "15dc8f970b3ad383ca60d69597b52ea5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T20:14:56.689Z", + "quantity": 123.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0c6f62b1953145008ac8a28dfed4df66", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T20:19:56.567Z", + "quantity": 129.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "23e4db23096ba4c4319a19a3e5f137ee", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T20:24:57.377Z", + "quantity": 134.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f1b6d06bc37f97157781167e2845fc5c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T20:29:57.067Z", + "quantity": 136.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "720ccb553fa328b2b72e650602a24301", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T20:34:57.127Z", + "quantity": 146.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7cbecf48d54576a964200ffa5270524c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T20:39:57.058Z", + "quantity": 158.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b2e6900ea3a438cd801e3b6eb6e2b496", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T20:44:58.49Z", + "quantity": 168.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "214c1631bdc05d10d2bbc0b105484be5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T20:49:56.797Z", + "quantity": 173.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "656125eeb1f5fed54021c20f300f3b3f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T20:49:56.797Z", + "quantity": 173.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3fd1a80220ef50640882c3b3733b5205", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T20:54:57.136Z", + "quantity": 179.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "49060a9d430674aa715da76e4c77aba6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T20:59:57.065Z", + "quantity": 186.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "042f18be3b7cdfc7ca3f3969fb18fc68", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T21:04:57.223Z", + "quantity": 192.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e3242287da2dc2a6259c820b0e122058", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T21:09:56.932Z", + "quantity": 192.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4f8c99affeb7dccc19b2b616f921eb9a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T21:14:57.389Z", + "quantity": 194.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "27f79b0706d1e5ce9d277159f58a21ac", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T21:19:57.009Z", + "quantity": 194.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ce610aeb9cee67ed466e382ad9cc0616", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T21:24:57.352Z", + "quantity": 203.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8f1d9d19f45ff3e4ba4b86e68aad44d3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T21:29:57.44Z", + "quantity": 199.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bd88cc78e2392c57206311ab984aeb28", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T21:34:56.88Z", + "quantity": 195.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "31c8aa13df61d569686009e8947a4c5c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T21:39:56.797Z", + "quantity": 192.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e3e2eae6495e9c3ccab496ca68b7fea7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T21:44:57.516Z", + "quantity": 198.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5351c44920df47a5303b0467f1af2850", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T21:49:56.85Z", + "quantity": 199.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4206f219a4daa09d353273d85275dc50", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T21:54:57.312Z", + "quantity": 208.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "dd03e169961ff3ffbd829d8afc8be70c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T21:59:57.47Z", + "quantity": 228.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "76783e306b9559b317fb5d0ab4ba75c2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T22:04:56.857Z", + "quantity": 240.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d029b3cc91bfd94dbbddb9d8528d96a3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T22:09:56.887Z", + "quantity": 239.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "aa849af7a2c654ad740407fedf5f37db", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T22:14:57.266Z", + "quantity": 237.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "70caa27eb9b6c461946bd5eb0353ed61", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T22:19:57.003Z", + "quantity": 242.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1f4e0a53386e11c8e800623cbcf46c0e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T22:24:57.581Z", + "quantity": 249.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9ac75f4ed46645e18e42ee569ef74a6c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T22:29:57.368Z", + "quantity": 249.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "49a33edfd2c8177a20bfcd1ff34a4390", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T22:34:57.506Z", + "quantity": 256.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "09b1f7a1e288d656582d75d377e59160", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T22:39:57.606Z", + "quantity": 256.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f5a70fbe4683476cfc7a786a6d52514b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T22:44:58.543Z", + "quantity": 247.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e12efaeceb482ba71dc0cb3f2b42b914", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T22:49:57.412Z", + "quantity": 249.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2b40055c6ed6729cd9090b06a006af2a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T22:54:57.23Z", + "quantity": 242.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4947c8379c27509d391f212615718771", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T22:54:57.23Z", + "quantity": 242.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f052e475ab0b959a30cd47394bd01e62", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T22:59:57.68Z", + "quantity": 233.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "41ec376539f71ec4a8f1a8e6c8e3171b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T23:04:56.971Z", + "quantity": 225.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "debcdb6350875df250d0019faeebd53f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T23:09:57.16Z", + "quantity": 208.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "603079f071b498e25cb8b69251d207f5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T23:14:57.766Z", + "quantity": 202.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c536bd0089f3e552dec93010d626b83a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T23:19:57.07Z", + "quantity": 200.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f7b51eb9dbb44459ef54e8dbbee008cd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T23:24:57.018Z", + "quantity": 179.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b8b723ea9192bf20fb32550d77bd03fa", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T23:29:57.859Z", + "quantity": 173.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a5b3ddf92851ee8b4549a48605c74879", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T23:34:57.604Z", + "quantity": 164.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8503b498e7462587925657785a0f7b4b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T23:39:58.054Z", + "quantity": 163.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "dfa6fac498becca3739919119c778eb7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T23:44:58.149Z", + "quantity": 154.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b72156fd872279051cf9262f52313f60", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T23:49:58.224Z", + "quantity": 143.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "60be8fd8345ad513369c25882d6c81a6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T23:54:57.689Z", + "quantity": 138.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "252081cbb0052672c33c9709e4287ded", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-15T23:59:58.124Z", + "quantity": 139.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "72c882db651031ce63cd6569b797af0d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T00:04:59.024Z", + "quantity": 139.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b93011addc772ec03602f66a1f19a517", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T00:09:57.126Z", + "quantity": 136.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6ecdd072e07728c2df0f7cfa992c9498", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T00:14:57.589Z", + "quantity": 129.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "14c0957859b86951dbf973b2cbb0856b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T00:19:57.695Z", + "quantity": 128.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b7232691ff5478f044e6d544eaeb7a6c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T00:24:57.524Z", + "quantity": 121.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b323b504954a518feaa2b438f989809c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T00:29:57.399Z", + "quantity": 124.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "29ad3c65322f04ef1551feb1c0d318a4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T00:34:57.979Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ac09a184071d400d4f564513e00b6b51", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T00:39:57.115Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "09fe94e0291d7e89da4c4d247dddd591", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T00:44:58.994Z", + "quantity": 127.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1a6ebef07213b2ca66d55c2be51df421", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T00:49:57.571Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d4a4b80c74119ac7c1ef0e557c5bec40", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T00:54:57.018Z", + "quantity": 124.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bae5af2b82f3efed5cbb4ff699df2ce7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T00:59:57.507Z", + "quantity": 133.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "daa296229530bdca3a11ece0568bed69", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T00:59:57.507Z", + "quantity": 133.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8b4f92bdb4588003f88da98b6d162b47", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T01:04:58.034Z", + "quantity": 123.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a7bfabef8b81ea1279a0b180e39ae567", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T01:09:57.781Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1d1e4d7993af44cc518de6627250b37a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T01:14:57.74Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5aad3682f378dde85d226d885a97b797", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T01:19:57.917Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b334c78ed0117f579f80f3161af71402", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T01:24:57.108Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9cc8e02cac494a691e582dd2ed0ac771", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T01:29:57.881Z", + "quantity": 127.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6aafdd1cd5950becc5afb351a13b1408", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T01:34:58.129Z", + "quantity": 126.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "416b1284b2f9a12dccd7471d04f23a25", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T01:39:57.748Z", + "quantity": 124.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "44d38eff06b6fa02fead7afa95753d30", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T01:44:57.793Z", + "quantity": 125.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9d7df863f59a39ebfd0c58c036793ddb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T01:49:57.803Z", + "quantity": 126.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b6c34b7666c2d652ad6dcdc3c0eb6e58", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T01:54:57.274Z", + "quantity": 129.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f2504fe6173162eb156bb57bfe2e8356", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T01:59:58.237Z", + "quantity": 125.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3768c1bf1bcac6b94564cc0f8dc4ff47", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T02:04:57.81Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cff0dfc0ff00ea48349098adb64ed5ef", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T02:09:57.25Z", + "quantity": 121.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "69a93d4370d50d1758de5dc320f0c6c4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T02:14:57.701Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e6cc497f32fa57856dac5a93e52e68a8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T02:19:57.395Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4b846dcd0a1a669916e6a2502c2012ba", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T02:24:57.57Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "79ab28162f9be6bde9221a8720aa5b6c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T02:29:58.325Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b128f74e24b67f364afa039e5a6fee20", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T02:35:00.252Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4f88ab38c6ad6f991b8d6c5c351dab63", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T02:39:57.877Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a253796e720afa0cd0ba818bbdd9da71", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T02:44:57.466Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6511584512fe64b92002e31b4523c03e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T02:49:59.206Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a0547e6a5b15f6d63bd1870fac6250d1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T02:54:57.316Z", + "quantity": 91.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9e13e2411d119af7c799c23991f1fdc7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T02:59:58.273Z", + "quantity": 83.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "70fedaba3e87f4d117c36a45154a589b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T02:59:58.273Z", + "quantity": 83.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ef3b086091f26b20dc08d4d288576d45", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T03:04:58.307Z", + "quantity": 80.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c812a838eeca47b0d82be836af95b649", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T03:09:58.307Z", + "quantity": 87.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ab01d3f024cc1350a08f065acd7f9534", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T03:14:58.225Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "717b50b4da9457f4f97c1c2592063100", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T03:19:57.679Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "61aaf6417df609b763b15d48fae28c7a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T03:24:58.288Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "90a5afb805c966aee6ef950abdcbfe92", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T03:29:57.745Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4ab6aab33109756947951fddcff260e2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T03:34:57.561Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4747b44dad3016b411fb6b60bed84cad", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T03:39:57.528Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "23cca4eabe961748e72ee09d5ad0a633", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T03:44:58.269Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cf8fda288454532569adaca5fbc03f3c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T03:49:58.176Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "71bec845ce97796bcc8380d36949fe7b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T03:54:58.12Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2b949719352dbf62d5f26063d18942f7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T03:59:58.366Z", + "quantity": 118.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "52a841c3a8baaf9a5050d7276b4e3bce", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T04:04:57.484Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d76bbf48d3b6b49100e1f91a6562a7b2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T04:09:58.171Z", + "quantity": 118.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "881fc8ec964e7bd18cbe7325f88cd51c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T04:14:57.476Z", + "quantity": 121.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0c32d6845e43fc323ba635a7ded63f26", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T04:19:58.162Z", + "quantity": 124.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "85e64e300c14b4597dcf65a3bcda533a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T04:24:58.273Z", + "quantity": 134.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7b756c8d1535feaab6997cc3da5ea7c8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T04:29:58.2Z", + "quantity": 166.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "48094f7efb436363ce70473421b5e89c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T04:34:58.164Z", + "quantity": 182.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0370f1cdd33de0a304575cb3420d292a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T04:39:57.772Z", + "quantity": 193.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1aa2af817a95de5ad4acd01d8d030db2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T04:44:57.49Z", + "quantity": 200.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bc42f16a377f0f29c5548e712767eeea", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T04:49:57.737Z", + "quantity": 190.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "eb0694b331a003a87a6d116a7e4c28f0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T04:54:58.649Z", + "quantity": 174.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ab81c7074072e211c11c9c8709f93de1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T04:59:57.663Z", + "quantity": 164.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a5cd03b23f774542b0ff52809de09e79", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T05:04:58.149Z", + "quantity": 158.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "92311974cf8d781b22f249e13b4af9d9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T05:09:57.946Z", + "quantity": 154.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a7b64e09a5b0cfebafef9265c96e7498", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T05:09:57.946Z", + "quantity": 154.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "db50143e8f4fae53f7e045ccbe50e8c5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T05:14:58.541Z", + "quantity": 145.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d2cf89542dc9775cd7c8ecad0ac1634c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T05:19:58.274Z", + "quantity": 136.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "dc9db8f1e9b68092e4a7af159f2fbfd6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T05:24:57.67Z", + "quantity": 137.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "08b3adfc73bb05b67233c5803e72590b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T05:29:57.995Z", + "quantity": 138.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4e6a157df46dddd46776e51f2c255413", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T05:34:58.503Z", + "quantity": 137.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "db8431b6837317f6fc8f3725c085423a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T05:39:58.468Z", + "quantity": 134.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f648280e750861c9495921429acae8e3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T05:44:57.694Z", + "quantity": 134.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7ae6ef3dbd5629e3875fb7b82c49605e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T05:49:57.937Z", + "quantity": 132.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f5f2d2cd8c59565099c8239c16f6e516", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T05:54:58.364Z", + "quantity": 135.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3f893822dfc78d2048beb2920b30e586", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T05:59:58.579Z", + "quantity": 134.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a51c497363ca717da5ce668b573e56bc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T06:04:58.114Z", + "quantity": 132.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8057abb2b0ba259e4de147a046c119fd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T06:09:58.526Z", + "quantity": 131.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d1295c651c8484e78df1912a58743ba1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T06:14:58.411Z", + "quantity": 131.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f35509f6c4ec17f552777b14782f1ca2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T06:19:58.693Z", + "quantity": 130.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e03d10521d7a70f384636ee3ec91842d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T06:24:57.87Z", + "quantity": 129.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e94df614e33ce05611632f1d70cbb101", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T06:29:58.093Z", + "quantity": 121.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8e1643c0465629f43de72baf95b8c6b0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T06:34:58.429Z", + "quantity": 121.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a179d462f36d174f6572596e5a66811b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T06:39:58.492Z", + "quantity": 125.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "30fff95549a106b3167bd2a0323a199a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T06:44:57.946Z", + "quantity": 120.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "71da7b081ca5ad6c41b1f779536298a8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T06:49:58.619Z", + "quantity": 124.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7c75193dfab024eb418d6cbca432837e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T06:54:59.535Z", + "quantity": 128.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7ac51233981de36cd501db4d67e2d6aa", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T06:54:59.535Z", + "quantity": 128.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2146354d8fc87a4c0a60bee646c61a8a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T06:59:58.523Z", + "quantity": 133.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "09df14956297550358bec9827eb2a216", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T07:04:58.196Z", + "quantity": 134.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "675328a31b1903926fe338f5ca8f6562", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T07:09:58.377Z", + "quantity": 134.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "19f03f2e20bb84e285c30a906dc90368", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T07:14:58.421Z", + "quantity": 133.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a5efcd8f328fb51e5b451292f9d6836f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T07:19:58.514Z", + "quantity": 131.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0cfb669f169befe1d5fd75b652ee7fb6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T07:24:58.759Z", + "quantity": 130.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1aaa8ff4349b2ccefc3aa09d8f3aef05", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T07:29:58.091Z", + "quantity": 130.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "06b8fd7743051e15d56d205c17233c80", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T07:34:58.764Z", + "quantity": 131.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "884041623326f4172be08b7f521a261c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T07:39:58.677Z", + "quantity": 130.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8676de6cc3bb346fcc47324680f9b526", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T07:44:58.321Z", + "quantity": 130.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3e6e3f8ed2fdd70609255572be0a72eb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T07:49:58.453Z", + "quantity": 129.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e1b65e22f0a4ba3f5bb5e2a9287d9887", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T07:54:57.995Z", + "quantity": 127.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "33f379e564aadc9e94c1688cb5f3d446", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T07:59:58.57Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fdf1bd9899536ccda2d166d24ec3686d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T08:04:58.112Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c5cd898a2e51da1eb001ca973f4999dc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T08:09:58.318Z", + "quantity": 124.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9649273ce94e03f23330183279da7757", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T08:14:58.763Z", + "quantity": 125.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "671e80f665e50e854fa72f71068398f3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T08:19:58.399Z", + "quantity": 125.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f5edcfe686bac88de3a217009f1521c5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T08:24:58.564Z", + "quantity": 125.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1607864065728a7cd2b85361af8188a8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T08:29:58.759Z", + "quantity": 123.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c637e82667dcbbb32e0d89b5f98525a5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T08:34:58.067Z", + "quantity": 120.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "457ca758d01e14a5be97314539840322", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T08:39:58.685Z", + "quantity": 120.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "45ee1c457cd48aa9d5c2f3cfe0fb8c0f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T08:44:58.279Z", + "quantity": 124.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "006f4a8335c7e8a2b32131d54e955955", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T08:49:57.985Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f982821afd3aac7d59ba02322ed97f2a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T08:54:58.779Z", + "quantity": 120.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7a1a6849f7b5607ea761796ff17207fe", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T08:59:59.894Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "846c2fa7b7a1268db35f8d8e18f88af0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T09:04:58.231Z", + "quantity": 118.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "841c2b67f3bc3c88be476c8b801344d2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T09:04:58.231Z", + "quantity": 118.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a310d8320e98f79f00328683918e4e34", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T09:09:58.906Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "99b3b1748f5b9be4b6a154fe22857a41", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T09:14:58.092Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1f4ca00565cbc7fa8ea692a4967bb129", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T09:19:58.048Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3f1feefbfdd2103cecab6dc4da26cf62", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T09:24:58.914Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e27423195172605f85af4d6c8621c650", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T09:29:59.002Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "dafc14bde30ec0f8172660e36ef87c94", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T09:34:58.717Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c78e400b72c33c1aebc0a8ecbaeddb8f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T09:39:58.844Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "df462b98ea42ec41984c69308633df75", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T09:44:58.749Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6209ec2134f7f0cb5e4d4f1cb770ee23", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T09:49:58.946Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f6518037e9d3dff462307dba90c4639e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T09:54:58.761Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "666d5a440dccc21eab071b6fc5e696c1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T09:59:58.109Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d1adc91722bab7b2e9cf9d51d5e41a9d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T10:04:58.757Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "31f1e86c9559f54f966e5c8710150dd9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T10:09:58.433Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "725b785c5eedd228dcd56874be094f2f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T10:14:58.159Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4fa53dd5c9fa48ff444178456ec88741", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T10:19:58.207Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2f4bb73f095f46ac9b8c449be50c5a21", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T10:24:58.462Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5a869d4ef0d3d75e8acfc1eabf056cc9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T10:29:58.817Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ad218a3bc82f9ae1e7142754f93ff041", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T10:34:58.667Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "feb068326bfd1d69f4522bc4736a9104", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T10:39:59.361Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e7a6875ae6a30cf4b8a51df97e907cf9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T10:44:58.578Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f00b1799ad099cd1c5c72286c7e590af", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T10:49:58.267Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3217dd31a8846295a48e13c43bc59e49", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T10:54:59.414Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ff72b7545c87b9ef1410669b19de852d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T11:00:00.365Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4863d9cf1b080d9019748ab31e685843", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T11:04:58.553Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8ae79e0bff8a3d75354f9ecf1a572e8a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T11:04:58.553Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2b2259fb4569f8b9c8ad0b5668427ab5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T11:09:59.631Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b170451408e0fc821611593f3312433e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T11:14:58.177Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "59d26bb5283604393594a2a3bb1965ae", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T11:19:58.402Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a7fa2c962dd8fcc43cc855c22b284c3f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T11:24:59.047Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6d7ace3f42e66465e5c798218c91d16e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T11:29:59.174Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "67182be2c1ec1c89395f0b1ae7584cf1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T11:34:58.963Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d325373d6d499ab9f801c37238567117", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T11:39:58.248Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "923264839f1a9c0b33e9320a97f425a8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T11:44:58.254Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9321e81869099ebf4f9d19ef96ab6011", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T11:49:58.59Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3fb4152366c17fa4e7f7ddd4d9d5cb3a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T11:54:58.837Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e0d9b49771d61ab69cc47fdc0d82099d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T11:59:58.305Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "597c0a0be79dc5b8652e2248a20982b0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T12:04:58.414Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6bac9e2e1c1d62891b34bc07bacc949b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T12:09:59.049Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0f8ce4706e05cac1f4cdc4a507a0ba6c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T12:14:58.545Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e8a23b5c2fb2a829a1aa04651c74fc51", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T12:19:58.412Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "53d835703bb52be2865bb0869f23df89", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T12:24:58.787Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5ec71a2a15ad89ad13cb7f5b3e453dec", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T12:29:59.255Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "65519ca33c15fa22ae5986fde4533803", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T12:34:59.191Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4fcd7c5c999b64c6777cd446fbb37bd5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T12:39:58.679Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d7347bf7299292e852d68a3c289d10ec", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T12:44:58.987Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7597810c6ddb783ffb6bc4c7a0edd6c3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T12:49:58.663Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6924d077739e46a154f615ef4f2c377c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T12:54:59.132Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d78c204adfc0bf9b0634f6c9bbc31432", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T12:59:58.944Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fc9e8475a6a59881a122cf69d48a0675", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T13:05:00.248Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "def85aa33badd5ee5ee83c2a6937fafb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T13:09:58.819Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c5450973a9e7d862612053eaeaa25a4a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T13:14:59.089Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4def3ba17a8d5e15bc3b6ebe74b6d4e0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T13:14:59.089Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "92fa0cf2b6b5dcce2f999d919fa8ee1c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T13:19:58.432Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8ae4c4c57a5c42a712ff46130093ebc7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T13:24:59.143Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "468b2afb617dccdc20c3065a0c6c3fd1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T13:29:59.276Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a86d8013cab083eb20ee0a64b34126a1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T13:34:58.487Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "667c0c7a0bb9c7f8079abe3dfdba2d11", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T13:39:59.329Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d6f4e90d7e0b5173bfbc77fa1e2ba8d5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T13:44:59.429Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4a1588555e5c7fbe5efb60029e914849", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T13:49:59.213Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cb5bea2215a6e09f8d67c4dfeb890f31", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T13:54:59.397Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2510a29596d1ed6a3feab30fa480c273", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T13:59:59.202Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b6640f66b6eedb2f1b687cc0a279644a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T14:04:59.421Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "db5ca691a15682406fa99f6bb2b94514", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T14:09:59.137Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bb8f96f38421786dee9c6ebebec9d177", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T14:14:59.211Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0534e5ca520a393aa510bada07746c35", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T14:19:59.024Z", + "quantity": 118.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "063af1a6ea06e96a71408e9c78665d7c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T14:24:59.221Z", + "quantity": 138.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "56eb60d6e79a4c468a070b000583b0bf", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T14:29:58.63Z", + "quantity": 147.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "aa993b366587eeffb9d50bce5df6a205", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T14:34:59.14Z", + "quantity": 149.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b5f859a227c8685a801c0d690e947ffd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T14:39:58.925Z", + "quantity": 155.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e8d333905564d31b9beda37ccc337db9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T14:44:58.87Z", + "quantity": 154.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "54ab8529c6fb56021717df93ecd132c5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T14:49:59.025Z", + "quantity": 156.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c5ed53c0b284d8dae768db9a020ef2fb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T14:54:59.013Z", + "quantity": 154.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0d16a04225a338d2debf99f2d124878e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T14:59:58.942Z", + "quantity": 157.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "461daf5346c6be2aaa8b51fcfceea5d0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T15:05:00.885Z", + "quantity": 158.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a05823b58ed6e989bafc44ee520e1486", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T15:09:59.019Z", + "quantity": 156.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8a6b0e6ea753f29995def7d1bd77d89d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T15:14:59.358Z", + "quantity": 153.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "263dbe6dbe49167aa0c0f12e59557841", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T15:19:58.925Z", + "quantity": 151.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "91d17c32a9d008e7ff362bc13b8dc2bc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T15:24:59.686Z", + "quantity": 153.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "da660fc4b1c47fb70345e1dac10941c1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T15:24:59.686Z", + "quantity": 153.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4ef00e8f436cd8a63860d81d02d749b7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T15:29:59.283Z", + "quantity": 153.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3cb4223dffb0562379fa1e414299d568", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T15:34:59.043Z", + "quantity": 156.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "007c2e1cf53a116aaea599aa95f7adf2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T15:39:58.731Z", + "quantity": 158.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c65ef649a505cbb1807dd4d851fdb934", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T15:44:59.671Z", + "quantity": 157.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "75ee1d00bbc7fcdb33e0f26f6dec5ec8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T15:49:59.318Z", + "quantity": 159.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a3fba5f14dc9f5ec0e3febd6c3a8713a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T15:54:59.666Z", + "quantity": 173.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6fb4f97902029bda86208c71ec773001", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T15:59:59.534Z", + "quantity": 163.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "19408e5448bd2a027dcdd0216584184a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T16:04:59.089Z", + "quantity": 153.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "11e9014a4b1b57f4a0790cff3fec5eec", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T16:09:58.917Z", + "quantity": 160.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "73082ebeeb858d8e414a4f7b37d8f9ec", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T16:14:59.425Z", + "quantity": 160.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d08964c0087842fa62aaf13b44492304", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T16:19:58.875Z", + "quantity": 159.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3af617583c851001fedcbda84b258ae5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T16:24:59.162Z", + "quantity": 158.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "39d17f97138cb00d742c6e9bb4975533", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T16:29:59.111Z", + "quantity": 158.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a88dcfe7d202561c90facfa69725bc39", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T16:34:59.088Z", + "quantity": 156.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "25e2f0d437ed7637c9fa482373f7247f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T16:39:59.095Z", + "quantity": 152.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "37d0992fabe2630ee35ae9cc3d8e56c4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T16:44:58.872Z", + "quantity": 152.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8674b7f3170553411d28c062ac247aa0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T16:49:58.893Z", + "quantity": 153.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "589e846bb4b21c9540ce1373cbc2fca8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T16:54:59.338Z", + "quantity": 149.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5cb7430581c7e131882af76df5c5b71d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T16:59:59.948Z", + "quantity": 146.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4af3ef4ca2646e158c7db3c5c3f73b10", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T17:05:00.76Z", + "quantity": 143.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "115e91837047426ac33277437412f70e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T17:10:00.76Z", + "quantity": 144.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "27a668663732c8bc7dd94d4bb772861a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T17:14:58.996Z", + "quantity": 142.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "924897fbfb001accb9bd674e1f392aef", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T17:20:00.029Z", + "quantity": 140.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6510e706b5568a929373912ff36d1e34", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T17:24:58.884Z", + "quantity": 136.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "23c1fc9e82f8e9b84ad5fe211ee48021", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T17:24:58.884Z", + "quantity": 136.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "24d5fb79b857299195e84901ed56d785", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T17:29:58.85Z", + "quantity": 136.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5f56ddcb85a4edb20b381aeef3530173", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T17:34:59.225Z", + "quantity": 134.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f1e5d89de98fe354a342c960b7771bda", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T17:39:59.731Z", + "quantity": 133.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c9abe1138fae904308f964169731b7e5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T17:44:58.759Z", + "quantity": 131.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f6ddb2deceb922c73f74021c2db98093", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T17:49:59.267Z", + "quantity": 130.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0bc0345030c3bd36d1100acf41b8af45", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T17:54:59.684Z", + "quantity": 127.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7750402d0e7487e179ed6d81a08eab80", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T17:59:58.918Z", + "quantity": 125.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f149291452547c1ce5ca5a1b592b3b1c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T18:04:59.006Z", + "quantity": 123.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "49724045251c80e40b0d13360e14c75b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T18:09:59.105Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d91436bf8d31a4a9fadbe444a4c2c078", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T18:14:59.39Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d72989d25037ebeeaa1bb9e7d9eca961", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T18:19:59.02Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "102d78ff106e30fa02d74785a2110185", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T18:24:59.68Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7a01e8fa22231c912a25ce2453986e60", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T18:29:59.523Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "943e03c9c6afc1870a82cf2b44e04bb4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T18:34:59.452Z", + "quantity": 121.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9ab96e9b9c36b923702c8da7b08ed340", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T18:39:59.72Z", + "quantity": 123.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cc588283bcd83bee3c58b8ea4c1ab25b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T18:44:59.433Z", + "quantity": 120.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "955ac84bac92d03abbbadff40c3f5f7f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T18:49:59.243Z", + "quantity": 118.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "22ff30aa84c186af930f772bcc37dc3a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T18:54:59.167Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cc424546152e090a594968b2b6c25037", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T18:59:59.05Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "31d666f39acd5e866e5a39689635f937", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T19:04:59.455Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "297a1421ad41aee25277d1b47fb5683a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T19:10:00.605Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d7d9c71f6f2e7ba28c2b175e5e142138", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T19:14:59.018Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7d4e38764f686887b82a650d2c2d54f1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T19:19:59.461Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d21382f44ec0f96b124556d17c3f54bd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T19:25:00.223Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f8fe299e8f44f11c0213726423f3e2e5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T19:29:59.249Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "39c800b585c67a644800b63d182a845e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T19:34:59.595Z", + "quantity": 118.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6574c098540b1c9c14a33e682756cfed", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T19:39:59.403Z", + "quantity": 118.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5c2a092be4069b70184f2e9887b6c91c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T19:44:59.091Z", + "quantity": 118.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "29e5358182a237bfae63143382deee7d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T19:49:59.498Z", + "quantity": 120.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "70ab15b058975e2f96f842c9468a92f7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T19:54:59.895Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "28cf84a3b3dccd68c74e3a8b50cdddaf", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T19:59:59.606Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e153773f767724b031f0394b191f7f4d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T20:04:59.298Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2dfc3bce930407420acf86ab78f3b3fe", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T20:09:59.328Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d7435d92c6484aab8e221faecb0168e9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T20:15:00.063Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4eac8c2ef23a59a75d96fabfa32481ed", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T20:19:59.495Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "18c66a2013baf6e88d4995b162e6179e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T20:24:59.135Z", + "quantity": 118.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f1caa4c0440f3fda089275d10cd85eba", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T20:29:59.103Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "feefcecb52ca1edf1f9f3099b87d7b3c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T20:34:59.232Z", + "quantity": 120.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7c6282cf97da2ef968b08088b305dd44", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T20:39:59.452Z", + "quantity": 124.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "40ede2e8fc336e980c0810984ba9db69", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T20:44:59.407Z", + "quantity": 125.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3abc0ac6851572441a57e47e26c434bf", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T20:49:59.077Z", + "quantity": 130.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6517adf7d6d3dc8e156d08e3efbb421d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T20:54:59.703Z", + "quantity": 135.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ebe0f3cf4f349c9557df1e7add5d1dd8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T20:59:59.273Z", + "quantity": 144.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d72c9aad6b3a68555481840dce5f81a9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T21:04:59.888Z", + "quantity": 153.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e5150f10eb6274e69dc68c4ae2331c08", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T21:10:02.382Z", + "quantity": 155.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "73211db0fe1e9196644435c165217242", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T21:14:59.589Z", + "quantity": 163.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "266d2b1a8ae3b07ae59757d533e94814", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T21:20:00.15Z", + "quantity": 169.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "acc375e43ffac24673af4ae79a92f0f8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T21:25:00.09Z", + "quantity": 176.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c3c44dbd376e8ed70f119b04cef9102a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T21:30:00.744Z", + "quantity": 181.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8be9031774d655c74bf5c06afe459d48", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T21:35:00.09Z", + "quantity": 177.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9fe13dc97f94a30e24e8ef3584f57927", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T21:39:59.203Z", + "quantity": 183.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "dbf0fa9e19c76182c2088ab13109cf1b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T21:45:00.082Z", + "quantity": 185.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e9b5513a5daaf9d9fc4e3a16a0059728", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T21:45:00.082Z", + "quantity": 185.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c8f1e11b679af1e373dbe08e0980666b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T21:49:59.242Z", + "quantity": 176.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "83af71b2fbad5451e947b1d2ddc80d7f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T21:54:59.55Z", + "quantity": 176.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "78a106a797393b87dea672db81c4862e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T22:00:00.066Z", + "quantity": 184.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9d197dddd984761737779a3f2bfa1f71", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T22:04:59.834Z", + "quantity": 191.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "eb913c9b90b7221275714802235b8531", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T22:09:59.374Z", + "quantity": 195.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fc0efd90ec4b61938d8657f18c428482", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T22:15:00.25Z", + "quantity": 200.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "dd677656c045d66c18e91335825c17b4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T22:19:59.846Z", + "quantity": 203.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e8ba17508e1f9be622053cde056200c4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T22:24:59.451Z", + "quantity": 197.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cde55cc50ecece69db4a491788174205", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T22:29:59.713Z", + "quantity": 186.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7bebf6be071b722b3e55f24a90252b15", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T22:34:59.511Z", + "quantity": 183.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "13bd0dd25afb5adf6c36ce2264f269de", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T22:40:00.04Z", + "quantity": 183.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0d4492410ff78095601c2d801a509b39", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T22:44:59.474Z", + "quantity": 188.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3cda4d8ac1cbbf707861bdb1e78674a6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T22:50:00.015Z", + "quantity": 192.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9f6120b4995831fa4ab3377601148b0f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T22:55:00.209Z", + "quantity": 193.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "852b69ed1be86e7b57adb15f7301b21c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T22:59:59.352Z", + "quantity": 196.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ac7e81badf8d56cca0c0552139fa9410", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T23:05:00.077Z", + "quantity": 196.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "38d11b87e7cb5a8881b49c77b3ad1e0e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T23:10:00.85Z", + "quantity": 194.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2bd1d1c4bcfee23972ee162d949c786e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T23:14:59.997Z", + "quantity": 193.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c2f35998138a020a017545bd7df03c0d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T23:19:59.643Z", + "quantity": 195.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ea28833a8000c82852668a99d3ab7a55", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T23:25:00.302Z", + "quantity": 193.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "46a97d66da4e3b1a93f08e55d87adf54", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T23:29:59.471Z", + "quantity": 190.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7e84b6c033c674b7603600fa15debdd0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T23:34:59.741Z", + "quantity": 191.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5711e6e8370ae9022458ff0c2f42594b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T23:40:00.099Z", + "quantity": 189.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "258e41080444921ed939de897610e355", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T23:40:00.099Z", + "quantity": 189.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "38162d930e8a4cdbf67626f712c170b8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T23:44:59.447Z", + "quantity": 188.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8db6f3a0f1626bfd64c6f1a64591ff4e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T23:50:00.261Z", + "quantity": 180.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d9fcae6086b20b8f19257762d21e979d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T23:55:00.319Z", + "quantity": 170.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3dd96eb0962e3c94a93ea34da0de38b4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-16T23:59:59.913Z", + "quantity": 173.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "09898dc3128ac436a8733bc856bdad6e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T00:04:59.458Z", + "quantity": 167.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6200055949d6dc903461e4fe6090bd24", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T00:09:59.628Z", + "quantity": 158.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f29deee57d1372176cff6baf08ccaa42", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T00:14:59.667Z", + "quantity": 153.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "339d69858f02c32f9bab120a535214d6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T00:19:59.804Z", + "quantity": 150.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "75458aa1596d520f86a94adc809e609b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T00:25:00.06Z", + "quantity": 148.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "89fa215bc5daaa4d033304c27aa804f2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T00:30:00.293Z", + "quantity": 149.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "99bd5da84e5468814d5c8e1f0810a4f2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T00:35:00.701Z", + "quantity": 148.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7f2447962607509dcb658c0632c7f309", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T00:39:59.803Z", + "quantity": 143.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2a7ae241016da7edf4c8b0918294fd35", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T00:45:00.731Z", + "quantity": 140.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "35ce5b57a89d1d197ffe7f9852dd8a51", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T00:50:00.485Z", + "quantity": 142.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fffd70df27336bebc73176c332dba5c3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T00:55:00.025Z", + "quantity": 139.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "777a2a0269517de08106e8e49eff1182", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T01:00:01.052Z", + "quantity": 129.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "521938a62a2249c1af2d29908b9fdcd5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T01:05:00.374Z", + "quantity": 127.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4a03d6166dfb6c4e7a4880013f204194", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T01:09:59.866Z", + "quantity": 120.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7f1e535a8bc2bc793372ceb5df616481", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T01:15:01.476Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "249d47ca3123fac656bf95e3bc630629", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T01:20:00.465Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7c3e153574f885e954859398996a10c3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T01:25:00.221Z", + "quantity": 118.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7a87ac0b08965eb562d040485fa72f6c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T01:30:00.226Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "83424887bb6c27b664cf14f143a4d692", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T01:35:00.053Z", + "quantity": 120.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4598e1b55d6cb09ac146c7ad6fa6bae5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T01:39:59.687Z", + "quantity": 120.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cadc0db1b530f1059aa9912d209eb35e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T01:45:00.384Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "54da1d9e9a5cf7e0499a0cd6b5ae1b85", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T01:50:00.43Z", + "quantity": 118.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "650ccc2417e352c30754049f0084efa0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T01:55:00.41Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d7e0d88290a2790ada80f3992c4eb796", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T02:00:00.629Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e882d8752b64b798828f9139c0a4c21a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T02:05:00.095Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "28add4dd8431767b7abf5f9df3a02a97", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T02:09:59.761Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a01bcf20d08a163ada32be7f2585564b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T02:15:00.579Z", + "quantity": 121.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5fcd9bb44f9dd4c0b41737c06a7b0d1e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T02:19:59.907Z", + "quantity": 125.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4919dddabec80c924e2d89141eb4ec98", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T02:24:59.893Z", + "quantity": 129.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "36d1c11d0374d25ce0bd0965996a9256", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T02:30:00.292Z", + "quantity": 136.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "78033e55136e7f2aed94874ac77d88c0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T02:34:59.894Z", + "quantity": 145.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "89e3b4bd68f21520a5459a602bf4487b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T02:40:00.506Z", + "quantity": 148.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a1e9eea67e1ebc84d4e5d3ad5dcce73d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T02:45:00.733Z", + "quantity": 148.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ac64dd87ebceeba752b817169d50c942", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T02:49:59.83Z", + "quantity": 146.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "af7887b65a5f6a1587cdf54121842a90", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T02:55:00.046Z", + "quantity": 146.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5ee699730e8589fb060876b554d38091", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T02:59:59.841Z", + "quantity": 144.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d069bbc712266892f4d7224f7eeefa0b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T03:05:01.162Z", + "quantity": 143.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0c9f013823e2fca2a38be692a721c557", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T03:09:59.962Z", + "quantity": 146.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3ab11b7e22430a3858dd734e14e64511", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T03:15:00.192Z", + "quantity": 142.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "71fbb7d1b625292de44a20390fa4aaed", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T03:20:01.525Z", + "quantity": 140.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "50e8f7b46ba73b2abb8a9fdf92a0b8b8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T03:25:00.012Z", + "quantity": 139.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5e7dc105355f531ef7569b9b43942a8a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T03:30:00.333Z", + "quantity": 137.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2c676ce0a90e8ea53882fca38b24dc18", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T03:35:00.237Z", + "quantity": 136.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "88cc1faa5790c65fbf5c851e8ed8cbbe", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T03:40:00.76Z", + "quantity": 133.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ce47c5de10d64b4a7868f49b591234ca", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T03:40:00.76Z", + "quantity": 133.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b730f6c8c9a3493bb5ca4647e7f08889", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T03:45:00.186Z", + "quantity": 134.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d399c5d334612cd8c8b481513de0b2c7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T03:50:00.476Z", + "quantity": 136.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6e83bb9d2327914e0d7346c8dad868d3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T03:55:00.448Z", + "quantity": 131.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "334a61d5257ed7baa0a81f4daedf7854", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T04:00:00.763Z", + "quantity": 132.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7682b0fc3feec42376585983d753ea20", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T04:04:59.936Z", + "quantity": 133.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fd58a15874ae61796c61758d50f2c686", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T04:10:00.185Z", + "quantity": 134.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d67c5c03d625eaef05afce30f9afd4df", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T04:15:00.786Z", + "quantity": 136.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "aa392a83c43fdffab7723455795ddcf1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T04:20:00.848Z", + "quantity": 136.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "df0e668cd4f33ff7fcf7b00afc6bcee3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T04:25:00.13Z", + "quantity": 137.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1caf290dab1aeae3b563265d593fee5d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T04:29:59.936Z", + "quantity": 136.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "22b14226a261c4e590e5632e53c8c2ff", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T04:35:00.249Z", + "quantity": 134.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e0a1e95f7ead167f6e624a00a5983723", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T04:40:00.33Z", + "quantity": 136.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "778a0cc9eb029662a0f6db41849d06e2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T04:45:00.33Z", + "quantity": 135.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f15bdd4449d536cad0231af0a0a935a6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T04:50:00.897Z", + "quantity": 130.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2d1d1fdec8791f8362f98160b08d1bee", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T04:55:00.179Z", + "quantity": 126.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "19a6db584b0088fd130da40ce0e823fc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T05:00:00.468Z", + "quantity": 126.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d5a09648edbf4d320fd53e6afb3f34db", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T05:05:00.468Z", + "quantity": 127.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2f580dab3c3a7a9c9f506a6d28a31f64", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T05:10:01.249Z", + "quantity": 125.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f49b293fc40e909f6afd95d09fe0a625", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T05:15:01.249Z", + "quantity": 124.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1b0402c080c152665b71d33ac00ccb53", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T05:20:00.899Z", + "quantity": 123.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "60fc35afd50acdf8b19e2e4fd8f68768", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T05:25:01.791Z", + "quantity": 121.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6e8cf2157fc0fdbe381f6465fe00fdbd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T05:30:00.756Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a6b5feb2e96c0c1696089aca29aa30c8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T05:35:00.992Z", + "quantity": 124.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f0845727ac3d1494ceeab632614a7f75", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T05:40:00.759Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9fbaa3dbdcd6f886f1400ced06953c1c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T05:45:00.283Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9b44a3614d0b7be77c9b81b8095c664e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T05:50:00.579Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "18575b7c05049743ed34f481c0796f19", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T05:55:00.297Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c69bc2d5ee7443d1e7bd2d6b3ec96820", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T06:00:00.726Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "297a8de207f62014b76c01eb47b63e12", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T06:05:00.296Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e6c4874b6571d353a0c80a74678502a3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T06:10:00.788Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "79dd619c0b899ee8b4c97d07de16f9f5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T06:15:00.397Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1f84e73a124cba2d3ec89fc28835d24d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T06:20:01.141Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b1dd1181f084ef3624af2bc1df2e9ddc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T06:25:00.423Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7143b35adbf923caa3aff5dcd8534fba", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T06:30:00.296Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f92252b733a8c842e79eb8901fb421c4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T06:35:00.611Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3ea6dfbd1dfcce98d72906119ef04d94", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T06:40:00.462Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6f25e91d1ff4f1aa6a3939cbf1aff4be", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T06:45:00.766Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b9a31039b835356093b1bad7e96e3124", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T06:50:00.223Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c2d460546e3dd862a0bda1a2faeb3fb9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T06:55:00.711Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "495026dd9b1db181612d775352721aaf", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T07:00:01.056Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f744e46d7dae37a002b54a1987187f2d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T07:05:01.161Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0c3a7e200144c226008b1c2ed79c5a5c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T07:10:00.918Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7d56b1348008fe447fa20a54cd794215", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T07:15:00.448Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8ffcc62a61ca44d5a7265f07c5e301c3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T07:20:00.575Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8c0f19e9195b1e48395cfcc72cc340a1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T07:25:02.07Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3fdb4e1253a59da042f180051ee45e99", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T07:30:00.478Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3b12ec9b56e29980431a78c7c731b91d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T07:35:00.983Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b2ff8f39699125241686c6687534e3c1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T07:40:00.883Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4d301a982e10c0c32a6c73cc59d1436c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T07:40:00.883Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fd64fd60b429227777042dea20cd4145", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T07:45:00.594Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a1596de2a7e2b128be78caae06a83923", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T07:50:00.931Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "81dac2dbcc89fc0fc13cac4ec154c583", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T07:55:00.8Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8431fdf587d58cf14d3a9e0b244e31cb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T08:00:00.651Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1e9beba22c2f7b9ad8817d87699d77f1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T08:05:00.78Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5505dd618d354a9ff80609133125ca69", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T08:10:00.796Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f173941174fbb883dda0e4944b38ad5a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T08:15:01.145Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "800c7ef4e658aeaf256239ea1572e6ee", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T08:20:00.54Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "da19060aa74fcd49350d8fc80085c7a8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T08:25:00.956Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2190ab2d1e80f6a29680482be9911590", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T08:30:00.714Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "da4dd9293b7976e7ffd48aef297c66a4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T08:35:01.075Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9bdd48dbbcd2fc2de8a40952fbef3b1c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T08:40:01.051Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1c6a44543053828790c0e8dfe42622d3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T08:45:01.128Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ce61f4bf9528a291a32e3af3802ea0ee", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T08:50:00.517Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "31765a79332d96cdefe941320f39686e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T08:55:00.636Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "537c905906865d439df0bc8a2fe73645", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T09:00:00.576Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "258599f00d40fc8ed593ee2f921e1a4e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T09:05:01.263Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "24e3392794af245e15e55d5d0e5cff28", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T09:10:01.159Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "49a50dd54757c973b86a3a5f1e9c5355", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T09:15:01.069Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0ce1f452a4cd0c5887cafbb78509421e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T09:20:01.109Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "703cf6164a4cae3c48213a87f4eda67c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T09:25:01.906Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e050d94d61e742612e50fcc73f468818", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T09:30:00.528Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7ac3455a63c5df51cc891b5c35acd3ac", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T09:35:00.866Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "52625039190d1aa72dcabd41fbaaded1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T09:40:00.939Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5d3301a8bdc39002a68e523d2d6e362b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T09:40:00.939Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ef5a3db7c755ee197887f5336889b85a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T09:45:00.833Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0ce9f544b71503221e990c9af6d67c0b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T09:50:00.728Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "403a73f85b8435ee7b07df4b2dc7e490", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T09:55:00.593Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7ca14327095e2ad879053116133a2861", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T10:00:01.158Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2b36520c18fbdfad51ba4e6a37a272cc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T10:05:00.901Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a206f5539faca15d58cb19a59b815017", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T10:10:01.266Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8ebc28bc7d716cf94fabdea86fd90c2e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T10:15:01.571Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1f797a4b022a65f7f9b40dc2f4f53794", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T10:20:00.766Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "299a13feb13313185dbd43d8b92ddd76", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T10:25:01.385Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "97874b569ad9c644f762f01594f97141", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T10:30:01.072Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "dc330258bb5d2b69d2d5dbbf4adc226a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T10:35:01.194Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9e70b34bec499c000c2e21cd513cbe6d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T10:40:00.653Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "41dc0a725005dc95ae0c7e750e8f48f5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T10:45:00.934Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "22ed9e2cc870ef040824de731a03415d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T10:50:01.245Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "095224297f99ef903013989f6c1c5006", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T10:55:01.72Z", + "quantity": 91.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8112792800b16b658d80739cf5c81be4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T11:00:01.614Z", + "quantity": 91.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bb46dd8902996921ba8981e4aadcaddd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T11:05:00.843Z", + "quantity": 91.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e6b7b7a9cd60f9fa2d59d0e158d365f4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T11:10:00.723Z", + "quantity": 90.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8eeb99807570875b7a0c5babbfcfa938", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T11:15:00.998Z", + "quantity": 88.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c543b16412483c1bbc1049545777d61b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T11:20:01.63Z", + "quantity": 86.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3dbc2507bfe891ad7905657bfc5d5736", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T11:25:01.653Z", + "quantity": 85.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a0b5326c62fa3d775b5469a1cf34ccda", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T11:30:02.334Z", + "quantity": 83.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "69dd314bb433771372b4678e09f17da9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T11:35:00.881Z", + "quantity": 81.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "997a3dec36a3df9cf25be92ed527ae0f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T11:40:00.803Z", + "quantity": 79.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "52364cd7621bb55e9b875a9d251c3770", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T11:45:01.584Z", + "quantity": 83.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "938dd793619a01b5ef8896c8c60af318", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T11:50:01.111Z", + "quantity": 80.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c91b439f126d67c3c555f03818b78922", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T11:55:01.198Z", + "quantity": 81.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "03220cd9b1196758a95b10a8952c1a6c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T11:55:01.198Z", + "quantity": 81.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "87d093f9ea86cce3eb162bdaab092f4d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T12:00:01.605Z", + "quantity": 82.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "358dc994e1f4127bf887a292cafd767d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T12:05:01.768Z", + "quantity": 77.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4f075f1a5ac86182b6321ff54b56fda8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T12:10:01.194Z", + "quantity": 78.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ff657539f0008e37cd8b80f5a75d6816", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T12:15:01.353Z", + "quantity": 83.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "18eb66cf0f2cc45dc19e9dafb09c0b6e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T12:20:01.289Z", + "quantity": 75.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c1e59ac2aa8314cf2df634183bdfbdb8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T12:25:01.089Z", + "quantity": 72.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "aa16616c865b4e491e7f3585a28e3205", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T12:30:01.727Z", + "quantity": 73.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "58c447ca53c85b5e7e53e852e73551c8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T12:35:01.627Z", + "quantity": 73.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "634d14d5eadc59ecbcdabad00062a5b3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T12:40:01.807Z", + "quantity": 84.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5ef5502b5ada884f85e82c98f0c6a2f2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T12:45:01.27Z", + "quantity": 87.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7a2221a1cd1f19e4ccc08fa9019426df", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T12:50:01.563Z", + "quantity": 83.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "13494ce4fb7c4f97187840f8052f27db", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T12:55:01.494Z", + "quantity": 84.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0236aa1d435e0fa687816ccc6537cde4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T13:00:01.521Z", + "quantity": 85.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1240e727061e597d2a0fdd7b0ce7e6c5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T13:05:01.842Z", + "quantity": 90.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a8e33d8273f8e67e07f6abf455741459", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T13:10:01.69Z", + "quantity": 89.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8da9682407aaa2f19ac567435b9c9faf", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T13:15:01.69Z", + "quantity": 87.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9df8c0d63ac58d0927dc3c1c953ee795", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T13:20:01.823Z", + "quantity": 86.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d784ec150271cbb5bb72a780675930e6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T13:25:01.209Z", + "quantity": 84.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8c5f72c2589c916ade9009224506c4b0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T13:30:02.37Z", + "quantity": 85.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "53312b523f4d4383f55393333c7929a1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T13:35:01.522Z", + "quantity": 87.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1ef95055f3d4e24e05d3cad454686b07", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T13:40:01.031Z", + "quantity": 84.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b786e705815370f0a133bc50d30b0440", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T13:45:01.44Z", + "quantity": 84.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ec16822a48abd0822f0c5daca4695a83", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T13:50:01.26Z", + "quantity": 84.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "124cfa218a2de690ad560b1029c1cab6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T13:55:01.601Z", + "quantity": 84.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c7194ab840de5d33bf6d4aab55e74a50", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T13:55:01.601Z", + "quantity": 84.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f7d86785241cbb5a859fefff73f66c47", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T14:00:01.157Z", + "quantity": 87.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9fc40f3cc0e3009016f492a086565b1e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T14:05:01.198Z", + "quantity": 87.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bac13f99feb12d874df957447ad6e8de", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T14:10:02.02Z", + "quantity": 87.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "eef917d44f5646c4cc619d8eaec2cbce", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T14:15:01.804Z", + "quantity": 89.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "eff160668cfcc41f5af7b4cf492a0caa", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T14:20:01.843Z", + "quantity": 90.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f4da13b892656eafb7b92eb1bedb8f95", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T14:25:01.593Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d49346df3e0376b0fdc58ff75d48cbee", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T14:30:01.792Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "75be965a38916ef3406b82f7b7f715d3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T14:35:01.253Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cab6f4e75e9dcf85c56f42004491ee1b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T14:40:01.858Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "87a02a291939c693bf7d5e8a2a071f11", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T14:45:01.144Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8d33cdc318fb76a10c3e0ac4182fd049", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T14:50:01.26Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ea58c07a83737560afc2932261ab5f44", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T14:55:01.918Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2719af6ebc4b038a8c24da30c59277a4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T15:00:01.479Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a8d86581bc93a6aade34b2182a0cedb2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T15:05:01.337Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8a224ff94b0229a440c212be62946e29", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T15:10:01.329Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9cf3ad85c89fa6ff5b52f93485669a4f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T15:15:01.506Z", + "quantity": 91.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "eb8e5e68d5d0cc39985b2fa8d48b42e6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T15:20:01.987Z", + "quantity": 91.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "66e04506acb4d0c5bd9aa1fa7f923785", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T15:25:01.346Z", + "quantity": 91.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d3f6115515e1cba26a2a0fc3529df5ec", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T15:30:02.132Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bd76420d8e658e694f55a835d57c76ef", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T15:35:02.385Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9b5535cbb7c87e46ead0e673fedf2b4d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T15:40:01.976Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "24eb416d90856ef2c8156d56a8566e37", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T15:45:01.656Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "54ce77bd299c8151d2de1efadab07150", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T15:50:02.054Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "de102b9657d2ded11d0a09f9618c4000", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T15:55:01.904Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c1caf8e26db38050c706f4aaad3b58e1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T15:55:01.904Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0d04c03f35646b007fe45f87f7a16d4c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T16:00:01.805Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "38ff156700caddc94a0a1d046439bb4b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T16:05:01.434Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e53ec6abd97e0092bd9a4cf409bb41ab", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T16:10:02.326Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "41fb94cdc49994242c77c6646c583b30", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T16:15:02.156Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cb5058e215be5553c71a0f1df4fb1242", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T16:20:02.273Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "67a26a15ec11ebd2558e1e05a15ea2dd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T16:25:01.776Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f35d92ece8c6a7ab0c253f7e5861a413", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T16:30:02.139Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ea7fe64c52bd2c21c1e3350fbfa747a4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T16:35:01.785Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fab1186942d9647c2511ee482aa87fed", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T16:40:02.252Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a5c1367fbe1ce861d668ff980acd1854", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T16:45:01.564Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "40583587b70a41d9bf61715374f326e6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T16:50:02.042Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "70ab1c6cad8e972dea9659c0a299ff6d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T16:55:02.186Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "04accd94d2a08dc2d9dfb5f79662a01b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T17:00:01.782Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "36baba2e9d18dde12f63c84d7bf1a5a4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T17:05:02.361Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "32378dbcda933ee3b2544ae57bc03554", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T17:10:02.367Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e5d47f5f604dbce84a9bb4980be70528", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T17:15:01.666Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f7449144a13c9455e31a9543c89ae988", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T17:20:02.365Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "954ef84d12432b97b9cdf81a2055c3f2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T17:25:02.302Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f078b806df1f043dd2bed48099c8e95d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T17:30:01.612Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2b83ea72b1dbcc9876983f3a2e3090c2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T17:35:02.491Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "93f72ec1691a4f420686c45c9979839f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T17:40:03.361Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a1ee63b7d97c65ef8ddc28436a1dcde2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T17:45:02.205Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "437256dd6ca6e34cb223c5a00bdfed69", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T17:50:02.324Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "68274f0a45c6ebc73cbe65e4cc8b93af", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T17:55:01.543Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "aa95ca84e4fc2ba320665fd340424c1b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T18:00:01.626Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b22588bfde06542932ff5d17e5012a29", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T18:05:02.376Z", + "quantity": 135.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b10c546046fcb35e094b5b55983d58c3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T18:05:02.376Z", + "quantity": 135.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ac0587ddcf2f593f9227f6c2f89bee76", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T18:10:02.407Z", + "quantity": 137.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ee61575e6992af24da0cc21abde72da5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T18:15:02.342Z", + "quantity": 127.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6125586cf2a62dca5ea0d4fe0f8cd4c6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T18:20:01.809Z", + "quantity": 127.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "14e7f0655c18fe2a1f862d02481be71b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T18:25:02.178Z", + "quantity": 125.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "aabf22d39cf9ea095a48ffba926ca412", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T18:30:02.23Z", + "quantity": 118.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7b4a28638a77a462d2bcc056510ca788", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T18:35:01.731Z", + "quantity": 118.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8abb18f9ca8544c6aabf227543029fb5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T18:40:01.92Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4fff094afae7d6cb85fb673d1650a4ed", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T18:45:02.1Z", + "quantity": 123.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "dbfb33c6973091933801a42a5d676469", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T18:50:01.838Z", + "quantity": 127.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5d91e15c75c47225e2b0372635f407a1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T18:55:01.766Z", + "quantity": 128.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "057846b9a7cda12bad0d02bd24724f71", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T19:00:02.203Z", + "quantity": 131.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a8bdd1f003eacecb814638b485693236", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T19:05:02.848Z", + "quantity": 131.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cddd9c13e161a2f0bfafc316c7c88307", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T19:10:02.156Z", + "quantity": 143.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "050b0c418ea85bef784e385b0c56d2bd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T19:15:02.631Z", + "quantity": 135.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f36e278d4836ce4fd0f94419897e7eaf", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T19:20:02.174Z", + "quantity": 130.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "906148e00c32fbcb52d8941347bbd7bd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T19:25:02.293Z", + "quantity": 126.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "148d66319492b2f0e91bcab760b9f629", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T19:30:01.809Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6f4e630063d5276cd41084bc2ed56a63", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T19:35:02.337Z", + "quantity": 120.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "85780dd297ee5bdc63f92de8158e2f07", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T19:40:02.155Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "478600c10e1e9835dbf550235ff7e6c6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T19:45:03.246Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "452136c026a802bc0b42f43ab356d1b7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T19:50:02.643Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e2c40a2282b35939f2e1f752256a5fb8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T19:55:02.529Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "279b96cedefbd62be8b704920a9034ff", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T20:00:02.055Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0b904732e240de7a7d0c70a72aca2c02", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T20:00:02.055Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "009ce27e7245d210bc53d426854058a5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T20:05:02.365Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c449d390cc21e3f8004ee609cba9ee4e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T20:10:02.466Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0be63648df3ba8fd91ac188b394a8e1f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T20:15:01.947Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f015e48a5549d34d27b4f07a62424729", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T20:20:02.558Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ce4e06ffb953c8b6d2aa50101afda468", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T20:25:02.182Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6b75f7b3b361a9236cacf3cabf7575db", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T20:30:02.785Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3a791e315c400f49aba1459909e41656", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T20:35:02.573Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3ecd2ed2acd3375c6c79059f0c172cf4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T20:40:01.933Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b4788ce9fabc66f31ba231d441f1076d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T20:45:02.549Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7570b88d89236b619d6e4d8ad970dde0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T20:50:02.279Z", + "quantity": 120.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "73d0b242ba874549e72132653d2b88e6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T20:55:02.814Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2ff33271430b501d667f06b55c2ab555", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T21:00:02.329Z", + "quantity": 121.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "823a2c7d4426dac19b2ab995dfa70017", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T21:05:02.245Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "406fe080bf50c652ccdcb290ba8e0d06", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T21:10:02.655Z", + "quantity": 124.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fc17ada5827791651ed7cd18a99c9f9e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T21:15:02.237Z", + "quantity": 124.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "25175703a17d0c5ace68b343f8a619d0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T21:20:02.237Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c6974e6786f2baa9d7e562fbdcb60a82", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T21:25:02.455Z", + "quantity": 132.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6e77d441b1c3c17e87d54c63bc63a503", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T21:30:02.158Z", + "quantity": 128.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "51ba8929717132782afe7a09e0c55b10", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T21:35:03.233Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "28eb2f7b30c6733eaea6f5334bed394d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T21:40:02.738Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b2c3e6bd157a546bb87d2c893abbd18c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T21:45:03.433Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a7c057e1d8a3a43f782188fe31455363", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T21:50:02.767Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0a3d5224b29b9e28eb1203aedcfac3b2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T21:50:02.767Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d34b79f79fffc2714bea9e3d2be9ee69", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T21:55:02.378Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4a771ba3c02d3be95e65948c67ab0eed", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T22:00:02.888Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8a0c8671118b7f5733e623a2a3fd6d07", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T22:05:02.196Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ddac3ed4329d800f5c6236f96cb5ed6f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T22:10:02.651Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "21efe542111b7e233ef53745f8acf9c0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T22:15:02.101Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "38a9adad3419deec93c04c41b320c677", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T22:20:02.799Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ae60c2bcb06907efc82f489f18aa8b84", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T22:25:03.02Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f65f623a44bb31d8cf1f267a9e6cee1e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T22:30:02.532Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ebfcffdb37a3589e391156e79ea0c8c7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T22:35:02.609Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6d72820b3b0350eb2724902d7a6726b1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T22:40:02.971Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "265ca39f75377f4d936297d49e70ee16", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T22:45:03.089Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6b20b539d826c5aabaaef72c8854d469", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T22:50:02.487Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1fc33cc88ba9a6e353b4a7230cd1c53f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T22:55:02.506Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "47eb81c12182d26e15b839c5f1a93ed9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T23:00:02.303Z", + "quantity": 91.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0bfbcaf8e24e768f81111bff66d81e75", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T23:05:02.946Z", + "quantity": 91.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ce38adecb3b5ae08771591b0b5c8d7c7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T23:10:03.021Z", + "quantity": 83.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "68791ef872cf37729639dd7c8febd2d9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T23:15:02.588Z", + "quantity": 76.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "35c5b67f4ca82b2681c7ced0f81027be", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T23:20:02.223Z", + "quantity": 80.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4714d6aa26d8e780b3945a201b0a3394", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T23:25:02.274Z", + "quantity": 87.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "355a9a274668e30ab8691defbc456cce", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T23:30:02.421Z", + "quantity": 87.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "440db77f2ab483adf4a21e06f2c39f14", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T23:35:02.613Z", + "quantity": 84.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "718aabebc35174424a8f06b2fd98ab8a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T23:35:02.613Z", + "quantity": 84.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "dd80d04a4a471c2a29c4747010214cd2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T23:40:02.235Z", + "quantity": 86.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "aa3be49562c9d390d3b186acbf7d27b0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T23:45:03.058Z", + "quantity": 87.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "53f30e46f303e15d957e0761f2c0962e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T23:50:04.331Z", + "quantity": 91.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3f243fbf322ca6b68c855299d6d1596b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-17T23:55:03.109Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8bbb24ca220f607b7a0276b44851eddd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T00:00:02.954Z", + "quantity": 87.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fb1ebde721f269f44aade13350da3716", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T00:05:02.303Z", + "quantity": 86.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fd3ff979ef9f0582f617dc0d2455fefa", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T00:10:02.989Z", + "quantity": 89.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "354dc926ed1ff38a17a7393a8811271f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T00:15:02.986Z", + "quantity": 81.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cbae2ae792d8b89043e8b300dec631b2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T00:20:03.085Z", + "quantity": 81.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ceb651383d88899e62d207030f1f0e99", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T00:25:02.607Z", + "quantity": 79.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3eb92e9a07165bdc5841f7803b1bad2e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T00:30:03.257Z", + "quantity": 77.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a632bc3d8f21064130002ce0c2d9f73d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T00:35:02.84Z", + "quantity": 75.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "eba2257e36295828c6a1613d4ab36f35", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T00:40:02.811Z", + "quantity": 74.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "557f081bf6ceae715c65a20a3862614c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T00:45:03.201Z", + "quantity": 71.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c4062b3279a296b7986d9b93e2687013", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T00:50:02.4Z", + "quantity": 70.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d576dc5d639ec974e15b1a061d1722b0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T00:55:03.195Z", + "quantity": 77.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e95a5c0b541f7fcf187a4198b193bcb3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T01:00:02.678Z", + "quantity": 75.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a8ff36e1a93fc9c9ea521b01e8bf116a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T01:05:03.089Z", + "quantity": 77.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8ed2f0664bef31b86e57e16d0a0f2e89", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T01:10:03.156Z", + "quantity": 82.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6eac3443bfbaa547aef8620755ba5d73", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T01:15:02.67Z", + "quantity": 87.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "466224721a5e624dc457a2d2f2d4883c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T01:15:06.67Z", + "quantity": 71.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "44be70b75ed2650d3fe09a7020ddca10", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T01:20:02.528Z", + "quantity": 77.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bd5cff003711d0959aad774a0f9fd5b2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T01:25:02.998Z", + "quantity": 75.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "77a1c495d4a4a5ccb2762d409e5df8f2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T01:25:02.998Z", + "quantity": 75.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a55e023e6ccf2710d2a2fe45bbcc1709", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T01:30:02.848Z", + "quantity": 78.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8136baa9b85e3dd5873dcd1bc25f6daa", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T01:35:02.864Z", + "quantity": 79.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a7c4373416ce58595ac0220d1b5c8ff3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T01:40:02.864Z", + "quantity": 86.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b9a7e0e7cc1454e3bee1ad56470f5158", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T01:45:03.075Z", + "quantity": 90.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0e4cd096eb9c0b12302cec768e4582b0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T01:50:05.223Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "954fa655af63f0d0811abd14f7381da9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T01:55:02.77Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b55dbf3fdf09db6d6873f3d9138c7fec", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T02:00:03.096Z", + "quantity": 91.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "25ef3f3e5d588e46a7f490c91232e45d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T02:05:02.997Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2df722ab8277cf6e97f0b059e83c7cde", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T02:10:03.021Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b3146e00bb4161e6bfa1ef760702213d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T02:15:03.381Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "169b581f594374f95a4f284b69edc921", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T02:20:02.799Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d15eac03b277780dc0c138ae7e7e181e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T02:25:03.517Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "78058cad682477624a625130eb7d9991", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T02:30:02.989Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8f5564891ccde3d39c69f628b1458793", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T02:35:03.009Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "02eb33eafa8ba5bbe82de87749305d61", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T02:40:02.909Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "90bfea6c7edd21962cb52bb754a7d3fd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T02:45:03.383Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "619265c04b606f3369be38ce82d5dfd2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T02:50:03.473Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "00925ff543efd5b526fb324d5f0d0caa", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T02:55:03.428Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "05fcf3cd2f3dc5580343f43556614b11", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T03:00:02.623Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bd93c82f21982496f53c78415f94654c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T03:05:03.294Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6d4661af0ba9176d4bed15f87816541c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T03:10:03.309Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d1eaf3bf4e8ed2690cb2415966e59233", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T03:15:03.282Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3696c5b86150fba04c51057b0c167c1b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T03:20:03.545Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b21ef89fc49c7b9fd7870ce457b9130b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T03:25:03.257Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3ca13d0b6fcd058c61cd5ec2addead31", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T03:25:03.257Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f453a1a06ec6cd15a0eff02d9bd43bea", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T03:30:03.022Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1e1f0cdce22d3e076519c278ce59dc8f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T03:35:02.653Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "086e2d0ddb99231d5c7889ee0b147e21", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T03:40:03.361Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1b6c336cd21e6db7a879a6ecc502a382", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T03:45:02.923Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b00c2325495b57fab1897d23236937aa", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T03:45:06.923Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "07030e7909f920b5f2cd799a02d1d89e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T03:50:04.772Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "502616541ec71fc398959eabd7f9c3d7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T03:55:03.356Z", + "quantity": 91.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b7cb6033d36a045ddf3eae812d5ad0d2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T04:00:02.929Z", + "quantity": 90.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b0835a00d2a1b5dfbac163656ec8664c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T04:05:03.146Z", + "quantity": 88.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "402594e19bdd0a10ac4ddfeeb8ef8a33", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T04:10:02.988Z", + "quantity": 87.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7e8217687284b40d65181e386ac4091e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T04:15:02.908Z", + "quantity": 84.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d61eebdac73bc5a2a0468cc5ba4ff746", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T04:20:03.624Z", + "quantity": 83.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2f23cdc8a73570bdf4466603b6fdcc7f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T04:25:03.539Z", + "quantity": 82.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b67ed5927c86231beddba7366ef3f701", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T04:30:03.886Z", + "quantity": 84.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c1a3839927f741754c859028cf93b478", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T04:35:03.886Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7b9ed4c8ae83c9dc0c24ab172286aa89", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T04:40:03.886Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "133bbeff9b5b4897630f9ee40ad9beea", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T04:45:03.2Z", + "quantity": 90.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8f996c305132934f27ad6fecf8121213", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T04:50:03.311Z", + "quantity": 91.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "dd28c3a71fe46aeeb06a3b7e123fd20a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T04:55:02.93Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9abc42972be66f5cf8279b02ad7011bc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T05:00:03.304Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f036d6c3b56e31e2e63ccd63e476cf44", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T05:05:03.482Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "909632e25056758462b9b13cbfd2d788", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T05:10:03.7Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "aab3182e40a07bbc46f9614173da5e7f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T05:15:03.505Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3173db2c86f56a994c79a92bed61a605", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T05:20:03.731Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b1026eb184862ceb5c5d1be232d1ad4c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T05:25:03.684Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "85d727fef58a7c1d0c8f18af954c68c9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T05:30:03.818Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fd103261ac5104a99911db7a8bb467a3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T05:30:03.818Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7b823feaf26c0480ef26bc79a15a9a5d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T05:35:03.35Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "80c1812aeef0ca43049dae48ebca860c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T05:40:03.664Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "99188754113533fd2e6dd27103f17844", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T05:45:03.526Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "40ae7f75b8e09811bd21b951097165fd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T05:50:03.078Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "086aa14dad817fc2271f6af0dfecd053", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T05:55:04.255Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "43c58bcccf058321802278f2973ff7ba", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T06:00:03.81Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "519a641561fc38324f16dce160aa11b4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T06:05:03.353Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bcd41845227543c5082165ea4ef53b86", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T06:10:03.533Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "faea7edb6b20050e529f549270dfe2f8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T06:15:03.628Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2ddaf857018e63028374855d77d0c850", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T06:20:03.589Z", + "quantity": 118.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d6e437b305a3c359352f85a2775a887d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T06:25:03.807Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8f3640a58baa01121cbd0d0e796b49eb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T06:30:02.992Z", + "quantity": 118.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6aa7fff178e1e4c336d2178a6e326a48", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T06:35:03.733Z", + "quantity": 118.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9bc009f4c8a44b8b60116b3470e6cbd9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T06:40:03.809Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4857b3a515e9c03410dd421e473ef773", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T06:45:03.928Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "755183a0bf1087ccf38e6b038d8ea0be", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T06:50:03.423Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "569973e03de41b9c3a64d686749d3c9b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T06:55:03.477Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cbb2fb9a90da80c8ee6b90228c4247c0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T07:00:03.791Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f4cfe23e652e5ef8c960301f82b65d31", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T07:05:03.853Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b634b3886269c526b42869aef703a06d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T07:10:03.773Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "26bde360ade6dea6203a951f3ed543c7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T07:15:03.644Z", + "quantity": 121.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3f3504c935cd5a10ae69d9a1eb86969f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T07:20:03.589Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "89eb11c363f187ebf85f387b064994fe", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T07:25:03.855Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6b743dcdbea6865f0a2de581dd8ee17a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T07:30:03.743Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ad3914acce150a6fbef3b71eab226fb1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T07:35:03.955Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "44ab1534dc97e12efad9ec00401880dc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T07:40:03.808Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e30ee16c0cde53da28fb5f2ee7ac3f8d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T07:45:03.984Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ae4d57138ec118710512e7bb8173c595", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T07:50:03.68Z", + "quantity": 123.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "11fa4d0043c5935467432f28aca1b83a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T07:55:03.875Z", + "quantity": 123.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ca0f4640c01f0c1c7585fd13821eebbe", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T08:00:04.58Z", + "quantity": 123.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7c744111fd7ebd30db17cb42c1c39f6c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T08:05:03.116Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a942aafcecf583b29aa45d150329b7ff", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T08:10:03.78Z", + "quantity": 123.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e710cff11489438fd91f6c94995e41dc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T08:15:04.029Z", + "quantity": 118.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "722b3dccae6c1277c6d955578a5443fe", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T08:20:03.276Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "46ad880bf9a7e0bbe32fddeeab43535a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T08:25:03.956Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "25f6c781ff9031aea0363c7388078a9d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T08:30:03.799Z", + "quantity": 125.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fa4ac205a13ea89da02bfdad32d9dec1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T08:35:04.076Z", + "quantity": 120.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1db7f1f0914d81beae83f32a33e66460", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T08:40:03.82Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "113765aa722eda9162fd691ef46d6a5f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T08:45:03.265Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "819483674af038682398a3cee4742eab", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T08:50:03.556Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a592825b7db9a4be32aee8ab5e34c204", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T08:55:03.235Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c9d72bc5a679aaee13f10ff758217e3a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T09:00:03.796Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "896e2ba1687ae84cd29de2d638f64526", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T09:05:03.474Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6a84fb85cc3c2eefd43dd4eda5fc707c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T09:10:03.418Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2920c45679c5475ed66821b229b46c8e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T09:15:04.213Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7240dc873e4a3eaa3f96d62fe057225e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T09:20:03.249Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "53e953a7cabf1f3b87cf41f7b785197c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T09:25:03.554Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "37ce50939fd187cb326eb0f3dee2d044", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T09:30:03.509Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8c1d6f58faa25fb6f8e953fd3ece8024", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T09:35:03.772Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3adcaf7566f7f2866b45c453ee8612c1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T09:40:03.8Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a5c825968844531fc081ebca3741f1e8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T09:45:03.283Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "330263de1b32fd18fb0835411f4c2b0b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T09:50:03.505Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e47686fec9949453e214398dfef7a169", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T09:55:04.146Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "81cd09c8ab1c0dee88c8366660dc4da6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T10:00:04.298Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c222c3ff576cfa0799afbe4a388f6dfe", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T10:05:04.966Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "82ee4af03c4de67a92e83cc1ff667a4a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T10:10:04.08Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "64eaf714ccd292cda1094699f83ec718", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T10:15:03.708Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8c4f285b04578a5976409ac94e0ba7d3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T10:20:03.499Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "27f76a7fb962f8ad45cf0fd0f482eb70", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T10:25:04.066Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "dee4d564ec6fd393dabc7580a11a511f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T10:30:04.149Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d180ca6bfd1abebeb3e339c24c3a1202", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T10:35:03.479Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fbcd5b75af8c091eb9cf0d320d766a00", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T10:40:03.567Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3df6f489d102f4d28fb5c9315fda20a8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T10:45:04.243Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "769bae1f18c71647aa9722d3b4d04942", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T10:50:03.516Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "dd2b08419790412fb46a7a2cf65a525a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T10:55:04.211Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fb025faf698ba083756b48d2dc2d1714", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T11:00:04.363Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2db886b508adfffef53b1be160170b95", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T11:05:04.272Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3d290e800311a3bde64b41e0dc09d99f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T11:10:04.399Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f6c5d79990ee4b70cd776ffb96b0b189", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T11:15:03.596Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b9b6ae99cf1d5a6f2747a37241783fd4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T11:20:03.763Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cec250ddd966a3ed079c08d2e02ca899", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T11:25:04.431Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d5480725354979467cb2f104d590b9ce", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T11:30:03.85Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b2a26cb656d3b0864602443dbf34a703", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T11:35:04.436Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ba188abfbd5ffac6a5520669b32587de", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T11:35:04.436Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "891fa227ae2eab294d051445e95277dc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T11:40:04.365Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "13961e20515271884954cce0860e278a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T11:45:04.3Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5c872464c5ebde2c8608c87e429bd709", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T11:50:03.78Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "085e1fe6b38c1475a8ab1e40dd9a8d69", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T11:55:04.332Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "688b2f0626255599a0dc25c3929b86ef", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T12:00:04.008Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4dbffa8558e55e3bd533f728bb970ac1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T12:05:05.639Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c938db21b39f502f1c6f49d7c31c111c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T12:10:03.715Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "925a65e63c822645daa6a6a3a5ba394e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T12:15:03.569Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c7ca343753489d65ade7aa916c05fbba", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T12:20:04.369Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a1711eed9c9b128e83cee9fa1d5350bf", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T12:25:04.389Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "967b7ee4d6c8f9c0cc6e0583a79c3c9e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T12:30:03.832Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cec363928a919cb6974ddfc72d243dd0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T12:35:04.519Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cda005d8a6c45cd2304e412170289b29", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T12:40:04.574Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1a48967fa5478e872e9c10492968d656", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T12:45:03.789Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "41fb8f43bdf8a8c75c2bd10cce3c8ea2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T12:50:04.091Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "858bc870f9bae6deca4275d1c71bb051", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T12:55:04.565Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "615a1c729e50ae5fbd0b5aff2387edc4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T13:00:03.963Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8acb5a5627915e21dd38591b8b3536f0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T13:05:04.064Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b8516d3229a846503b42cafcaecad32d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T13:10:03.908Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "dea2ac1f59720892c4cce6feb8c4e4cc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T13:15:04.523Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bc399a55121e31034b333322d47fd963", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T13:20:03.923Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b419683b913ae86cf6475da6a3056cb5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T13:25:03.851Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "88fe36f2c7eb40196f256d756f245803", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T13:30:04.638Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3ef5b1edcc42d09f5f2e429197838d30", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T13:35:04.315Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0f5f34e35fcc17c012b4f09a1164e506", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T13:35:04.315Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "baa4f600a63cf398e957a34894543cfe", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T13:40:04.46Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7819cae2d2aeace220ae6074836993ac", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T13:45:04.334Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cd1ea1cdb63c1b144e817201af062712", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T13:50:04.328Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d0ed82a45dd8544fd6c59c3f6fb2f6ff", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T13:55:03.924Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3af260276ea7ea2a1a7c0496c78080e1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T14:00:04.763Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7563be3a99aa0b621b87fa919aceee11", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T14:05:04.528Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1535e4b5931dd575300ffcf66152320f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T14:10:05.077Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "25c0095317e9c8216126e4d86f2d1dc9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T14:15:04.191Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c29195b3a1485a38172851d573d120e0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T14:20:04.361Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "220c17b1f24ec09573780d81995ff143", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T14:25:04.795Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0ff4f3a1c763f20473a169e465097dbc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T14:30:03.95Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b36e78a762ad957d21d6a00c82223987", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T14:35:04.327Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c55e380d3ae07340e7865a39236597a1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T14:40:04.79Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7c1514915a883490c8173997c6d3ff94", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T14:45:04.083Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1ed8311f2182d10581227ba592d7029d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T14:50:04.691Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "44efef093a71d8bd637bf971e80aa940", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T14:55:04.135Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "00e993b5c990538c88518251be7f31ed", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T15:00:04.121Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0f84f8b478aa51d1f38c0dcdb51787fa", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T15:05:04.13Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "915c786931f2e5a445efe29db3280c8d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T15:10:04.537Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6f142c70c525cd95bb34bf650c981864", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T15:15:04.259Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "12dd7f8c4376e7e86f32ba88f6568f06", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T15:20:04.924Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d4d9c47a00863faf38d642e0d3042777", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T15:25:04.161Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ec357ed952ad89aaf04266f4e7a0e755", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T15:30:04.049Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1b6d6d3123cc353ef38c864d59b83072", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T15:30:04.049Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d4fa245cf76b780c8e0b319cab926f17", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T15:35:04.353Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "407e37183a4e9cc11e7919aed06120c3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T15:40:04.94Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f3f894820fccf01a2cf84ade26032f58", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T15:45:04.218Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f90943cea0d97a0fad134f40c9c39f4d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T15:50:04.344Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "aa44e818a5e8fd02d4ef1b26db96fbbf", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T15:55:04.023Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8081c9aead1c7723951a1e6b1552a9e6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T16:00:04.914Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9bac31bda2ca3795f07a151e5c7590bd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T16:05:04.341Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e706d610b108d44d2df3bee00a3aa274", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T16:10:04.855Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "efedf5d1b59a03a0b1b3328aee749b26", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T16:15:05.743Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e259215678f64f5148db05eed9e00412", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T16:20:04.959Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "34d639e657aa7df3f485f919eb78d89e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T16:25:04.469Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fa6d9dc59e6054756cd625bc08bc6a27", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T16:30:04.543Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9b483f84b98e4d3a7f4913da2259c50e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T16:35:04.067Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9778a87cafbd91dd153156c1574e5e87", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T16:40:04.924Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "46cafa3bdd2a4681b46f814707c8c354", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T16:45:04.499Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6e236eb0c01a16b519306f92d44d038d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T16:50:04.31Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "20ea76ffeba812c5b9fd4c7b44225916", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T16:55:04.726Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "be5cf0e51d1d7cf1228c6ae7fb70fa45", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T17:00:05.022Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8950cd4b6108c4b66443a5254a8a6baf", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T17:05:04.595Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f9c4cfdbeee4fd75ade9280356694006", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T17:10:04.595Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "39353bf53254c8f5f0772eea29d6fb64", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T17:15:05.026Z", + "quantity": 118.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3dcf2a3db26f0841aa8348846dd55a1f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T17:15:05.026Z", + "quantity": 118.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "31ac6fc7cf5e0deb8f52308a2f893641", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T17:20:04.975Z", + "quantity": 125.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "97e2abd362a255d38a78a4d734bf8533", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T17:25:04.992Z", + "quantity": 126.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "03f25665d876f002df8c707c2091d2b9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T17:30:04.353Z", + "quantity": 131.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a29d0e97184ec5ad6d7bde9f0ffcec65", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T17:35:04.571Z", + "quantity": 128.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "dee0bfc39f39a8df095d01ab84e97ece", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T17:40:04.899Z", + "quantity": 130.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b02ba9c8df198ddb04b7fcf98d6d22d0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T17:45:04.296Z", + "quantity": 134.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d05eca5dbc4fcb0d1d3186eb5f4b8ff1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T17:50:04.343Z", + "quantity": 138.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fdc96f42a6247a487afd403596e9d5f1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T17:55:04.5Z", + "quantity": 149.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "954cde6d384a8a1c94f52e294f04f20d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T18:00:05.075Z", + "quantity": 153.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "39166258b2aaf8125f09be8d93e14316", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T18:05:04.713Z", + "quantity": 154.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "62a40961a938d83bfd835afcab9d8ae1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T18:10:04.758Z", + "quantity": 156.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5f45f1228a97da006e4506332b9e015c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T18:15:05.161Z", + "quantity": 161.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "842d397e31e77e5d6d52c8fb600bbbca", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T18:20:06.295Z", + "quantity": 167.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cc1c677cdd43a5c581ef0932d82ae273", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T18:25:04.882Z", + "quantity": 169.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "21f39bdd78627d1dcf4cdd3026eef0c5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T18:30:04.969Z", + "quantity": 156.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1de907954b101156177ac748f6a71a97", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T18:35:04.389Z", + "quantity": 151.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a90be2a22c25cf370d0b0e4cf3b62119", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T18:40:04.361Z", + "quantity": 149.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "199307ccd19f2e517de4e0b7bf429f6c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T18:45:05.245Z", + "quantity": 145.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a28b9aa51c548c64e76645e7711b2be6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T18:50:05.236Z", + "quantity": 147.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "66a37d0dbfbb3868ffe25c69d7988030", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T18:55:04.624Z", + "quantity": 144.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "70b57a26d33cd8cf7ea97552583a97e4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T19:00:05.18Z", + "quantity": 142.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "06158c9fd4cdda03260e316168315100", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T19:05:04.358Z", + "quantity": 140.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "dbbf6eae5362f32e155a2e18f1245f6a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T19:10:04.56Z", + "quantity": 142.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c8a3fe2409e03741ce323333917891e3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T19:15:04.457Z", + "quantity": 142.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1971aa85de313b1c7efc6413a06aecaa", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T19:15:04.457Z", + "quantity": 142.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c7d01c10339560dcc6fdb3a347bb44e4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T19:20:05.136Z", + "quantity": 140.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9c6da896acc48b514317461dbb7ca504", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T19:25:04.644Z", + "quantity": 138.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "06ea3bb00943b582ed66618c0df73a3f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T19:30:04.629Z", + "quantity": 136.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "546912c0a52842d2a46c32665780f5c5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T19:35:05.316Z", + "quantity": 128.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a634855a37677ddd3252c4c48669137f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T19:40:04.515Z", + "quantity": 124.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0280ab5637a820e423134dadae95d8ee", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T19:45:05.26Z", + "quantity": 129.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d0df35c9b4033c19ce094d62b3e96e83", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T19:50:05.341Z", + "quantity": 125.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ebaae24e64ae38d6491a4b5b5cb51f47", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T19:55:05.357Z", + "quantity": 124.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5ef8d9d1048b15a1327b06c711422475", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T20:00:05.796Z", + "quantity": 128.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f7817dd7d3efda1488b0afc2df90219e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T20:05:05.822Z", + "quantity": 128.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6c7ad0c1c50ed5e44bc1a7ad93d67f01", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T20:10:04.811Z", + "quantity": 130.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8dcfca8395e7ed5fcf8db0c544b37615", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T20:15:06.027Z", + "quantity": 138.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b49c5e42083a22ca214c8ef17ca9283f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T20:20:13.06Z", + "quantity": 143.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "239850146db4edc766a39b2e47ebd2e5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T20:25:09.401Z", + "quantity": 150.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5411e0febf6e3d84452b1a6f20310f6f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T20:30:05.502Z", + "quantity": 163.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bf7235dade8f1203c3bf7baa8546ec87", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T20:35:04.884Z", + "quantity": 170.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c09849fa7baa387baf518a6e56436bcb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T20:40:07.596Z", + "quantity": 173.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2ed6173b46fe25f8d37fff55609d0924", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T20:45:06.105Z", + "quantity": 183.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f96869024e46b45e2abf19ed3057af8a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T20:50:05.499Z", + "quantity": 199.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8bb8205e091658bcb4ae4722b73c39d7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T20:55:06.825Z", + "quantity": 199.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "932473f4ce4fde9978ec28841fe5dee5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T21:00:06.825Z", + "quantity": 195.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "74bac97850de5a701199c357ffbfdb7d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T21:05:06.825Z", + "quantity": 200.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1e6b9d78371cfeda5fe3317ae7984242", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T21:10:06.825Z", + "quantity": 203.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "968158ca56a01fed546dcad0ab93df75", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T21:15:04.964Z", + "quantity": 194.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6f69b03e8ab9ad0c0731f19d5bbf9dd2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T21:20:05.339Z", + "quantity": 186.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "995adf3bd19c46755591a001d005728e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T21:25:04.897Z", + "quantity": 180.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "436c9ed2dd6d7286f9b0103cf2c4d42e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T21:30:05.674Z", + "quantity": 186.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c821d1e0bc3d5b3925d9de2864b6f4c0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T21:30:05.674Z", + "quantity": 186.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "13293fd63172e192641f8d3a886e179c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T21:35:05.086Z", + "quantity": 187.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "182b30642e258a16550539b50eda8230", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T21:40:05.736Z", + "quantity": 191.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "62d62e0f36d6d9a671f6f417bf821621", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T21:45:05.14Z", + "quantity": 191.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cd6f2c0642dbe8ec175abd4defc3292b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T21:50:05.326Z", + "quantity": 193.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a7659c9d168783df695a79a8f67b0389", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T21:55:05.46Z", + "quantity": 197.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b8a34876f70791d404f01e3e9f6d6276", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T22:00:05.73Z", + "quantity": 197.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "05eb347298dcf45c59881721e0ae5e1e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T22:05:06.786Z", + "quantity": 195.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6563e167a9b61e2a83b5d8626d99ec28", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T22:10:05.305Z", + "quantity": 198.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b7e1dbc3be52c93e53520ca450a8359e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T22:15:05.565Z", + "quantity": 195.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c5e8aefbf64364a115df83a56074ccc0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T22:20:05.059Z", + "quantity": 192.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "56099a4b45753a84a0e4fb57b560ca28", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T22:25:04.827Z", + "quantity": 189.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "490dc5d1830a4c35d599bcd58e74451a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T22:30:08.142Z", + "quantity": 188.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "37be6ef8e251d70afd182c0820c5072d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T22:35:05.396Z", + "quantity": 187.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d25cf8bd24ec5fa8cbf944b9b93606fe", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T22:40:05.114Z", + "quantity": 182.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "dbe16d17e4bf9b4b8b15da86d5ba7b05", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T22:45:05.34Z", + "quantity": 181.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ceccc1a205a8b6251f092b77cee9d3f0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T22:50:05.446Z", + "quantity": 177.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "654c1c4d77866ad19e6f82ee9b8707a6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T22:55:05.278Z", + "quantity": 174.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d505576bd7801db354efb44cc5d44058", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T23:00:05.253Z", + "quantity": 176.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "97783482e602f529ce0deb4e0ccfaae0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T23:05:05.489Z", + "quantity": 168.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1bb75bfc3eae6bf5d3cfb6e089e2410a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T23:10:05.811Z", + "quantity": 157.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "740af45f1671766171bee67474d68c3c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T23:15:04.899Z", + "quantity": 153.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "16ca61f9fc23daaf0a82a141a87ce84e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T23:20:04.956Z", + "quantity": 146.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "121b4e1a1333f85b8a4b935ec3e089c6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T23:25:05.353Z", + "quantity": 144.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "87e302d902ce82e422d4e5c797c9eea8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T23:30:05.074Z", + "quantity": 142.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f2cbd2c55c58961dceaa0e658e73f3d1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T23:30:05.074Z", + "quantity": 142.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7526908bb7b57faca2acd3562461e0ad", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T23:35:05.038Z", + "quantity": 138.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fec0ddcab62dbeb5d517b308d770de9b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T23:40:06.759Z", + "quantity": 138.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "65a42e2da2d98706264329605bf36d7c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T23:45:05.787Z", + "quantity": 136.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "caeb1c4f52fd3492160da8e18abe1f24", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T23:50:05.728Z", + "quantity": 132.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9ca659eb6580bd3850a826810c2b15c1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-18T23:55:05.675Z", + "quantity": 128.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "df7d6815fca680d7537b554b557ec601", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T00:00:05.784Z", + "quantity": 127.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "900d005bcdcb531e5eeac16fcbcf9fec", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T00:05:05.72Z", + "quantity": 120.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3d20f0765fcc8e415f32b6bb2eaf3b43", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T00:10:05.407Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "293007cb8e6ed9cbe2da6ac61f37620c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T00:15:05.803Z", + "quantity": 121.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3316413ee26a095be5aa9427f246b087", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T00:20:05.667Z", + "quantity": 121.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d0aff87cd2fc5e2278f8af490951dffd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T00:25:05.32Z", + "quantity": 125.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "dae44026ec8dfc391e2be052645c2464", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T00:30:06.713Z", + "quantity": 124.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d329b69db88d8d8f9ae2d2a634312e81", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T00:35:05.334Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d12b0edcd73fae834e5a637f7d48c4f7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T00:40:05.73Z", + "quantity": 124.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2ff9e791f3d8aa2264abf75bef13ba96", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T00:45:05.243Z", + "quantity": 126.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8009ceda193ce06b8ef337da71c472a4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T00:50:05.567Z", + "quantity": 127.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "da86fe544c170d53468b239c420a03f5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T00:55:05.777Z", + "quantity": 126.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7e0215509fd976c2eb0acfd8e90ff29b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T01:00:05.468Z", + "quantity": 125.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "58875953faf2482130f2ea9e40516d91", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T01:05:05.521Z", + "quantity": 127.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e50bd9bff56dc6cdb80a0850e07dd356", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T01:10:05.582Z", + "quantity": 126.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fdc2165ab049fb60020d77e11dcc6c3b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T01:15:05.444Z", + "quantity": 126.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "dca95806d98c5d1b09e42f0f7b133d5b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T01:20:05.357Z", + "quantity": 125.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "91bf82b089bbd75f364c492d7e04ea73", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T01:20:05.357Z", + "quantity": 125.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "71495cfad60f1c793acc4d56febded69", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T01:25:05.696Z", + "quantity": 127.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "16146a1c55fc8eada09508e7897aefa3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T01:30:05.929Z", + "quantity": 127.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5af9c94cebb78b6ded274c7ae1e0a1d7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T01:35:05.601Z", + "quantity": 123.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6220ab501672a3243ee44f5370f8c965", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T01:40:05.493Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8b85063b56e7e902a973bbb07d809e65", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T01:45:05.672Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e2987fc34b3457bab6bfd9a553dff59b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T01:50:05.794Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "735c17198a7baf7d64389ed4f2e4e0b6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T01:55:05.611Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "37ef1f27c312e0460b9c121888472a9b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T02:00:05.876Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "19f2610244502a97d09782cb95ec3131", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T02:05:05.264Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2b3364d4652364b0403c63f78fde6e82", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T02:10:06.351Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f6ea51da822c7e0cc1de5beded138670", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T02:15:06.149Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "dc4a506a5f6b581d7036abe5bc0b914c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T02:20:05.24Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9245be949cbb9f66c5c9d97f2f896920", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T02:25:05.922Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b39fc5881254c5bb4f44f47e7a7ac009", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T02:30:05.391Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ff3ae962b3500b86cf6bdaa61581aa45", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T02:35:07.741Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "de8f681d83ef4b72296be2ac0e1c8376", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T02:40:05.509Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "99f79ee149fe4380b9b6c0d89eff4d71", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T02:45:06.2Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "aa4d02f3564512e51046327d79ec9563", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T02:50:05.896Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d00248b02de7f36c364dcc35bb947391", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T02:55:06.391Z", + "quantity": 91.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9961dda8532f589fcfeaf7375ec8452a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T03:00:06.391Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cb1b15e74017174fb6dc3e8eab9d1d7a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T03:05:05.661Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a9f266b2fd3dbcc44f8c7336df893bab", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T03:05:05.661Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "988addc87326396084da1c0adadbdc6a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T03:10:05.844Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "523955709a4bddc824e1dac1d9237155", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T03:15:05.88Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5da123ac2788bb35009549b3594982c6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T03:20:06.056Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3fdb21ee031b94fb3a81c0363ceda785", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T03:25:06.552Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e05d8df9ca3fb058ba7545bf8fdcca85", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T03:30:06.552Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a55b3a2e9f52ff13a1ec7f32dc12d249", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T03:35:06.552Z", + "quantity": 120.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "770267e1f5521501b9745bf6bda8dbbc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T03:40:06.552Z", + "quantity": 123.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b766b49c212f3911b46de575a829de89", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T03:45:06.552Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "99c08d937f1f76936d45fd6593f732dc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T03:50:06.552Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "94e8ec0b7c8c0175c1830f4d1b6b531f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T03:55:06.552Z", + "quantity": 124.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "14ad3d96a41ae863161e79a07e84788a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T04:00:06.148Z", + "quantity": 127.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "23a8a43658d4b54bf99fd1096f36b6c8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T04:05:06.148Z", + "quantity": 128.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ad363da45bb5a561443a226ac8f84b12", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T04:10:06.148Z", + "quantity": 124.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3e10622ceeb28f463271f4028e7aade8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T04:15:06.148Z", + "quantity": 124.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6445998beccb5506aa4d3cf7046fcc7b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T04:20:06.148Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cda3ae620b418b918375e84c9c13f605", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T04:25:06.148Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "aa7de1848555e88b834256e94bfd5177", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T04:30:06.148Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "582c4f1003f36c7817c937af7b17dec9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T04:35:07.409Z", + "quantity": 130.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "de7bdcb0dfeb393a807f8d81879d5542", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T04:40:06.629Z", + "quantity": 128.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "27cfb5ff012749aef195268b36b284cb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T04:45:06.629Z", + "quantity": 126.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9c48d9bf88baa5f81f33daf3330e6bcd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T04:50:05.692Z", + "quantity": 135.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a72deb0eb825958cf62af2f689a7c769", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T04:55:06.21Z", + "quantity": 150.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fa779dd825a768056cd44c6cc1916100", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T05:00:06.457Z", + "quantity": 152.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "dc34026d86dd1e4c7f7836db1bd7cb88", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T05:05:06.392Z", + "quantity": 149.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "76b283318f2e0b7059818ed58a1bab0e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T05:10:06.333Z", + "quantity": 146.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "957e4edfa34ee8bd22ab1fed00c1505a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T05:15:06.015Z", + "quantity": 139.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5ed3631be20266be346d26c5034c3e8f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T05:20:05.721Z", + "quantity": 136.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e85f0c6f4eeb749d89eba2bafe1e106b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T05:20:05.721Z", + "quantity": 136.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "230c0887a0615b8d8f4eee1a14050a48", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T05:25:06.201Z", + "quantity": 132.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "76ba281b74a26e7747ddab17b6dcf434", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T05:30:06.182Z", + "quantity": 130.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8ca5adc98f3afe32df64b19940fc8ad7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T05:35:06.52Z", + "quantity": 128.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f9c22251f2d575a58320843274d0602c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T05:40:05.847Z", + "quantity": 125.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e8797f99fab94c3d1b63de500de7063d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T05:45:06.49Z", + "quantity": 123.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a88984ad26a7145e1d404b94f0837549", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T05:50:06.429Z", + "quantity": 121.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "dd2be88e0b2bf84b6710d0e637c56099", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T05:55:06.486Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bd1b5a819c114baad48ceb519540a51e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T06:00:05.898Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9f7a364d3014a19f20b15ac8f95f3d22", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T06:05:05.681Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "eb1a3bb55d82fa303846f2fd56c67606", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T06:10:06.555Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "186d4ed7397ccff352e1030f73f3c31e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T06:15:05.872Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bca757bca98ed60dfa550778a4e423b0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T06:20:05.844Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "42d049b3d568f61472705272e90dffe2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T06:25:05.836Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d721e3a215c853787f159ddca343f713", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T06:30:05.707Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a3e1f5f5e6843a458d1ef0e0231f083a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T06:35:06.414Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "527b24c14bff599631acc4ced492d044", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T06:40:07.763Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "acdd139381e46a0317e682c874957a67", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T06:45:06.054Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8ba39e93e46a07837ac38e7a6d6a96ac", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T06:50:06.469Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "77da6a1b59eb85c339e6403c124215ef", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T06:55:06.459Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "49c8763d02ebf5902ca7e6c3b7b91a01", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T07:00:05.959Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3b6db31f498e1552ca3c8440405a1a8f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T07:05:05.737Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "10c9654e41f4d3b2aa5b6bacc2df3e37", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T07:10:06.504Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "07140859a684ff0edea1071dd420713e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T07:15:06.523Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8532ef035c5bbf4def0f31ef9a7cd8a5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T07:20:06.393Z", + "quantity": 91.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "033c368afa798124d0aa91e639f1cf7e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T07:25:06.318Z", + "quantity": 90.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d10adf3f02a3fdb3ed1d2330cd153663", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T07:30:06.466Z", + "quantity": 88.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fb5c3751a3389d3612dc5e6cf3bef6f8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T07:30:06.466Z", + "quantity": 88.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "42ea7d6442ca26e5f7f3b93a42137aec", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T07:35:06.745Z", + "quantity": 86.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b28f9472757d7462463b33089b898775", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T07:40:06.342Z", + "quantity": 85.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "984cc7cae1ab59250b81a8f031d77435", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T07:45:06.751Z", + "quantity": 84.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d4b9ede80f1fbdc2472793dae599f6b0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T07:50:06.093Z", + "quantity": 83.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a568ce0f1d4d89b5f8d7cb91d7360f06", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T07:55:06.34Z", + "quantity": 82.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bf8a3f19eb801c8475ae518b8acb3e35", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T08:00:06.6Z", + "quantity": 83.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "34447ec0d9e2a8c2fdfcd8336928482b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T08:05:05.838Z", + "quantity": 82.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "644d5399dfe6dba311c19b795647bb91", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T08:10:06.792Z", + "quantity": 78.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9a74c8a02fdbcbbf90a64337dd4b34b7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T08:15:06.806Z", + "quantity": 77.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "83747c2de83070272974d6e16f4c90d7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T08:20:06.694Z", + "quantity": 78.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c7aea7ab224d030fc2fec0c633a583d5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T08:25:06.696Z", + "quantity": 77.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1a39bff6333f2f60ac37a1622b51710e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T08:30:06.242Z", + "quantity": 77.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f9d98d5d7525a68da51a03801fc1ab5f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T08:35:06.267Z", + "quantity": 77.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e1943331d4550c5a91cc1dc65873f3bf", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T08:40:07.343Z", + "quantity": 78.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fbe1155a59496fbbf32a1f27b59a9fef", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T08:45:06.49Z", + "quantity": 79.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "50ef8d841cf26378b7cf13116118db57", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T08:50:06.688Z", + "quantity": 79.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5d95fe81ac942346c8022c39660457e8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T08:55:06.826Z", + "quantity": 80.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ee0fc14adefdf858b17ca4df9c0dd9f8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T09:00:06.058Z", + "quantity": 81.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "55caa4d43abb6706dcca68b88e9c13f3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T09:05:06.662Z", + "quantity": 81.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9cc060ce26fcd6e0dd95b28216fc231e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T09:10:06.155Z", + "quantity": 78.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "69e9789dbcf9848ae789cac70bff7838", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T09:15:06.502Z", + "quantity": 77.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "43a3d29f405d145ebdbd76e6fe854c02", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T09:20:06.74Z", + "quantity": 83.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "aeab16b6e6db48e8a48b33e99055e243", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T09:20:06.74Z", + "quantity": 83.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7f7014573c6319e2d52c37fc2fce5923", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T09:25:06.298Z", + "quantity": 87.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7c729e1afa61d983bc66b607852e5f7a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T09:30:07.016Z", + "quantity": 89.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "18ce2a41c4fc87a327370e16c1d341d0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T09:35:06.23Z", + "quantity": 89.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3a5c870d1ddbb5487c05deeb67a8cd57", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T09:40:06.429Z", + "quantity": 90.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "43f86dbbad6bef607fb9fc19c83fafde", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T09:45:06.117Z", + "quantity": 91.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8cc6a72b9ed6d5b1f138208751360893", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T09:50:06.361Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e2ebf27b3815ce58af6055dda348e973", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T09:55:06.951Z", + "quantity": 91.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "12fb1549039e60b2f9240b3119f7b00f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T10:00:06.398Z", + "quantity": 88.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4fff8cb7308d0e4768486febf22b60ce", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T10:05:06.594Z", + "quantity": 89.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "653a62af7492c5a47b5bd5a577916fe2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T10:10:06.903Z", + "quantity": 88.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "44792cdb1964db9096ef69b000208e45", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T10:15:06.784Z", + "quantity": 86.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8d09dd7c5359275bc0c276c4683ee3c9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T10:20:06.308Z", + "quantity": 88.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "efec594823532f61edb102355c8b23a2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T10:25:06.977Z", + "quantity": 86.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2cf94a2d5d80fac637126ebe3b57a099", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T10:30:06.326Z", + "quantity": 82.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7ec8f7d267051d2b57bbe7320fb2967a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T10:35:06.312Z", + "quantity": 82.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3a246ad6b352a30322ec00d10707f486", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T10:40:07.754Z", + "quantity": 83.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ff997c53556f05c8943d05e1e8e3521d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T10:45:06.923Z", + "quantity": 83.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f8cc29a0e5a4c2995f6b6d13d34039b9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T10:50:06.459Z", + "quantity": 84.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "321274ef70a546e5f9e834a2d2e1480b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T10:55:06.974Z", + "quantity": 85.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c130b1ceaafa997f310874cd009db233", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T11:00:06.88Z", + "quantity": 87.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fdd697421d3282433bdfdee68fcfbee4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T11:05:06.974Z", + "quantity": 88.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b7b4a3e9a53aabac72b87dd86bcb360d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T11:10:06.311Z", + "quantity": 90.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4c1e2702f5d6f91ad03c5dab347b4be2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T11:10:06.311Z", + "quantity": 90.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c3142c7726f5092e3fa4d0a3e0c4964f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T11:15:06.949Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "25a5cdaf8456eed4828fd39f0930ec13", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T11:20:06.292Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "74f0a24df2803aa35b67994cae8a66d0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T11:25:06.973Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "55091d4ce8425b7513ed610ad4d816cc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T11:30:06.699Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6ca1ff1e2403b3acde0421dd934c7853", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T11:35:07.101Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f8423d516628e415a77d26ebf8e4dee4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T11:40:06.588Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "98c05c67a205893c0709b9d57dc61e3f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T11:45:06.782Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2888ba6f7ef9ddeba6eac1b3e55f80e2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T11:50:07.212Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4c5c1f1cc325f346a0134df81103a1fb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T11:55:07.002Z", + "quantity": 88.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "745eb758b92427f72b1138836f700442", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T12:00:06.793Z", + "quantity": 86.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "577f72c18f2b3a8e720737dc3fcf8ad7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T12:05:06.963Z", + "quantity": 90.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "467185605521ef246128e5a798c534ae", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T12:10:07.048Z", + "quantity": 89.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "41c74836926ed04800030e515fd81d1e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T12:15:07.162Z", + "quantity": 85.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a06500cbb6dbe2312857f345408ffbc0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T12:20:07.085Z", + "quantity": 85.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "47eb871b27f660480b1d722de7ce31a4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T12:25:06.74Z", + "quantity": 86.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "80a5f55a0b908ffb8ed8a5b2250305f9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T12:30:06.806Z", + "quantity": 85.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a4adccc71b341d2c8b7e5c4d44e986fa", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T12:35:06.449Z", + "quantity": 86.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "358d6b9eb3621de76981bcb1d7ffe506", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T12:40:06.985Z", + "quantity": 88.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c416d747aed79dac9943da63b2772e0a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T12:45:08.456Z", + "quantity": 89.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bdfd68790aeea82774305989b21f2320", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T12:50:06.914Z", + "quantity": 91.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8216d828745cb600a867771ca8de2290", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T12:55:07.16Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3c215dbc66f4be6862067e6fbad643a2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T13:00:06.992Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cd29814f6c08d11b76bf5d31940c5e3c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T13:05:07.079Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0c821b47a86f9887e97cfda2c9f960af", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T13:10:06.719Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3862600fcdd2af697f3053c783e5e27d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T13:10:06.719Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8aa79287579d282929d1f0213cd0b00e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T13:15:06.511Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "68ff30f3239f6c889cba74d0d04343e7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T13:20:06.931Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b6652e357a01d54131961968c483c2be", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T13:25:06.731Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0afbf111d6c92ebc3666f37542398939", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T13:30:07.387Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "846d712ef59caa9ec5073b6eebc30aab", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T13:35:07.084Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "add6016580281b0c070d02efed6b8dde", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T13:40:06.65Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ea557799388a68ed2e67d91897b2a58e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T13:45:07.441Z", + "quantity": 90.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ca019e66ef6db8ca411d0ae0de40c7d0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T13:50:06.531Z", + "quantity": 88.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "75ecd25ff3929fad52a468b949235018", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T13:55:07.254Z", + "quantity": 87.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "35e2b95cdd6de4a2dc7d2c7cadca5078", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T14:00:07.332Z", + "quantity": 86.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1d6d7a8558961ade7b7ce12460e133cb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T14:05:07.724Z", + "quantity": 85.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "80536524dc0651bebb01876573e5c85b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T14:10:07.682Z", + "quantity": 85.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "25e3cbcd4d63b74f9cc85fc59ecdbf3f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T14:15:06.8Z", + "quantity": 86.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1e0967b1baef30a553a722fbbda31d8e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T14:20:06.971Z", + "quantity": 86.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d8a49379444a8d4e619468c3e5c1ad78", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T14:25:07.46Z", + "quantity": 85.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "85fa8dcb1bdfe8f5f88cd5a41256dca3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T14:30:07.546Z", + "quantity": 88.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b89f8d2c76923e971a70b960d322433b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T14:35:06.79Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fd94f4b3871774a4c08f633dce0361e5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T14:40:07.264Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "91cd6aed72ec61d50303f68cba3bd627", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T14:45:07.905Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "77bbe2194052a96b74f10778d81074c9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T14:50:06.692Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "37e3f1eda85e954cfca8d0e0fa5d3d97", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T14:55:06.828Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e5613ca6db618e241a29ec12aa8ee328", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T15:00:07.171Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1d57a6fa6982a98068e752cd8b38c470", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T15:05:07.499Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9ff5514fdd8409907c539cffebc6dc88", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T15:10:07.419Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8237db0b88265f80e8128b8729857a04", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T15:15:06.904Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8eae616fa03ff5ce55c8a5cdce4da35c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T15:15:06.904Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7370bd18847795e8a6414e2495bc0f20", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T15:20:07.26Z", + "quantity": 89.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a52cb5111088753f14d26d5c47eca378", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T15:25:06.955Z", + "quantity": 89.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "668cc3c68e183e8383de48d689dcc896", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T15:30:07.213Z", + "quantity": 88.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a0dac8e8c763b81688e59ef22599e6e7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T15:35:07.692Z", + "quantity": 85.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3d7be1a0307432abef614197705a6b5f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T15:40:06.853Z", + "quantity": 85.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "21900d409b80d4c6b284bde4b02bf346", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T15:45:07.561Z", + "quantity": 82.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3ffcf81c83cf058e362c1ecead45a633", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T15:50:07.607Z", + "quantity": 81.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8fb8a2159c78c1ad1fb68b7fb954df14", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T15:55:07.684Z", + "quantity": 81.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5b74a738bacef28e2ac586bc2930d416", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T16:00:07.537Z", + "quantity": 82.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2a8d986b9d101ce110559939c95269ef", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T16:05:08.177Z", + "quantity": 81.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2ac64e6299653ee2392ef36b43479327", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T16:10:07.679Z", + "quantity": 85.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f1f6e4d0b474bfdd4d4dc8a1f3bf427a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T16:15:07.745Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b147f767f24cfb59e10a77541fa3499a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T16:20:07.331Z", + "quantity": 91.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "91916589da1c0d072e39a88a3f862f95", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T16:25:07.665Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4446cdb70bf470903cdcc80b54799421", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T16:30:07.107Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "72338225f3576e092c78bd24c5e23242", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T16:35:07.129Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "34e6334a3a2993d5fa3fead5db2a1481", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T16:40:07.544Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f477444721b703d6a3a8c1587c2b6241", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T16:45:08.276Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b7d7c4d5b4df7f4c3f64ec6bbb2d155c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T16:50:06.872Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bc5f90673efd96a4631e66498e14f2cb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T16:55:07.195Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1641cb08f0c9a9c0159adf4ead41a289", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T17:00:06.991Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e74025679460787953c275c1fe161f37", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T17:05:07.713Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "88c4a7a4ee0e2a37701979ba47ec5b6d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T17:10:07.214Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "89b05836952ecb16d3665644d3f70574", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T17:15:08.059Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c6732e19a765aef06718b6bed790c3cf", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T17:15:08.059Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e0227def2d839afa50d79238a2d48e30", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T17:20:08.059Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "66c3b517a6cd0876d1f0c72235182648", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T17:25:07.708Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1ec88ee65e9f0267225ef391ed60a9fc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T17:30:06.945Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6595cfc238f75fa33818d37eb45ff965", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T17:35:07.264Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "636fae0674c8d11c73ebc9129ae10e20", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T17:40:07.943Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c8e2f8db2899cf45259234784f458563", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T17:45:07.271Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "845f0fa4f653eb162f1c5801ebcd1a35", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T17:50:07.279Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6b6410da9e82463e802a09858f727965", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T17:55:07.871Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "23990bbdcb6e8d76f6230d27b8d96a78", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T18:00:07.124Z", + "quantity": 91.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6e753889d680afa8ccb3e223f4361366", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T18:05:07.337Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "792e50a57d5c2ee540313a0c1797743a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T18:10:07.352Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7752350b2c837e4d468d2326453814df", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T18:15:07.841Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f703bfd6fdf52aa740bcc42846285b75", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T18:20:07.215Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1bf0429bf2651295429f7dbf4ab617d4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T18:25:07.884Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c8ee1cb764b5f852b0f1095e3759ce0b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T18:30:07.581Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7cf3560d8ae5d17d3acadb0670ed1857", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T18:35:08.18Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c06f2888c7d5d14fae3a4865f2b4f05f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T18:40:07.451Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "960b1b16acb18af391d08dab83ffb8dc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T18:45:11.557Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6b800f809b53bdb92b1b83e4a2ff4ad2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T18:50:11.557Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "56af5966ddb44643dd91b6ec787f2499", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T18:55:11.557Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "936b0c901ad7c75e30024c15061340ec", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T19:00:09.035Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3bb5210fab04f72ae9e86232a3cdcda8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T19:05:09.191Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "992c6c3fac164f44863b6cafd51c91f4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T19:10:07.425Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c25936bf2d2ca9a5c9beb60caf74b83d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T19:15:07.478Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "62e2ea5faa84d59f50f587c95aaee2a4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T19:15:07.478Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8fbbdead4d62d551e5f10d8992cb29a5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T19:20:07.394Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "671af9c8eebb5c02d95a724aa9b24e5d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T19:25:07.299Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6d01cf466136441d4cfa3b139836a4ef", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T19:30:07.962Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9b6b4580f846ceca591f0fb8680298a1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T19:35:07.788Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "069edc11e9d7ba7fd0b382f033566473", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T19:40:07.197Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cb2df3e27aa95f9bd597dcd8ad043c3f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T19:45:07.302Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "854cbc8ac78666d462070a85378c37ad", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T19:50:08.903Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d39217ebe50aa20ef7054c4830885083", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T19:55:07.504Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "55d8063255e038626270b0773190af7e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T20:00:07.699Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0e47f511c60843998769206ed7d96ce4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T20:05:07.933Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "215f54fc09c9f7a73353e2c35fa8fc19", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T20:10:08.097Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "31e7288da5905420b5135fcf9275a51c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T20:15:08.116Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "44983f221a79b307011dc09617a700d1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T20:20:08.151Z", + "quantity": 124.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e17e2ae3dcb2c2b79e672d931b075399", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T20:25:07.862Z", + "quantity": 127.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e1b8fe0a296bea81dd30d0c1c95e7d43", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T20:30:08.234Z", + "quantity": 130.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8671c4530e2911132b7b00a4e9834781", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T20:35:08.234Z", + "quantity": 140.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4026f5f0c35ea1d0f11a1528a3e12cd7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T20:40:08.337Z", + "quantity": 138.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0a0b71b584e4d0939f324a934a19f9d8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T20:45:07.39Z", + "quantity": 142.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fef91e0ae44483ce012fb326ef49e796", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T20:50:07.571Z", + "quantity": 146.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "49d3ca29fcc29d104607179e1a0a8214", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T20:55:07.628Z", + "quantity": 143.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d331f4b8ae6f7e1a8b4f277fc7f8269f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T21:00:08.258Z", + "quantity": 146.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6f25f4955c80377466a0c874199a318e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T21:05:08.98Z", + "quantity": 148.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6bb9bd2d6837b41d414fc61dfeba633f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T21:05:08.98Z", + "quantity": 148.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8d029b9f5d84ace7e84de9b15958e8ff", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T21:10:08.417Z", + "quantity": 150.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "65023d3f9f855012f32dcfcf774b45e5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T21:15:07.371Z", + "quantity": 150.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "aa712790bf2d20203e11badcbc11b087", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T21:20:07.409Z", + "quantity": 152.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d0519aab12be106850929eac359aa749", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T21:25:07.426Z", + "quantity": 164.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c7328ea7e5b63c98d77d8a338d1c6f04", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T21:30:07.535Z", + "quantity": 165.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8efc20f5183f4c59e444f5bb9111f201", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T21:35:07.789Z", + "quantity": 164.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "64aefd3ea1ba85f6cc1024f481afd61a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T21:40:07.407Z", + "quantity": 160.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3aa869f59da8d95dc5e3c6a8bb830d2b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T21:45:07.525Z", + "quantity": 165.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e565d7049d3c92ed8f69cc7778e06910", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T21:50:08.045Z", + "quantity": 166.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "778e2ed0dbf4707ac90d72e22ca0b1af", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T21:55:07.726Z", + "quantity": 164.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8230dda09fc642a7011b6e801737a475", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T22:00:08.156Z", + "quantity": 162.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1a8ad9c5e8c236e0480901d50eaaa70a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T22:05:08.657Z", + "quantity": 156.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5a129661c6d93aa1ab563e7fb3412287", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T22:10:08.72Z", + "quantity": 161.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e3c08fe5252f232d7e256011f154b0b2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T22:15:08.188Z", + "quantity": 171.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f7b8629f0e2d9086ad381a210263d32c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T22:20:07.767Z", + "quantity": 155.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "353bcdfb4e849d929890ce13b332ecbd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T22:25:07.823Z", + "quantity": 148.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "00c3a049abd8dfd030d6cbf271caee46", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T22:30:08.347Z", + "quantity": 148.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "33154fbee16e2af6ef097fe221e0010c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T22:35:08.273Z", + "quantity": 146.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "220fc39f54225e3685120c633d5c8921", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T22:40:07.943Z", + "quantity": 145.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e3075183534a7ce1480e5513c2b549fb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T22:45:07.809Z", + "quantity": 143.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ec51d85f0023b2e082857b80db60fae4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T22:50:08.496Z", + "quantity": 142.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b72b288d11b6edbe56be0945b9897f6c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T22:55:07.879Z", + "quantity": 138.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "baaa42c1d3316163225441345c256aa6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T23:00:16.459Z", + "quantity": 134.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0e41281d48f2be51ba77248ce847c772", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T23:05:16.459Z", + "quantity": 138.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d2b226fdeefedb1b41de4f7b2223ccca", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T23:05:16.459Z", + "quantity": 138.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "802ae12b48d11ff229055eb065f761e1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T23:10:16.459Z", + "quantity": 137.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a95dbea669cee0dd53a121d95ddc623b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T23:15:16.459Z", + "quantity": 136.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "10468122140c230188149c46fb1a3a6b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T23:20:16.459Z", + "quantity": 131.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6d79805c40a26b05dd8fbddfd727ad85", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T23:25:16.459Z", + "quantity": 129.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c74f60ae49325fa74ffd75d8405b4413", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T23:30:16.459Z", + "quantity": 129.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2ff725334b6df9cc41086600c7781538", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T23:35:16.459Z", + "quantity": 128.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ca1c15dddb21fbd1394d6389df7a846b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T23:40:16.459Z", + "quantity": 126.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2ae6fa5eded4873500f15337396aa2e4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T23:45:08.425Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9494d6bf84b76a1cb5ca036ea93c00ef", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T23:50:08.604Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0ae610672dd1bb0c6b979f611bbeea21", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-19T23:55:08.425Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "56aef7b3e3193db1c6e2a5492bb47a6b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T00:00:08.456Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0c339dfb9751c759c4781628ed5a2eb1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T00:05:08.626Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "28c9173d370d98f62535b212d4ca1c1b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T00:10:08.103Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0459724b125553383732acc923153f39", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T00:15:08.667Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "69d80599fe0cf1ebea51e401be99c73a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T00:20:07.791Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b3d3060b19c18aa5f6cc7642c7d379a4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T00:25:08.438Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5a3cba917b11ba33dbd2fe7abf52c545", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T00:30:08.559Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5f17a0ec981525dcea0e8bdd3b1348ce", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T00:35:07.844Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "12a91cfc144b8a9ba9593f31a6d29add", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T00:40:07.941Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4c390741f25d8bdc0532a96775d74da8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T00:45:07.941Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "368adec8ea5a416fdf770998c42435c4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T00:50:08.517Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e6bda381e88eadb8e7ae5b9d1b9a97fd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T00:55:08.597Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "30a74fd04d693646351745599c0db6e5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T00:55:08.597Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8bb69572a6c1f7c2a3a7f65558dec62d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T01:00:08.262Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9a21d244f044f4b8e5c93b5f7e29793b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T01:05:08.27Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "efb36f4c99e0b23c177d53dc24e06bae", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T01:10:07.935Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f81e2a84c4b59bf6306c7d5a67b3ab76", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T01:15:08.354Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3b7ec9440b0aab9e937c18e39dbd0a7b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T01:20:09.497Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b2ce5fba28340258c167c6df0d529981", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T01:25:09.675Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a26ed6a056f770155f7b0fe93822e727", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T01:30:08.705Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a573e5c1f073c276511d7d171a45c5ef", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T01:35:08.279Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3f297cfefd75609241ee8ebb5e936cd4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T01:40:14.084Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7a66c613b223b9e1da41e44250e671c8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T01:45:08.345Z", + "quantity": 125.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "548a0c32e80c5a886e29de683c5f7412", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T01:50:08.016Z", + "quantity": 125.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "656d7bf24cf4fc40b323f5cf274c98ec", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T01:55:08.738Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9a9cd58605bdbab14598600cb7db3e51", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T02:00:08.838Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ff1072e5b49ff318e1d102041c54a342", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T02:05:08.525Z", + "quantity": 121.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b31e0ece304eeb151b0fe9894be42ee8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T02:10:08.861Z", + "quantity": 123.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "89a64c7b0507df0250f557426d2118a6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T02:15:08.112Z", + "quantity": 126.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0e59b82c79fb0f1e6dc2acdb0d4cfaf6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T02:20:08.117Z", + "quantity": 126.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "dcc55284161ee1359567dfa881094c7c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T02:25:08.418Z", + "quantity": 127.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ce3a4bcffe26c9e616acda472d743ff2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T02:30:08.919Z", + "quantity": 129.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ea792b055ed384ec5476837dfaa21a58", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T02:35:08.95Z", + "quantity": 132.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "59bf311fa69acf202844f828b25fa237", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T02:40:10.644Z", + "quantity": 133.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e5564345a60032393b2bae57e6d13516", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T02:45:08.215Z", + "quantity": 133.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a539c1c9ef25039f25cf41aaab3124c3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T02:50:08.951Z", + "quantity": 135.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "965b78be16e47e10dfadbae802221507", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T02:55:08.557Z", + "quantity": 143.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "41ce86269c20849c404be5282dffdfca", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T03:00:09.166Z", + "quantity": 138.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7772c209b2e676f31b2dd3ef7aac6792", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T03:05:08.799Z", + "quantity": 140.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "446ac1fca6e434c3b7f45635fe01f6c4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T03:10:08.467Z", + "quantity": 144.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5d93138928bc5bf409b4ed9c4289ab5e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T03:15:08.444Z", + "quantity": 146.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "34dbc114a42e98e32c06bbae9c0c8c12", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T03:20:08.184Z", + "quantity": 147.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6cf16f49d8623d2100680b5bd57dd915", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T03:25:09.081Z", + "quantity": 144.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e0bacd33fe784ef06e3c8b86f169cd85", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T03:30:08.419Z", + "quantity": 153.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "13e493c76d454e0291ee5acb26243f4e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T03:35:09.039Z", + "quantity": 155.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ad1eeae6e96b7d17095c90f1adc91bf8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T03:40:08.886Z", + "quantity": 157.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9fa93218f326e3165a9001e0bd386a68", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T03:45:11.211Z", + "quantity": 154.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "09cf1c843bfdbc21dd7d00177153d3ad", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T03:50:08.74Z", + "quantity": 156.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7bbf2dda4de0b66fc22b75a86ad4f1a6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T03:55:09.104Z", + "quantity": 157.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e5b86f6db4a2ee384b3029488ebd78fc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T04:00:08.718Z", + "quantity": 155.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fc557c453be70306feffb513147ccbcc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T04:05:08.974Z", + "quantity": 158.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "dd12c50d40d7c04f5104a1fa65e80939", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T04:10:08.992Z", + "quantity": 161.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7010ce4e2f629ef0a3b7f7a33760abed", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T04:15:08.257Z", + "quantity": 160.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b438fa22dcc63ca5d36dff9cd4688fb2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T04:20:08.795Z", + "quantity": 154.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "791cdc2812a245cd0dabb0b4d7dc0c9b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T04:25:08.837Z", + "quantity": 151.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4678929a48fe34659951094fb808a0bc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T04:30:08.712Z", + "quantity": 150.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1339d15d3b1cfd03439ad0bfe7cd1dfe", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T04:35:08.74Z", + "quantity": 149.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f9f1dc2e7d6431da60f61876b528e506", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T04:40:08.69Z", + "quantity": 144.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d909b37dc5d2aaec08263ea1e43a9223", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T04:45:08.233Z", + "quantity": 143.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0ef4e7039470349fd24617d2807ca343", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T04:50:09.162Z", + "quantity": 142.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6e84af0e479144ff030682144530d3e7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T04:50:09.162Z", + "quantity": 142.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ba9d13a8699254ae5f5e87d06c9782f8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T04:55:09.072Z", + "quantity": 138.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "dac693fc67ad0bfe192036aedec8f5df", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T05:00:09.121Z", + "quantity": 135.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "35649d538da53ad39acc904c2ec71034", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T05:05:09.117Z", + "quantity": 135.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "68cb583fe1251e7df77728c6342be371", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T05:10:08.48Z", + "quantity": 133.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "57d0df78d9ca1d76e941ae4a14358cd7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T05:15:08.916Z", + "quantity": 130.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9123a4d9560fed5b92ac77c64f7d91c1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T05:20:08.343Z", + "quantity": 129.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2fd31b3e7e9661c6fd69e3452f197489", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T05:25:09.322Z", + "quantity": 128.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ba3db86764433511037b10881372beb2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T05:30:08.477Z", + "quantity": 125.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6b74ffd6809099c20936f26f234097d7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T05:35:09.233Z", + "quantity": 123.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "17ae6d529b22b6fa45a940458a2ef217", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T05:40:08.909Z", + "quantity": 120.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ff68e47d5f14fd6fa311600019855c64", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T05:45:08.928Z", + "quantity": 118.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3d6a226908588fbd0d01655cb8cd3c4d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T05:50:10.371Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3f88827a0d87da799b64fe05525230d7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T05:55:08.874Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "73432274de4bc77ccd8cbcd85f40d4de", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T06:00:08.848Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "75e0be0c65d928d3fb44e1c7d41eed14", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T06:05:09.229Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "28b26be69fc3195b9b1fabb6cbc7e90a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T06:10:09.089Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fa962804a162963522d01b6647dc37e1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T06:15:09.033Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3e0e22877d6422467fdf3fbf9a0a00b7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T06:20:09.249Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6785fed45d962d90d8dbe0e80de97210", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T06:25:08.407Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "eaaf4691f34d96c020719b10303d54ce", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T06:30:08.905Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fa2ffdd855e18ca0ea617d6a4693c6f7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T06:35:09.025Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0bb2dfc723be12f0ec544b8b32e47479", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T06:40:09.387Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c4741d28c8ebdd32b362783fd51627f8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T06:45:08.501Z", + "quantity": 89.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0a0e96439219e5cb434f243e4a8b28a9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T06:50:08.794Z", + "quantity": 87.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8511d79f58c61dd4c98946282539cb2a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T06:55:09.404Z", + "quantity": 84.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "823577e376105349e5cc805d4def213d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T07:00:09.157Z", + "quantity": 82.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "32a7bbcd6cf08a2aed026de6f5bb69d3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T07:05:09.214Z", + "quantity": 80.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1634e3367ca2f032488e2210365c8438", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T07:10:08.486Z", + "quantity": 78.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3177e09a406d51aaf6c503b23df01e31", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T07:15:09.152Z", + "quantity": 77.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "74947c1d53ab35ad1fee16ca16b65262", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T07:20:08.817Z", + "quantity": 85.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "539c2da4a37fa2d34c49d40728d58a9b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T07:25:09.478Z", + "quantity": 80.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c32535f2a3809eefceab3a47fdf5c818", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T07:30:09.334Z", + "quantity": 77.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "aa30e6666cfc682eb813cf0b11388b28", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T07:35:09.472Z", + "quantity": 76.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f455c7fb27e646f1bf2e670bdae61b1a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T07:40:08.766Z", + "quantity": 75.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a673016da9193d0123152974dbc5d625", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T07:45:09.024Z", + "quantity": 73.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "690783569a042423aabc6609d3e57c96", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T07:50:09.558Z", + "quantity": 73.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ff5d1f68899ec46409cb1d06e0bed0b2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T07:55:10.235Z", + "quantity": 72.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "24c0cdbaaeace32c7ac82f1e9bcc75f0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T08:00:08.667Z", + "quantity": 71.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0dc35d37ed0ca0b81c59ea9e85de8b17", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T08:05:09.492Z", + "quantity": 71.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ff55542eb39d3791770ef1a09cf842da", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T08:10:09.289Z", + "quantity": 71.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "83d5dda8b6fb11ed8d261191b3ec4cd2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T08:15:09.269Z", + "quantity": 70.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1d32ab3977f32958cfb62ae60499f5ed", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T08:20:08.649Z", + "quantity": 69.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "09c0a5bcdcd62c11cff7ab92199539f4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T08:25:09.556Z", + "quantity": 67.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5565814125403ad2d6a55a5d89d0ec8a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T08:30:09.263Z", + "quantity": 67.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "362694a67c54913cd35050e94d86b8f1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T08:35:08.873Z", + "quantity": 66.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f8ec21046dccbc158d248486f03be831", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T08:35:08.873Z", + "quantity": 66.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b7037f930706b7a123c81e6b1eb2581e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T08:40:09.09Z", + "quantity": 65.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8be09a788df2b7290ab849aabbe95593", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T08:45:08.797Z", + "quantity": 64.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bf6c7e2210ace1c137bbc57708695e17", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T08:50:08.795Z", + "quantity": 64.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "565124ccda1abf927b02bf2590efc207", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T08:55:09.478Z", + "quantity": 65.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "02f49d65291c4f52d8a55cecd145a4a1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T09:00:09.009Z", + "quantity": 66.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "60c32c33db7143f8ac69ec2573d72acc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T09:05:09.148Z", + "quantity": 65.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3b182ba57ac575861d9b9637ebefc3eb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T09:10:08.784Z", + "quantity": 66.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d4399411bdc8bbbc0a045238df669f0c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T09:15:09.171Z", + "quantity": 68.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0baf8c3cbfd881b6923600839ae87042", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T09:20:09.68Z", + "quantity": 68.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "28b8bad9c10b6e03fb9d5173b608cb18", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T09:25:08.857Z", + "quantity": 69.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "19d83777b212d8811925949709f40899", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T09:30:09.073Z", + "quantity": 69.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "306abc538d2626767f7cb1144d21e469", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T09:35:09.409Z", + "quantity": 69.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6a294d1711c43d34e635cda6ff49e9a8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T09:40:09.204Z", + "quantity": 68.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a3b463513d1fff4f515ffba9184566c6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T09:45:09.122Z", + "quantity": 69.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "389cfe32259c6cce271fcb385312cb42", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T09:50:09.641Z", + "quantity": 69.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0add704e5e38f352d7fe44eb080991c4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T09:55:10.018Z", + "quantity": 70.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7ea5b6c7abe1c850c74b0a0c41e161a6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T10:00:09.354Z", + "quantity": 70.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4fc8228e088fd3f97f70525f2d66a849", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T10:05:09.802Z", + "quantity": 70.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7698d6144dc4d143d6eff15821b29cca", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T10:10:09.746Z", + "quantity": 69.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "41f0e3eb67d6df4afd3f9628e270ad7e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T10:15:08.978Z", + "quantity": 68.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fd96fe7ba623875684d297129ef9f566", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T10:20:08.876Z", + "quantity": 71.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "478a424eb853b54b51086955d06f8651", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T10:25:08.952Z", + "quantity": 70.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "47c7510dc9c242feca2237f7d99b562f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T10:30:09.371Z", + "quantity": 70.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "dff62f8997735be6f466865a04bc70ec", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T10:35:09.354Z", + "quantity": 70.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "abdfe442d94578665c613b75d6239c5b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T10:40:09.59Z", + "quantity": 69.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "16cfa2f58ccfddd1bc3f57fc270dedb1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T10:45:09.201Z", + "quantity": 69.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3231e849b2ed57b8a3f2bf9cd80f1dcd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T10:50:09.821Z", + "quantity": 69.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d57ce4879acab7a67807289a43699cdd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T10:55:09.706Z", + "quantity": 69.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c41609d01a0f3a21134169b2efd0587f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T11:00:09.693Z", + "quantity": 74.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e75eba6489c4fdfe0243721501ddcd99", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T11:05:08.986Z", + "quantity": 76.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fc8b6cbc12202d1684ebc217a1bca2d0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T11:10:08.986Z", + "quantity": 76.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d19e26207c8eec80e5a8f09946c6c373", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T11:15:09.215Z", + "quantity": 75.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "db8a605dd9b8e946cee90b7f0f2b4dda", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T11:20:09.364Z", + "quantity": 76.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a18013dfdf11efac0ca12f457ff40acb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T11:25:09.05Z", + "quantity": 77.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "533c66f28ebb8a109fe3792e789a3dbb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T11:30:09.364Z", + "quantity": 78.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1b41adfe519004d6f2699dde52a1391c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T11:35:09.931Z", + "quantity": 78.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c86b9bf2a7e8f03e1ff8eaead5893cdf", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T11:40:09.032Z", + "quantity": 79.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ab503dcc388114df5eadfa69d9417996", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T11:45:09.986Z", + "quantity": 80.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fa9feaad43794a9a8528c81c00dad412", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T11:50:09.538Z", + "quantity": 83.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1da456f9759af1b0130d459ca50df8ba", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T11:55:09.349Z", + "quantity": 81.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "24a7361e8b754b0e507cee26bbd73206", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T12:00:10.887Z", + "quantity": 83.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "388f1f7c10e369fac482b67aa2abd127", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T12:05:09.533Z", + "quantity": 83.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "50b3576dc171841a807b8aaba39a443a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T12:10:09.588Z", + "quantity": 83.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "aaff2acf79dc04bfcd2480cafbc53f55", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T12:15:09.436Z", + "quantity": 83.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "98d73c58a5596aa68d6b704235285348", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T12:20:09.649Z", + "quantity": 83.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3f69a6ad009061c93dc667b4d2b5e74e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T12:25:09.721Z", + "quantity": 80.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0e0b69f8568f6bef9c6399310b55c760", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T12:30:10.042Z", + "quantity": 79.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "59638d9fc9c800f69d74bdb49480e168", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T12:35:09.095Z", + "quantity": 78.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "715e300e4cc27853c916542e57698f6f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T12:35:09.095Z", + "quantity": 78.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "056dcc2bf699975bfc6c665bc24e5e4f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T12:40:09.397Z", + "quantity": 78.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6163cc4dfff386ccc36a13e340e44972", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T12:45:09.822Z", + "quantity": 80.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1d465370fe038e52d2cd75d26bcc8a29", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T12:50:09.957Z", + "quantity": 81.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1d7ff1efc767fab5b21034d411576202", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T12:55:09.32Z", + "quantity": 83.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "90d37724beb1cc1fb152d2c2c38d6e7b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T13:00:09.962Z", + "quantity": 86.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5bf91d3bb46dbe102f7a62655790362f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T13:05:09.566Z", + "quantity": 90.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5b7e1f65ed2df99452683d7fb542ce4b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T13:10:10.133Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "87a3462468eee7632e9af150f2f4ca26", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T13:15:09.998Z", + "quantity": 91.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "248bdf2ce62c4dd5e7a8b57e88a48f97", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T13:20:09.437Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "289133a8c814965ebf752433b9eb8059", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T13:25:09.942Z", + "quantity": 90.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "38e7788c2baa38558dd0f3aeddd4e665", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T13:30:09.43Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f26cc30f36b0dfd1a5ef7f06df5007d8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T13:35:09.701Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f8f7ef8e5a49987f01c5e9a1b5baed09", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T13:40:10.024Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "301ddf2a16b9578120ab65bd7645a145", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T13:45:09.752Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2cb1c7d529b8580647a481728b6b3aa1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T13:50:09.328Z", + "quantity": 90.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "62345d54fa13cf92a21a634c772497df", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T13:55:09.318Z", + "quantity": 90.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cfcf8ee4ce9ba942b40c380db69ed5de", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T14:00:09.434Z", + "quantity": 89.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d5935fa008b686f40c25dabd4eed73f4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T14:05:11.323Z", + "quantity": 88.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6595149472f661f0b64d1d62a86a1452", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T14:10:09.319Z", + "quantity": 88.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e37f9be1feaa02d143f2ff3cf77a1389", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T14:15:09.724Z", + "quantity": 90.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9929a1e3e7b68923e79a728bc80f951a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T14:20:09.667Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6995c417322c5f93142c989c1ef953d8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T14:25:09.353Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "23697eca44858bfc2b297875f4ec462c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T14:30:09.728Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b8a41277ca60c057046e80caee5141dd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T14:35:09.381Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2fa6c68eef7dd920e141221830ac9894", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T14:40:10.246Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ce71412ab432056d8b60aef07567bc71", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T14:40:10.246Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9a21b4347c11d0be5c3d10dc0b5a437c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T14:45:09.695Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "67d7c477a53b12706178020a9c546e60", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T14:50:10.324Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "62d1ae8dba3cb62f688e2a25fb16793e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T14:55:10.142Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "84b9d1d957c2e920381f7e9c825321a9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T15:00:10.142Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bc36d18d6596cd4b2aba5b7acf9c518b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T15:05:09.867Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "984439bbb8595fdf1e069cf791189ba7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T15:10:09.924Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "af70f129bd7d41f17d5316c9c80e2bc1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T15:15:09.44Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "17a3fe5c95865acd33894604d9a0831d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T15:20:09.468Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b2064914cdb3330c735774c8ea574ad0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T15:25:09.855Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ee879a10e8c8b1ce6e80d265e3ad1b9e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T15:30:09.88Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3d74d0b2f9bc8b5d9467a995898f5087", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T15:35:10.346Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f2622874ad628a33f876cec2b0fbf8b7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T15:40:10.137Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fcfa49b23fedcbdb143a5c73ef120194", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T15:45:10.398Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2e7f7ebc36260816c1eab9e129e46711", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T15:50:09.518Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f93d714e4efce1d0f88caa4735daab86", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T15:55:10.171Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c436d1526977eb8003ec05272af01cf1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T16:00:09.904Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2402b8e19e6756184b3e29a112f63fed", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T16:05:11.238Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7aac6a106bec8f0102d64c36c3cf9d22", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T16:10:10.265Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3fa6721a7a0528a2b808779ca48b646a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T16:15:09.8Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d1ec5add3200a72c5d6d973013043df5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T16:20:09.55Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "61ab67cf3333423d2b9ecae61c757a99", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T16:25:10.445Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2a18691aa379e4733b2a4e84dac63b12", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T16:30:10.359Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8ae778a0901fd691d0444c178950fb7d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T16:35:09.748Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ac7c92fcec6d2a73c3d041ccb0e5d4ed", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T16:40:09.635Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b35cdaa8d328e1c2346c31dce835e33f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T16:45:10.539Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fe12894200ffab3bf6e024f01a9d7f69", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T16:50:09.946Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1e052a0fb90fa2412edff33a23d02c91", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T16:55:09.713Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f446cf50d0a41b1ecb78e220eea2e7fe", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T17:00:10.398Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a4fb53dc86886ba4f4325feedca9b9b6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T17:05:10.276Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "186e3684dd53100583aec39b59375928", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T17:10:10.218Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "50fad41e63961c9de5dffb476adfcc7c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T17:15:10.284Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "17a3db3a40107d23e0988c197c5d16fa", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T17:20:09.722Z", + "quantity": 118.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b78eb68b74a9f94803d9c0783ffa15b0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T17:25:10.611Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "23372d1e3aa7542b11319d0d3e3e268a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T17:30:10.301Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b4d85d7422fcdaa4aac1949d8b3d843a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T17:35:09.922Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8b9a5105ee67756549a9d7ad1641847d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T17:40:10.488Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "dcbeb7dcdd6b088991ff44435f37744d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T17:45:10.219Z", + "quantity": 118.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "053bb8d15d113309ded30ef581d047bd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T17:50:10.422Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d4b3c765616f28b40ffcbe386960e4c1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T17:55:10.458Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ac033a74566ddda2dd7cfcdd5bd50b6c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T18:00:09.998Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c4413887e642fc458a4eb3d131860beb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T18:05:10.371Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fee08369903901704a457e16ba79c573", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T18:10:11.182Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "95c3c5e0aa55396058790d2ba60fabe0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T18:15:10.248Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1fea9293b49aa1e584128d77f0e0652a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T18:20:09.866Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cba2767c33ff088b8ecc74132124e2cf", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T18:25:10.209Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e95fb8d91731e6f76deae203356399e5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T18:30:10.633Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "436657a3df16d242ffefe86a8e1a5199", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T18:35:10.312Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c1247f62ae7044921c6b94ba94d72da3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T18:40:10.756Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b01b47ddc93f2d1c3ca335009d6dd381", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T18:40:10.756Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "eacbda89eb5d6088dc76da9d5a2413ee", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T18:45:10.306Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f2767b3d873e76a469226b8fa0dfdf6b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T18:50:10.735Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8f0e112f3b48a21dedaed7dff3d0c689", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T18:55:09.86Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "57a1570c97d1dac85a9f8598b69d8260", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T19:00:10.549Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3855d95ec119e5e3e248da6b206c0ccd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T19:05:10.788Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "eec175671174cf12d481d675715e163f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T19:10:10.587Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e0a51d9d4d0d2a4bbf0315d88d52690c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T19:15:10.534Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "07542f243700fbec0fc9fd54f4249c52", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T19:20:10.728Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a1d294cd4906237dc8430de957caea28", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T19:25:10.836Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a06e7535f0d7e34e9c6f62f3dddd1fb0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T19:30:09.906Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5364734442420c48d37006900dca5e11", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T19:35:10.376Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "84cb99a1b487edf6d05891a7df13288a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T19:40:10.67Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7e8ef5c75dc128e2f99e14b84043e69f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T19:45:10.005Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2b396173f031c3e6c7f753679effd14d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T19:50:10.014Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cfce3ecf240488ee7922bf0f0a10b1be", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T19:55:10.251Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "db3e4263dd0275e253ac828cae238ac0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T20:00:10.854Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ab3b7393000c962da35039edfef2cb5a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T20:05:10.371Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1e1d669a59b748e7177ec922fbb4d0df", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T20:10:10.64Z", + "quantity": 128.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d93937268611aaf456442e6d56281e90", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T20:15:11.504Z", + "quantity": 139.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0e5eb2931a23a2cfff78ed4179ff768f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T20:20:10.359Z", + "quantity": 152.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f6927ca916c236b6b2fd839985af2d74", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T20:25:10.777Z", + "quantity": 163.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b1e02057f7934be1cbec52ba6528a42d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T20:30:10.336Z", + "quantity": 171.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2fd805a20884d98e9ee6b22a0927baef", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T20:35:10.192Z", + "quantity": 174.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0d58a4d27883b3fe04496eb3291c2e70", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T20:35:10.192Z", + "quantity": 174.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6e753ef7ce9f64d2cc3dead2d5275127", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T20:40:10.035Z", + "quantity": 169.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "240af4c606e140734cbf9865bbe25e4a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T20:45:10.946Z", + "quantity": 171.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c708129b1d0e03639cbe384f34beb282", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T20:50:10.575Z", + "quantity": 171.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bb884b834ae75b498c151b678ac12371", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T20:55:10.565Z", + "quantity": 174.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6074ae227ccf23e9dc5867aa7886034f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T21:00:10.392Z", + "quantity": 179.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2767c033dd04d9b0495ecea4977b19db", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T21:05:10.172Z", + "quantity": 181.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "997b0b9559e48a35d669cb6b0e874866", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T21:10:11.04Z", + "quantity": 180.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cf866e8afb97b3e092cf76d44b8d83f8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T21:15:10.108Z", + "quantity": 185.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8097a84bea62de59def2db0464cad7fc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T21:20:10.826Z", + "quantity": 191.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "027c37d799b5e2de23e8f30abd502f2d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T21:25:10.134Z", + "quantity": 192.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3fb44cb2c36c973b375dd01a8f6f91cd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T21:30:10.505Z", + "quantity": 190.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "46827389ffd469adab53177a6174752d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T21:35:10.482Z", + "quantity": 192.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "04625be6108a5ef74c00b3666dd51019", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T21:40:10.178Z", + "quantity": 195.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "711aa4b1ea75d9773480a3eb445ccc86", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T21:45:10.286Z", + "quantity": 197.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "54a00f7a6c0741d6bbfdd6e893900d5c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T21:50:10.735Z", + "quantity": 195.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "54d8201d8e224ff95cc344aba7c7bd24", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T21:55:10.621Z", + "quantity": 197.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "40b871553b6360de95d5f4633e73a007", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T22:00:10.93Z", + "quantity": 199.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "718cb8682a5be145a5d8b6bb627cfdf2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T22:05:10.423Z", + "quantity": 199.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fa8f98b072102fdf5bd96b0ee682d2fb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T22:10:10.652Z", + "quantity": 197.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e739e287dda31821616a2ef069250b74", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T22:15:11.203Z", + "quantity": 201.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "481cf33ebb83ddb35ee62e05ae938d1b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T22:20:11.957Z", + "quantity": 196.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bff7467f10a221026c34eed1e051aab7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T22:20:11.957Z", + "quantity": 196.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "525796df6d993aed3119f342f3b955be", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T22:25:11.127Z", + "quantity": 189.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3458658c9a848ccbb6c500189fd6a670", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T22:30:10.978Z", + "quantity": 188.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a8a9316c394dc779a22d9b8d9a4cf71d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T22:35:10.909Z", + "quantity": 188.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4f644e93b7b49a137cdca5a0264e3cb7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T22:40:10.381Z", + "quantity": 186.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3adffc9c41fd01b885e64098906659ec", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T22:45:10.408Z", + "quantity": 181.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "116739af59eb74e6be9e3d84862193d1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T22:50:10.339Z", + "quantity": 177.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2a75465bcea99dfc56dbb15348632527", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T22:55:11.148Z", + "quantity": 177.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6239c60cf00c13bd3cc88af7b73f9b8a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T23:00:10.474Z", + "quantity": 177.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e5e00169b597a6d8a2303b299d60ac81", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T23:05:10.834Z", + "quantity": 175.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "765321696ac06702c4e68b125701397e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T23:10:11.172Z", + "quantity": 173.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "11599f972326325cc7002a6800107ee0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T23:15:11.067Z", + "quantity": 170.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "663545e884d6e9566c5e402bd2233ae4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T23:20:11.137Z", + "quantity": 166.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "41ec18e4a61f7ccee4c83bd2fcd8293c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T23:25:10.926Z", + "quantity": 167.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0c28b9201229d11316b38b0a4d458c69", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T23:30:11.154Z", + "quantity": 169.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "32ce573f3bff58c844927c23e2def36b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T23:35:11.126Z", + "quantity": 167.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2ac8a0f70b29056800bc75f68728309e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T23:40:10.51Z", + "quantity": 161.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9f6e9a4a5145e7c2003d1ac735c5531a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T23:45:10.684Z", + "quantity": 162.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "648ea58316c871656e823f14c3d1cfd5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T23:50:12.286Z", + "quantity": 155.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7774ce9aa793fd8b9008d16805f92cda", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T23:50:12.286Z", + "quantity": 155.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "91a9e67d1de7194da5d59ea2d37f5055", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-20T23:55:16.788Z", + "quantity": 151.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4ba1e31841cb55134e9f9608f87cd09b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T00:00:16.788Z", + "quantity": 148.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2ccd258966bf79c7f7477113a6f1ec0c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T00:05:16.788Z", + "quantity": 146.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6c9bc1b9b2345d2011ab8ef286f80c7e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T00:10:12.598Z", + "quantity": 143.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "594bca4d3ed565989c2df0b47fea8ea6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T00:15:11.96Z", + "quantity": 141.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4088287993acf9b74068493f5b59cf90", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T00:20:16.788Z", + "quantity": 138.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fd2ce0759e675e24e403cb8c9f3acb79", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T00:25:16.788Z", + "quantity": 137.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e786e123e09bb2f0d840046772a4434a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T00:30:16.788Z", + "quantity": 134.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8d4d324ee8747015e49d26061a6f9a9a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T00:35:16.788Z", + "quantity": 130.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c359a53a5c46b03ee707479c72b82441", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T00:40:16.788Z", + "quantity": 128.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1d62dd8dfa94460f7a7e2af9f2f5c5cb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T00:45:12.567Z", + "quantity": 126.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c86570cd4d318822deadbce19eaa5f39", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T00:50:11.586Z", + "quantity": 125.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b28fb0c513fa1a77e51f94936a2daee3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T00:55:11.282Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e30f5d6a1b7cc7a8f92b3d87aa1bf78c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T01:00:10.989Z", + "quantity": 121.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f9534bf6427c082fcbfdebc03aca1233", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T01:05:11.44Z", + "quantity": 118.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c2b7edacc6a457f38f5d4a21a3b697c3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T01:10:11.475Z", + "quantity": 120.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1293eeafc620bd78076911a338f0598a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T01:15:11.29Z", + "quantity": 125.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f58cc82cdfe8005f6619655af75a93ba", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T01:20:10.773Z", + "quantity": 134.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "659e833bffede403fd52faa966c059f4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T01:25:11.539Z", + "quantity": 138.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "12aa42cf1f9cd8cb961f4b7cebcd32f0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T01:30:11.287Z", + "quantity": 143.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "93fad9289dfe473fffe8ce85756e8494", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T01:35:11.053Z", + "quantity": 149.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6fc9375e316ef1d233f593a412d5ebdb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T01:40:10.925Z", + "quantity": 149.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "977eb34ba925e3e12fc7bfdf50854cb9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T01:45:10.624Z", + "quantity": 148.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "47814910f424855215f9941c173c031b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T01:50:11.588Z", + "quantity": 145.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e75b23f3f1eed506753ccc4d3607f46a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T01:55:11.531Z", + "quantity": 141.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0cd0b4449a22d408fee66538ed151835", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T02:00:12.018Z", + "quantity": 137.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9cb144c638eeef6d34f3e73142f8e458", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T02:05:11.061Z", + "quantity": 136.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2c9dfe478c73b6b490f8b50e48002aa2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T02:10:11.756Z", + "quantity": 145.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c48b2d87de3db1daadb12968ea27b777", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T02:15:11.756Z", + "quantity": 148.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "02c60ef1ea5a6e26db5ee8acd4e4656d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T02:20:10.849Z", + "quantity": 147.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "eca9e5e017a6d178004293a48418555e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T02:25:10.792Z", + "quantity": 149.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3ccf219b2a9108bd8810079994f5879b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T02:30:11.549Z", + "quantity": 149.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "00d0dca757e4a4ea65e9a945019ccaf0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T02:35:11.002Z", + "quantity": 152.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4034b6cf89638d3ddc4b6a5249ff4332", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T02:40:11.19Z", + "quantity": 153.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b1616ab3f50926132e62510667f73b80", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T02:45:14.921Z", + "quantity": 154.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3b6b28c0f9d680ce006b0ed91c832d29", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T02:50:11.846Z", + "quantity": 152.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "45796ada382f5452bc49b3466484e92c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T02:55:11.343Z", + "quantity": 148.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "97921d7164e34b497b214006f06d84c9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T03:00:10.778Z", + "quantity": 145.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4a3444ab118d8aa6f542f179881c38b1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T03:05:10.756Z", + "quantity": 146.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "902ea185fd802ef91204c03f9985c087", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T03:10:11.444Z", + "quantity": 141.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e0f79d23cc81fefd77756ee0202c88d0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T03:15:10.82Z", + "quantity": 144.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8d5b47be449279591bf4ffd3f9f1f3da", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T03:20:10.927Z", + "quantity": 137.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b0aabc2448d0a7ceb9b633b11332270b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T03:25:11.264Z", + "quantity": 136.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fbccafa73e8f693406ae95087f5ba4b3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T03:30:10.992Z", + "quantity": 143.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9eb8fd59cc2be7621d5491ecd246f6b9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T03:35:11.653Z", + "quantity": 146.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c26bd42dd87d755e25a13069954ad24f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T03:40:11.266Z", + "quantity": 153.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "59f2a7070b8e08dd614867a70cbc3ba2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T03:45:11.804Z", + "quantity": 158.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cf406f62e1c5998dc37ab7711e73e8ad", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T03:50:11.481Z", + "quantity": 170.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6413244112c725eb5cbd952319aaa312", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T03:55:11.027Z", + "quantity": 177.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bc7d3245cd91e96ef468b32034163cc8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T04:00:11.765Z", + "quantity": 180.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b24a8a4411e81fefd9c35d7f9e295da1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T04:00:11.765Z", + "quantity": 180.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "777abcfd18bf4b6a31a8a0ca6952387a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T04:05:11.028Z", + "quantity": 182.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e2f8201485fa3c1c6b7e4895a85e7825", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T04:10:11.496Z", + "quantity": 178.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9ae025aa604d5978a6aa0ad1ec2221e7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T04:15:11.853Z", + "quantity": 175.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1a620230886aae3fc3bb54153ca145e9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T04:20:11.107Z", + "quantity": 175.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a34f00219c2f258e6dadf44884169303", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T04:25:10.965Z", + "quantity": 172.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8d1b15d7848c72d72fb886a9770519ab", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T04:30:11.481Z", + "quantity": 171.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "22047eea7449744d3504b3209ae3fbad", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T04:35:11.48Z", + "quantity": 170.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b5236120a678fa46bc2f50a85151b84f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T04:40:11.836Z", + "quantity": 168.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7ed0975b295212aafff04eeec575ba81", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T04:45:12.595Z", + "quantity": 167.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d51bcf74deaf2d9771090aa63dfbfee4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T04:50:11.862Z", + "quantity": 166.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "55d72d055b84ad49344771ce08926cfb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T04:55:11.329Z", + "quantity": 165.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "97a33aa6e59878ce3193a4310fd7dfeb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T05:00:11.352Z", + "quantity": 164.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b2fe4725bd35e70c76c20a99945a8527", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T05:05:11.14Z", + "quantity": 163.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cab2fcbe1feca1896357d52334f367fa", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T05:10:11.073Z", + "quantity": 161.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c9e0f0b056cbf81a463dfa55b22f8ae5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T05:15:11.758Z", + "quantity": 161.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7a29876fbf1880f03ac35fa1ef4e6ca9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T05:20:11.273Z", + "quantity": 159.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1e0492749541dbd0fbd37ad46eb3da10", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T05:25:11.317Z", + "quantity": 158.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5c09142e543486b037457998e4aea05a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T05:30:11.662Z", + "quantity": 153.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b487607766cd253ef46f4274073549e5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T05:35:11.463Z", + "quantity": 148.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "be165236a46cb0158875b196db6ea180", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T05:40:11.776Z", + "quantity": 153.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "28cc226af420d9e052237761a0c9c7ad", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T05:45:11.075Z", + "quantity": 154.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b9c00660b46627751ef76b1f1f0da2b9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T05:45:11.075Z", + "quantity": 154.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1ba13721c3640aa83cfecf14d4ac1846", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T05:50:11.733Z", + "quantity": 154.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "aac86e2b67b593fe07c4d81c116ea8a9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T05:55:11.672Z", + "quantity": 155.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "34909d2b0496dbca48d02c71be863930", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T06:00:11.818Z", + "quantity": 156.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a5df7e7b2829cee282d0b4672d0a8208", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T06:05:11.916Z", + "quantity": 154.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "806ba553d78e61a44e98f20d491d2fa3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T06:10:11.866Z", + "quantity": 153.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c0d5df1f78851640b6069178873f2f10", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T06:15:11.599Z", + "quantity": 148.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9ca135e324febc3888f2ca47104e3c62", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T06:20:11.474Z", + "quantity": 148.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4075553c95364035a5d7ff60e0c5cd39", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T06:25:11.581Z", + "quantity": 152.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "31aa0d85b378ce0a3e1f7fce70348c51", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T06:30:11.796Z", + "quantity": 149.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5128b395263fb090f9d797d152279ab3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T06:35:12.038Z", + "quantity": 145.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "be2450ef6174eb603c3e52c80d13c249", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T06:40:11.154Z", + "quantity": 144.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fb4c7f52726ad4c3a0acc57fd004ce6f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T06:45:11.385Z", + "quantity": 138.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "16c22d6550be6a0e6f7d54f314efa290", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T06:50:13.107Z", + "quantity": 137.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fbb97960f2fac3653c13810dbc1fb1ef", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T06:55:11.443Z", + "quantity": 138.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "74a4c91c5e22bb606552afd1a5d7aadc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T07:00:11.679Z", + "quantity": 136.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4ebc33742bfbdb919130c76689b5e1bd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T07:05:11.226Z", + "quantity": 139.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6e4e7ab94daa63e06abda17a48bcd9ef", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T07:10:12.09Z", + "quantity": 135.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "365523769cb865cd5d2bb4c9dd4bd337", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T07:15:12.055Z", + "quantity": 133.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2b4931101645e30c7d915df80dee3043", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T07:20:11.861Z", + "quantity": 132.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f62b04088109b63e9d87c0bb058ddacb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T07:25:11.24Z", + "quantity": 123.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "30cf843f9b043e3eaecb861f58b350d6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T07:30:11.607Z", + "quantity": 121.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "411c7f7dcbb93ef15d1817d68a662fb4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T07:35:11.613Z", + "quantity": 125.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fa0f520838666f90812390c07a5188a4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T07:40:12.071Z", + "quantity": 125.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "64759a1c975792fdab4bec5c42053ca7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T07:45:11.489Z", + "quantity": 123.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8e85b2f308642752ef651c3b714419c4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T07:50:11.587Z", + "quantity": 120.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b66dd0ee6f2b18886591f613236479d1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T07:55:11.416Z", + "quantity": 118.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "33c66255529ab657664ce647c7c88dc3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T07:55:11.416Z", + "quantity": 118.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b0ecff9e875e06604ab1b4ea283df6f4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T08:00:11.418Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "df4299c9c19245a5099e5a7016f330ea", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T08:05:11.597Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8e628ce627fdfd33f17e4eb0f183ceae", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T08:10:11.463Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d99033bcce1132ac600976d08f2d0a48", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T08:15:12.181Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f3bbf11060f63acda2995821e722d97f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T08:20:11.346Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7b517c9d022c1887b81a5b1542b2569f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T08:25:12.002Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "eff8c2bff6a26f5e71157a760bd2019d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T08:30:11.805Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "204a2e24b4db8b94d492f62371fc2e5a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T08:35:12.187Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7b15af529487b4ec90143629a0edeedd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T08:40:11.584Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "460d762535cc1f48a583f41125cd7069", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T08:45:12.29Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "82520cf55fb2da2aba953face9b1db86", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T08:50:13.135Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "448800455fe14ca9ac10c43c26fb0e90", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T08:55:12.361Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "915d376aeb17ad1075cfaea11d068552", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T09:00:12.286Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3d74f299ceeb35405a0c2815d5364613", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T09:05:12.083Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2e42d746a49347b738feafe2c818e732", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T09:10:12.092Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5936eb7b1ee14f17fce15851a4666eff", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T09:15:11.479Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4ebbc4f88a265cd7bed36f0726681ee8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T09:20:11.812Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "00d512cf44ed134fbd7a95045af456c6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T09:25:11.634Z", + "quantity": 91.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d2b25814089f1d2b21ff9c5a1bc191f0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T09:30:12.159Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "847c1e8c0d665a0c36df03e83983cfd3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T09:35:11.658Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4720820307423daa83a149712bad183e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T09:40:12.028Z", + "quantity": 90.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6f0bbeb24bfff31a65268ccbd9124a10", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T09:45:12.149Z", + "quantity": 89.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "826ca365528d17212da6f8ff633e1d9e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T09:50:12.242Z", + "quantity": 88.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "14ee3454eea04aa3c66226f195a08444", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T09:50:12.242Z", + "quantity": 88.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "34dcee5e94b05bacabc5007aec102c48", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T09:55:12.381Z", + "quantity": 85.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d5d3bfa87b6387cd337850ded5b867f9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T10:00:12.124Z", + "quantity": 83.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3477e4b59da7718b2689833822e43631", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T10:05:11.854Z", + "quantity": 79.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a5dc3b98fe43d3e49b5eef8f1dc520b1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T10:10:12.452Z", + "quantity": 75.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "13717913fee944ea633e2e5ec550fdfb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T10:15:11.606Z", + "quantity": 75.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6bacb05a01dab9bfc95cd1cf2249ef43", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T10:20:12.194Z", + "quantity": 75.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6b7d3e15402ab1da8b82556e48f75670", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T10:25:12.282Z", + "quantity": 75.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d936f2a691dc8c6d0d30bce9c51189f5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T10:30:11.561Z", + "quantity": 74.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bf0f388c875fedb6fba78ceff7e44a38", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T10:35:12.491Z", + "quantity": 71.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "66d09b6f9d595b5d5a85439054e37bfd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T10:40:12.518Z", + "quantity": 74.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "417929a29390824560e7a83c03becab3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T10:45:12.213Z", + "quantity": 71.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "09d79fc3d36558e4a7d017d4dd75e3cd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T10:50:12.021Z", + "quantity": 74.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f0ddd98bbd1ade39de976a49c1bf69e0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T10:55:12.812Z", + "quantity": 71.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0fb917c9801390b2383d448c16021cd4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T11:00:12.278Z", + "quantity": 69.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2da95810cd72ebaead24822d6af370f1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T11:05:12.382Z", + "quantity": 67.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "97af38ac35cbacabd58c0344edb2f910", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T11:10:12.128Z", + "quantity": 66.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3dab4ec0de23dacedc395143730616f8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T11:15:11.724Z", + "quantity": 65.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0fa559311f996216bb1f587f0b9d7b94", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T11:20:11.81Z", + "quantity": 64.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f5eb97417c233f5b80801425f6c15a37", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T11:25:12.039Z", + "quantity": 63.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b4d1aff707d671da823addf5627a4d90", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T11:30:12.454Z", + "quantity": 63.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b5b6b682ae8e44b6393ad4359c9822ef", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T11:35:12.366Z", + "quantity": 62.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "25a891c56a38ac40b004a2a743dc5caf", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T11:40:11.683Z", + "quantity": 62.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b6fb504b42585ce1fb20af47c8d69917", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T11:45:12.363Z", + "quantity": 66.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e3d4856dc7d332bbf49c543391f581b8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T11:45:12.363Z", + "quantity": 66.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ac7e05c2e460c4f32c7f5d8c0ac7fd9b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T11:50:12.603Z", + "quantity": 66.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e653fc8eaff174294d624888a89ff3b8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T11:55:12.607Z", + "quantity": 67.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0f8618443f6328f406b112859eac8fcb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T12:00:12.154Z", + "quantity": 67.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5bb262fcc44f4e8375e2bd2def5cfa9c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T12:05:12.542Z", + "quantity": 70.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "10f7d02d45d0bea99a60133cb1b01f09", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T12:10:12.098Z", + "quantity": 71.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "79a8c9a90d363fa422eb3168fb3c6e62", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T12:15:12.291Z", + "quantity": 72.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "94385ed2941251e9406661d5038e2eb0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T12:20:12.659Z", + "quantity": 74.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "acc0f4f5ea0eca677292381d6b43b701", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T12:25:12.765Z", + "quantity": 73.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0ab32e7744e859949b564e517444afef", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T12:30:11.782Z", + "quantity": 74.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d3d7642a319fb671a66b4398035eaa28", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T12:35:12.771Z", + "quantity": 79.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "939f6f76fa858a085483d446a52233a8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T12:40:12.489Z", + "quantity": 74.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f82956c9ade8ae73535b5b0fa7ab3aa4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T12:45:12.555Z", + "quantity": 72.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d508e640952ebc3a8a4467d3e64979ce", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T12:50:11.94Z", + "quantity": 76.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7e57463afe3e7fed35b379b980d48633", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T12:55:11.896Z", + "quantity": 77.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "81870cde749a32be2c76cbaac1d5f515", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T13:00:13.996Z", + "quantity": 78.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fccddc12247277fffe5103c9306ec87a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T13:05:12.513Z", + "quantity": 79.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "081544c4265cabbbcdac18411048fbeb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T13:10:12.409Z", + "quantity": 78.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "44776ff1197b486ce2eab102bb69d851", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T13:15:12.826Z", + "quantity": 79.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "660304ed678df33fccdfd5026cd8490d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T13:20:12.531Z", + "quantity": 80.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "210f8539857e938cad641071e84652ef", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T13:25:11.947Z", + "quantity": 81.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "98836e2f858daae7b33053869b9d9bda", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T13:30:12.786Z", + "quantity": 80.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2889895603fdb7fe1de7a4ca8caf1ded", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T13:35:12.583Z", + "quantity": 82.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "356bc6130bdf685332f1b456fb0a66bc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T13:40:12.357Z", + "quantity": 84.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b78efeccc0d2c3743b3b12f308c15d0c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T13:45:12.428Z", + "quantity": 86.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "44789822c4431e52d24d5db52d437759", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T13:50:12.918Z", + "quantity": 89.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fb9613d00fd26216d856c8facbe06143", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T13:55:12.025Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3b9c0a90241e29abf4c4974dea5c85ff", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T13:55:12.025Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5d865c3794af24d09b45f5ffe75b2021", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T14:00:12.827Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "70d14b2e5dced5f906ee3c4639e031c7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T14:05:12.48Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fc12df4afc8146ca3b2ef23f9af7d725", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T14:10:12.91Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "001f00ab9b27d85ca14bfee60bc15371", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T14:15:12.777Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fa92fa3f8be1103242850c61e2ce36b7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T14:20:12.354Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a9915849ae600353652196b8b63fd93f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T14:25:12.77Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f5fd604623cd78e7eab5f73ef45f6bff", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T14:30:12.961Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "32bddbdd8a8869f9a2ec089bb63d9d6b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T14:35:12.76Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e188e0b9212a9732bff97c798ca36393", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T14:40:12.884Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "95416d89d29c8db78453df70a56750dd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T14:45:12.482Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b76897041c62ed21f9778844d0f360e3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T14:50:12.697Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "32cd6a8547d9fac3d7d86cfe0dbe9b3e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T14:55:12.143Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "55258a3a09204914b750c21112de5242", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T15:00:14.251Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "85cb5073d372a0aec158f20fe9357799", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T15:05:12.151Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "de992158aad869b2b17d146fe7a41529", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T15:10:12.957Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fd3fe9b75951d012285c8e78fd8c885f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T15:15:13.076Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "82e1279075eb1aa4c966e29d66cda370", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T15:20:12.244Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4d8b4be851796e5e88d122d4af22c42b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T15:25:12.573Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a44af46c8a251bc97964f9f9b5e9433d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T15:30:12.629Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f4bc83e0d02446e4d9f62d2d41403965", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T15:35:12.697Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2b549a6406c0601fc392355423ec5d6d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T15:40:13.126Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f5af5b8d1cc6650688f1a8b114ba65c0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T15:45:12.723Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6904d5c271d29f534280cb5e098401c3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T15:50:13.092Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fbdf6855361e77ea73a1b0c3aa6e9b0e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T15:55:12.36Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c1257a46e9e384d293eab9b89d67a8dc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T16:00:12.284Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2874eab4286462f156df6dc384cca9a2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T16:05:12.753Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d7e0d0ce9d11e0fb8f2e3d8f6625997a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T16:05:12.753Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "da393e85d919b2a1f2e736c5d15b9482", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T16:10:12.342Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4a4f3abb6f65bf7222a617eccdcc8ebc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T16:15:12.96Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "983c231955cad6319b7397e1e27f7c35", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T16:20:12.879Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "94b5ddf5f46d0d0eadfd2fda28f0b107", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T16:25:12.977Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5c2c3234ab71dda5b53d2ac81d42537c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T16:30:12.571Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7f069af29a80e633843c0ba6986c8393", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T16:35:12.877Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a17ab769337fcf6bb331ad02bfea7f8c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T16:40:12.421Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fb18acd295cca88a0754e9b07ae2abf2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T16:45:12.498Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e84602c2e3c67d99a011901de7dd2b95", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T16:50:12.748Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "08da4621df826b676c5ebb47c8e00f7d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T16:55:12.394Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f9ed309aa3ed895d175c44f8cef90035", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T17:00:13.032Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f31486c2e589b74f5e21ba6b3403cb01", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T17:05:13.743Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "93cfdd7bb50586d072aa06c2b17de2a2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T17:10:13.303Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4e98f80fae1a2b2a61c9755fdc20a272", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T17:15:12.428Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0ee1fbce2d9f189ccd8757366de8112b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T17:20:13.1Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b1a225e29732f7257e5bceec357080c9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T17:25:13.573Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "65742ac4eee5f210c34604e9792f57ba", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T17:30:13.068Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "24f10ad0771042fe41cd4baef72b4397", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T17:35:12.65Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "86e2acc9ddeb1a6dadeed0e4ed9d12b6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T17:40:12.622Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4be99df1601445319fb8894c1fd91b66", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T17:45:12.615Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a59ace01ffe51c491e4e37e4d0ba60b5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T17:50:12.946Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2ed93fa61089c2074a56854e19b87792", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T17:55:12.599Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1ce86fb694bf783e4a56f1e36ef5d2a9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T18:00:13.186Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d406419055031f252e6a16d28f6a1a0e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T18:00:13.186Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "765d0754097a40f8162c6ce1ddebbf86", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T18:05:13.404Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9404efc663a10a795b22b6be146bd6ac", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T18:10:13.032Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "735d590274a0d21c44e843007e1c7097", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T18:15:12.94Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cfd6fc2b3ae4206f0e9f7f59d43ab850", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T18:20:13.217Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "606ad7db08ef01f8e3f71366bd956148", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T18:25:13.006Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "dd17472fbd65754783e7efbb82acc4c5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T18:30:13.154Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c7e54b2af0520013fdadcef20f95cdf0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T18:35:13.034Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ec01df26942e92b3065f649aa975cef8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T18:40:13.212Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9e208dd84591ec3316f37db37fe4eac4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T18:45:13.117Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7a5cd330e74141182400742c21530570", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T18:50:13.335Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "baa8b287915382923fdd318216abf820", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T18:55:13.277Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0492f50be07b0b762f81e9a8a1a9a081", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T19:00:12.571Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b3fdb29224bd3bb427586f86e5ab3777", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T19:05:12.886Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a308de69d9990b6a05219648d21c9670", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T19:10:13.973Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a23421d394f1dd90db7b049916980b27", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T19:15:13.291Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "53abb13254fcbd3cee95b5f92507361e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T19:20:13.499Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d33f88cad2023963b75f467cfccec2d0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T19:25:12.997Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2472890e15a9c11a0d986b59cc731ffa", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T19:30:12.825Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3db0457d254c7d4a7734ebcf2219669f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T19:35:12.803Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "865ab41126f22a55f47f09fba3ef2e7b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T19:40:13.056Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "361d0968974c8d80d00726f8e3a9b613", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T19:45:12.8Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "db9196c443d5eb1bf33b277fa33205b9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T19:50:13.34Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4eab2a5ef69a9932b70a7839ca58fb17", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T19:55:12.648Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b4ff44b2a64396ed757335f2a9199e77", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T20:00:13.11Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0291fbd4359cb4ac5f5ce8793bad25e4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T20:05:13.517Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ca43653d60d0b9b62c0c93f930dfa6cf", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T20:10:12.769Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "638d0e6270f6d15e1ed7d13db6e4ce4b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T20:10:12.769Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6a7d6b9c56b3d2cf63c04f83e55851f2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T20:15:13.305Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ef69345899f7708f7412105f1da8a1de", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T20:20:13.224Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "48818beec7ec1a13485accc3a140d939", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T20:25:13.617Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d15d98d3acb1fa6e252186647a8183b0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T20:30:12.714Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2816d05f8785ddfc41166631795d4d99", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T20:35:13.573Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d899efecd0898f3dd49e44e6c161c8e2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T20:40:13.591Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f445617efed259d0e7a77eb3387ad615", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T20:45:13.419Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0579c0a7ca5a005c17a0a5d34af57121", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T20:50:13.478Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5cc1a5e4f02d9e35fdc4a9e4d24466d6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T20:55:14.769Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8f12191a9f3cf0a3e7bfc82ab2b96ddc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T21:00:13.624Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a1dd5c7c543cae99b7ef7c569831995e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T21:05:12.918Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6e42f547f4927a0093fb3e7c500ad5c9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T21:10:14.267Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d87fc9446413fdb61641d8acb9b99f52", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T21:15:13.518Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4960927f39205475ac9e72cb3c94c617", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T21:20:13.235Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4170f18ec29da21e2ab61a0b8b8f1da4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T21:25:13.092Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cd335189d30c3ff9d89be7769c6eddea", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T21:30:13.201Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "956a7a15781d8f8003b9346af5371a81", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T21:35:13.042Z", + "quantity": 91.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4bfccb01b8855ebd805164e64052c158", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T21:40:13.582Z", + "quantity": 90.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c2734083efde5473ac8314fdbff2005c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T21:45:13.712Z", + "quantity": 88.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b68a509b6b491e892ece374ac9324594", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T21:50:12.869Z", + "quantity": 88.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9e025f6bd0123cc114873df47474eb82", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T21:55:13.03Z", + "quantity": 87.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9b9389ec102d6204b1b8c840e9941985", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T22:00:13.23Z", + "quantity": 86.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6433e908c8722179d4fde33b6a1ae4bf", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T22:05:13.73Z", + "quantity": 86.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e8935d7dd2c076c7dea230be09a3e0ff", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T22:10:13.656Z", + "quantity": 85.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "836619b4ce8d315993833dc2482edf68", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T22:15:13.843Z", + "quantity": 85.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e4e710d9885d32cca983851bbf02645a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T22:20:13.847Z", + "quantity": 85.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "266ca3e2a8ffd29bb485deaebc738b15", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T22:25:13.554Z", + "quantity": 86.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7b712265487b164a2e68b72c8ab6bd45", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T22:25:13.554Z", + "quantity": 86.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d7cdb5edb53bb4f14142e44dc582ed49", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T22:30:13.067Z", + "quantity": 84.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "72b84403ba9bfe507470727f7dbc05e2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T22:35:13.428Z", + "quantity": 84.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3f0f55c0450f77521eae1f732c72eeec", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T22:40:13.083Z", + "quantity": 85.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2cebf5b575f3b9d140d20e17c3946ee9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T22:45:13.004Z", + "quantity": 90.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4cab2d8ffd7ecac3a447198d3502de98", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T22:50:13.267Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1e843bdc31334a4f7122036759e61c44", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T22:55:13.526Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "39441c32b3bb92d56a92e7f5aefb2d4f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T23:00:13.156Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f20664f9d0b2cee1682a76d46d6b5cde", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T23:05:13.646Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d91264f1026aa3be75a60da4540ab1b5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T23:10:14.957Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f278eeed876d53df1eba6d2f5797fd3b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T23:15:13.63Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ba0b8e3e6a2b335b4a83c5e46ce15593", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T23:20:13.356Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "effa1a0304c76a51fdcfbd1e61295f58", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T23:25:13.115Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e59b327b203779c220073086d06cc8f5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T23:30:13.994Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "86dfad24f37f16d9890244c65b92f2b9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T23:35:13.926Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "758bff65ff1b617262e934429632eb90", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T23:40:13.397Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7caf2210b0681bc518a5c05c182041df", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T23:45:13.607Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2d8260322bfbff91ebfeecc74ed32f73", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T23:50:13.183Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "42701454dfb3b384d4e49774911d7b51", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-21T23:55:13.311Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e9ea3ef8c8f8cc085c2fb32a295721f4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T00:00:13.604Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5bd2fc62425700732aa4c6bfbd30a470", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T00:05:13.254Z", + "quantity": 118.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "50c8a7b7e8079d02e8def2931726660a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T00:10:13.943Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "19b4d8a4529614d783c21be4f80113e8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T00:15:13.245Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "578850617e204169beee792048d75e0c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T00:20:13.904Z", + "quantity": 124.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "afbef4b7affa2c8b421d2091c0a93ae6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T00:25:13.334Z", + "quantity": 127.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d1485178bf54f6de9a46e247049fa0bb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T00:30:13.601Z", + "quantity": 128.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "97f9498e1c662189c74575e6b4175a95", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T00:35:13.298Z", + "quantity": 127.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c8e553beff148b4ba643bf05f2a512ca", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T00:35:13.298Z", + "quantity": 127.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8a262942c5c040d3f16a16bf44e421c9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T00:40:13.285Z", + "quantity": 127.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b7cc49bb8408f8e8a9f3ff9028fd0b15", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T00:45:13.138Z", + "quantity": 129.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8dda179736fc83ecda3669caccf60c2a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T00:50:14.074Z", + "quantity": 128.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6b0864777beaea806d13a8ea9a3d7422", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T00:55:13.907Z", + "quantity": 126.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7d048c825f976f18cb76239746ced901", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T01:00:14.096Z", + "quantity": 125.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8b71a3fc97c32c86d354dc43920417e9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T01:05:13.816Z", + "quantity": 125.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "32a3117d0c500d58c237e6fddc7d45af", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T01:10:13.586Z", + "quantity": 124.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6fe51f779d1b80ce3aeb3c08e2742472", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T01:15:15.06Z", + "quantity": 123.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ee365974173b810ea5562a3dedca547b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T01:20:13.623Z", + "quantity": 126.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d1d1b05089ca1efff45fc1ad208aff81", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T01:25:13.534Z", + "quantity": 126.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "11bb9f63a20e8fbeb533867b9ed4ea18", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T01:30:13.781Z", + "quantity": 134.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "efa281478286deacd8c367c965f6e9f5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T01:35:14.083Z", + "quantity": 145.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c89c5de16fadda2d52e698c5beced6e3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T01:40:13.225Z", + "quantity": 146.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f232e2d27242965d693378fa61bba1d4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T01:45:13.552Z", + "quantity": 151.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "eeb1ddd7fcf0c0256bcd34e124d2fd72", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T01:50:13.607Z", + "quantity": 154.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fcd3e1ed833492f8dcb2618b5eaf3c24", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T01:55:13.592Z", + "quantity": 170.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e33bfaca23d10d8c57e5d4e4f22b38d2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T02:00:13.853Z", + "quantity": 180.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bf42ef04dd153dc04d3b3d751fc472dd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T02:05:14.091Z", + "quantity": 183.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "309829f46bb25ddb6313cbb8638bca0c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T02:10:13.621Z", + "quantity": 178.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "dba406bab8f20dcb83776d3d3ac104e5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T02:15:13.31Z", + "quantity": 172.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a8e7385c47e7867b30fea66bd2bde04a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T02:20:13.67Z", + "quantity": 170.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9139e5df75cbfa0b80c4eaf8050e294f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T02:25:14.179Z", + "quantity": 170.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2c9d44ab4b49033618c9e586faa15506", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T02:30:14.212Z", + "quantity": 171.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f24e22294637f68471ada081e8ca8814", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T02:35:13.995Z", + "quantity": 168.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "56ce206eed756f314210e987ed091cf2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T02:40:13.538Z", + "quantity": 169.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f94f4591078f8c3db7a2d3134e0bce79", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T02:45:13.413Z", + "quantity": 171.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9ec0cf15b860bad4d119b993b3ebf029", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T02:50:13.741Z", + "quantity": 179.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "848f5ff3d87bb0fdcc45377992aad237", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T02:50:13.741Z", + "quantity": 179.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0d656e88437336798c671bef1b7cc9b1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T02:55:13.801Z", + "quantity": 180.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "baa7273ec415dc9b442495f00bc4231a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T03:00:14.31Z", + "quantity": 174.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "12bb27f4706a48a09f6226f70e155062", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T03:05:14.223Z", + "quantity": 173.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6479173beacebdfd114d1d03a08d7f9b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T03:10:13.866Z", + "quantity": 177.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9caf3f493010bda979f2855ccb1b1999", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T03:15:14.176Z", + "quantity": 176.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5f0a856a8b34cfb5bd8ad8b9ff94367a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T03:20:14.948Z", + "quantity": 180.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "97b244f6b03a2eba89775ff6036e0587", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T03:25:13.43Z", + "quantity": 188.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1db9afb1471d85cb91edb86b2e85bc45", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T03:30:14.427Z", + "quantity": 185.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "56fd2a0cab258bab2c14605737631e27", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T03:35:13.899Z", + "quantity": 188.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "96dc4dbbd1bec58044e8009cfb8fbb54", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T03:40:14.396Z", + "quantity": 195.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3428050bf991380d3706c927924e2e11", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T03:45:13.935Z", + "quantity": 200.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e789a183705f7023b01d332f735c9b36", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T03:50:14.346Z", + "quantity": 203.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0fb4a22a2ca4a9f2ae4f4e62a2332f00", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T03:55:13.721Z", + "quantity": 196.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "68ed068116dbc6c35265bf6dfbccea30", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T04:00:14.007Z", + "quantity": 205.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "69002a0b5f8c39c980f0b728b32c18dc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T04:05:13.764Z", + "quantity": 213.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b32be516e50642aa854a4d3c200ae66a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T04:10:14.381Z", + "quantity": 215.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cdc917e8e39130c2f181605ff6b8a30f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T04:15:14.295Z", + "quantity": 220.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6e03e883e5c46af9090c110c4b97abf4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T04:20:14.279Z", + "quantity": 224.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4386fbe53bfb3e861f91a29dc8b3f287", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T04:25:14.412Z", + "quantity": 223.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4888f4a1075846e4e90f45b1eab59c0e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T04:30:13.654Z", + "quantity": 223.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a72bc6b92ad6281ad338bdd694c10b4c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T04:35:14.029Z", + "quantity": 227.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f46a07f181ce191130039cde51f081bc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T04:40:14.18Z", + "quantity": 227.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "17945be332ec0bcdf3dad9c5eab81df0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T04:45:14.204Z", + "quantity": 226.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "44e13aba551050111824023283b73299", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T04:50:13.65Z", + "quantity": 220.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "56fc03a47ad1e6ff34c2745a13eccbca", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T04:55:13.73Z", + "quantity": 218.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bbdd6915b6e9eedc7729abbf6331865b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T04:55:13.73Z", + "quantity": 218.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6e88beb8d984386f5444a105fafdd6e4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T05:00:13.642Z", + "quantity": 222.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1f9c5292a33353dfedc35da5893b5e72", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T05:05:14.201Z", + "quantity": 215.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a71df57c286b9831fc7e49fb72e8af88", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T05:10:13.804Z", + "quantity": 211.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9d39632e9e4eda15999e436933922652", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T05:15:14.014Z", + "quantity": 212.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "519ffe305f232c74c110167f022a07bf", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T05:20:15.4Z", + "quantity": 210.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2fcdb6d92f55ba2cfe2393e992d4356e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T05:25:14.101Z", + "quantity": 204.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4b5de4ffafd3aea72ea1ada58f134cf3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T05:30:13.803Z", + "quantity": 205.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f1d697030afec00ebc6e2406f0a6a9b0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T05:35:14.519Z", + "quantity": 205.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "72dadbce8d2c243d999e1c6e26277196", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T05:40:14.255Z", + "quantity": 203.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d3742258b476daeb1514accc9974a8ae", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T05:45:13.992Z", + "quantity": 200.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f95992ca341ac607c9632fc6931ed427", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T05:50:13.975Z", + "quantity": 197.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bf8575a88ed691816196e0714a838e0c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T05:55:13.706Z", + "quantity": 191.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ac2c647c19d9bc3f0deeec74347440a9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T06:00:14.141Z", + "quantity": 188.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "849139747fa837d3d61e9c21c444b58c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T06:05:14.333Z", + "quantity": 185.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ef7978776c6835c387ab78e6e3cce114", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T06:10:14.049Z", + "quantity": 183.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "57589779ba41a9f3de14a3a579df41dc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T06:15:14.02Z", + "quantity": 174.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4bb27aac6eaea6f0934cc061c3d98e19", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T06:20:13.975Z", + "quantity": 175.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a4fb29117e27908ba0084c2bcbb09585", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T06:25:14.022Z", + "quantity": 178.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "92dd27c49cab11427cd74a1dfd08a2b2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T06:30:14.186Z", + "quantity": 185.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5ba35d47d5eefbace1f69464df4e14e7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T06:35:14.036Z", + "quantity": 188.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "22c0cc59ab086ce5858985666f756124", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T06:40:14.629Z", + "quantity": 189.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6c34df0434eeab8a66a676455b7677d7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T06:45:14.493Z", + "quantity": 184.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d8995bfcd57faa4978813d5b3de07044", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T06:50:14.25Z", + "quantity": 179.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ec279aa4d6c897c56dce464654190894", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T06:55:13.979Z", + "quantity": 179.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c9c705051ca8a41dfe9991f32b839834", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T07:00:14.168Z", + "quantity": 180.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7b0a95b9620c54119d0952f183fbe6ec", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T07:05:14.776Z", + "quantity": 178.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ce9905f98bb4aedbfd01f6c1c995842e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T07:05:14.776Z", + "quantity": 178.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "75e8a15e9548c3f6d1361f05db24182a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T07:10:14.644Z", + "quantity": 172.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c92ae721cc96a930d13718a9746e8b4a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T07:15:14.209Z", + "quantity": 165.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bef6ce1592f759f494fafaa01f06290b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T07:20:14.236Z", + "quantity": 160.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c7653b5ec5bda470b17f866ff1255843", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T07:25:16.136Z", + "quantity": 156.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "840431fb9fa2c91e071ff90bded4a2d5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T07:30:14.876Z", + "quantity": 153.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a4b3fa7539f7fca88f3ec548bd9fd38e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T07:35:14.78Z", + "quantity": 149.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "19c5056520e3e515f84c931593098989", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T07:40:14.778Z", + "quantity": 144.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "983b8fa3cee0d596ae9c0f72ae6f41ca", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T07:45:14.658Z", + "quantity": 143.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "684033ec7573d5790ada97ec3e994d0a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T07:50:14.292Z", + "quantity": 132.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "47a89bac752c682d85fd7386dccd5c59", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T07:55:14.93Z", + "quantity": 125.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fecb83e527e766eb5d1ee6494028eb9b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T08:00:13.965Z", + "quantity": 124.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e46d1fb55b8d6a9637a24a4b9d43e2d7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T08:05:14.552Z", + "quantity": 123.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "931ad4db40f571c4d35e42db3dd9d31c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T08:10:14.185Z", + "quantity": 124.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b7159283bdb8e9e04a7aa8b526cf9ebf", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T08:15:14.395Z", + "quantity": 133.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "25354a6a0491609815ef7e7aa045d7aa", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T08:20:14.304Z", + "quantity": 134.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "29fd7a7c60b4a00d2b8951c4fb16387d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T08:25:14.887Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "19c86a45c684a26f11b99b3a9ac44745", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T08:30:15.022Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2ef439a881eb43928a40614a14472f6a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T08:35:14.165Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8f6403b6993f95ca022ba408e311a7e6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T08:40:14.303Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5c89292fe1ee80f461ffb8975ea5af72", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T08:45:15.042Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "331a2b0ebec014e36ed52878d966737f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T08:50:14.921Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3c61e4146e2f307595f6e3f4924c9019", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T08:50:14.921Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1532e70c368437bb6e1f0327aa90c6bb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T08:55:14.683Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9b6a133eabae8f9adcdcb622db1e622a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T09:00:14.41Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0a6585c5d3caff87e17eca0ec52d5770", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T09:05:14.649Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e4249d34290f94ab26483fc2b34ab62b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T09:10:14.8Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9e0f00bd100390b4eeb24e159bb222ff", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T09:15:14.9Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0c35872b0b7ae7da73b21c4d4ff46c44", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T09:20:14.281Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9377f5a4a5bcb0fa0516f46ee238ae20", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T09:25:15.682Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "261fda4003579d85240017eb0df39a70", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T09:30:14.309Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "28fd296269f6c80dbb995d517ec84a7e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T09:35:14.932Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "17af412544db8ca74db6ee077b7a2868", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T09:40:14.871Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b2aa657ccc4d429ce5187e399da5c8bc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T09:45:14.443Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ea7646aebf31c8a81f8980697b01d803", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T09:50:15.147Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "98a013bca43daa1f4f5db19f7aa6d8c5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T09:55:14.305Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3bf27d946835123c0b60cf77ba3b539b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T10:00:14.88Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7d147d0863f6bebabf9f5dcef3fcd98d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T10:05:14.351Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d70964f7492def7907522de9b935918c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T10:10:14.503Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2fe17de9b26bf6d280a1d6151c6f3b64", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T10:15:14.944Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cdb67e0624f25f2a29bd3a3894e5c3d2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T10:20:14.5Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "df5b86f2875bde675f0d6325165820c5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T10:25:15.185Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5a6621d5c73e05a3ac43c0c4f7a2efe2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T10:30:14.401Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8d09d3568227db948ece9d9ed0d820d8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T10:35:14.968Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6f89e5fbb5f485041ff451d137fc26b9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T10:40:15.084Z", + "quantity": 90.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4bcc33a0783c5146b998250ad04c9455", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T10:45:15.127Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e836b08a1d6e773d38728bf73710d304", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T10:50:14.486Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "66241952a276c1ad18523b075c035272", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T10:55:14.373Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9ff55204ccfa9949daadbac62a9e0ccb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T10:55:14.373Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e455937ba8cfb1a7f6015192d55a3f7c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T11:00:15.096Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "32030bbe614e2d2a0d36fbfd40440c98", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T11:05:15.134Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "846b430d02105b6df51ec2696014f8a7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T11:10:14.949Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "eab6875d7eea336d2cd3bb07af10af98", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T11:15:14.808Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a366ebddffaac1b9210f5a7c2d5c4794", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T11:20:15.095Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f3dff41dc3673414d3bd185692ea64f6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T11:25:15.788Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "98d45b18f75c554817b9e45f7b3ee1e2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T11:30:14.995Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1ac98e19223860588d308c0d001470b0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T11:35:15.407Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "509429191d8bb13807b8ea7789e2c817", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T11:40:14.85Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b5e680b8c821bf7663d3299c3371bd6d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T11:45:15.361Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a790f9236412cf0e7abd161747166311", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T11:50:14.79Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "52faf003286f4c81b5d1c35b19f87bb8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T11:55:14.809Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "59faceaca5f428c154c57e24e97bd943", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T12:00:15.214Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4a626337626ce06ae2e5201feed3cbc8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T12:05:15.259Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8466297b3a358f45dad0036d1d8d4fa9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T12:10:14.561Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "da2ede4a274e7ed27d8780aa86298ded", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T12:15:14.581Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8b5f63d8ed6fb338cee6997e00862c9e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T12:20:14.644Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8cb6443b908b9878c0940f0b501cb087", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T12:25:15.213Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7b4aca24ead8b8a122eaa86d7eb2742d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T12:30:14.946Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "60cb0cbc86730fb8fd593e734b23bcfd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T12:35:15.512Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "af2747829da031a97b8280dc067711e1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T12:40:14.743Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f4da8c1f848f35cde4e3e538e99143d3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T12:45:15.405Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1d865fc2478f4387f5c7894f2e04b1ac", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T12:50:15.392Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "999c98e808f75e56d3524375c187ef5d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T12:55:14.993Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "265d2be0c5a8596d04a25a188eb7179d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T13:00:15.055Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4e109d1a6227922ccee8e80d83934a03", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T13:00:15.055Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "98301197e25dacb93ddd8ed308af2511", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T13:05:15.28Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b5b164dce81e9fd7015379682ddb2415", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T13:10:14.977Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5de88675f0ac5feef9a127dca9a55989", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T13:15:15.511Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "83667ce7e3f5fb4293fe52a2693074b3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T13:20:15.399Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d4e858584432e43e78f1531628a90539", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T13:25:16.002Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "802102beb00e3d704d1e4277dc055430", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T13:30:15.549Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ddcc9cb721b27d48a096738b8e126267", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T13:35:14.666Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9d0e1a5de5f844ef53f118988a4f00b4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T13:40:15.636Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "295f9a31bdb2e06c47ede07a983fc434", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T13:45:14.765Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "52c0600ad172fb8e73d9d5ba7744dab5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T13:50:15.618Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "69b284bb7c4a889b1a3d8bcc6fff6e93", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T13:55:15.675Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "326413be10f89ae2e963c4d4ca7835e8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T14:00:15.375Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "911ec1e385c5145edc60ecdc066e9c7f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T14:05:14.951Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "71cf289351d1b0b35142eb0799093efa", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T14:10:15.628Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "558bfad3d27e1d403a7afadac2a83888", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T14:15:15.639Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2e4eb76923bded769be05281d92ed3ef", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T14:20:15.155Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7ee6352f50948de3404073dd9d2ef46d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T14:25:15.657Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "189ccc5da4326e28421d1ec8596047e2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T14:30:14.926Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7e1151b0e09c2bd096fef51b8e8470ce", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T14:35:14.829Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a661b317bb3ee32810f67e91362e1c9b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T14:40:15.044Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "31629e83c6cebcf120a0163c44c069cd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T14:45:15.306Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c6410a3d19e649f657f5baccff6fda83", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T14:50:15.539Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4d2a52121c25fef002766ebd2747eb43", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T14:55:15.332Z", + "quantity": 118.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "11484221f9200fa2764c5b8554384ff7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T15:00:15.72Z", + "quantity": 118.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "284da1b6d56829c57789eacf7b9f594d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T15:05:14.946Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3417f0f6ab2f9534e660bb05c5190b81", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T15:05:14.946Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8f2ea4b8665723b82122c9add1c61dd7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T15:10:14.996Z", + "quantity": 118.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cab405f2b40857aa15f03905fadfc070", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T15:15:15.54Z", + "quantity": 118.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "dcf49e5cdb3cf0c4d6c9e589eaa97732", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T15:20:15.255Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cde3046e6a10674799020a2b8e9bb57b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T15:25:16.689Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f1d0623ba52c5d003f12fb4ab6842d26", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T15:30:15.606Z", + "quantity": 131.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "83e896dc427a8bddbe4bb223aa2ce992", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T15:35:15.336Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0183dbde8d444bb956f2b2b2864530d3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T15:40:15.303Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d3d15f06d23aebad8f9872681a061c42", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T15:45:15.997Z", + "quantity": 132.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f7af9a0551751e46423206adcd00493e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T15:50:15.649Z", + "quantity": 124.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "eaa68b929c44dd565d3aa5e4ae02a797", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T15:55:15.259Z", + "quantity": 126.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9360b6e296f92f3ebc7cbd655f47a1a2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T16:00:15.674Z", + "quantity": 130.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "07fadad7bb2cf580ad0f62f55a96e9af", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T16:05:15.242Z", + "quantity": 121.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "42aa4231c013d27fa43a57f00057edc9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T16:10:15.179Z", + "quantity": 125.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "dcc86c79154c2896a85a3b4130b8f30c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T16:15:15.172Z", + "quantity": 125.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d5c4bd6297843dc5a3a446a320e7b2fb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T16:20:15.279Z", + "quantity": 125.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fdd106a5a87b29808f904c55c766b139", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T16:25:15.174Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0307b06ea0d0ff5b1861d64dc4947606", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T16:30:15.398Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e4c2b574ec090eedacfafacae95d4577", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T16:35:15.657Z", + "quantity": 120.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c126351584221a21b12eb323fc1e573f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T16:40:15.641Z", + "quantity": 120.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "46b9132096a71edbe707f868a768a334", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T16:45:15.232Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8332955195ce98ab2fee2688702c1279", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T16:50:15.309Z", + "quantity": 120.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d5beea6c163935f4bf9664e4a4778025", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T16:55:15.171Z", + "quantity": 123.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4938478bed5187db533a5b1c00e72b9b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T17:00:15.566Z", + "quantity": 125.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a2c0b5aba8c3699cb1987c583f8488e1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T17:05:15.304Z", + "quantity": 120.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "dc3f07220f46351d9236b3ceda0f6f24", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T17:10:15.755Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5e83d761fa2d2b967618b5450f521cc5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T17:15:15.172Z", + "quantity": 123.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "aac6e9ed8dc963e2424f6e260f2046ab", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T17:20:15.656Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6910c344c46083e058f39632bdc44780", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T17:25:15.293Z", + "quantity": 120.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b334aec1af2a896126f2809a320458a6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T17:30:17.948Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "083279a5c91768915c5dc0e601f8be4f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T17:35:16.048Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fb192e84c0c1e8ab58d0f856e314c2c3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T17:40:16.639Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9fb7b70a9635a4fcf6a64fc16bc18caf", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T17:45:15.515Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "161a71ad85922d220fb6168e9afe7607", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T17:50:15.913Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "eb81524debdcd92c9221649b92a91315", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T17:55:15.322Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "05343c8955ff5b976029039ea59ff7d7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T18:00:15.738Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "16f43c56e2d33ab1e0a0e645155a2617", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T18:05:16.006Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bda115eb48ea827cec7d9fd28f966711", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T18:10:16.104Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b218d5f27807442c580976c02019c898", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T18:15:15.488Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c18aecd5c9fc2385ba3f5352a59ee51c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T18:20:15.576Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ecae03966a01e7ea48143f1a4493eb30", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T18:25:16.164Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5c4d19d39673bb2cab47cfda68bddbb8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T18:30:15.751Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "95f04b36031fe6f70146e95aa3c97f54", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T18:35:15.578Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "156cdfa84283bcd2bd83099f8d245bd4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T18:40:15.286Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0972ed646ac07dad68f764a2d6176005", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T18:45:15.845Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a343c03b6bd8008cb1952388e6157748", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T18:50:16.102Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3c1c5ef522c379d3264972697f3bb73d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T18:55:15.634Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5ca1da2d4d5d8e9947327c56f16845b7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T19:00:15.327Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9ba12a1d9f659045b19866ff4251c564", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T19:05:16.027Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "350b0d94944f414befc2ad6c8a3397c2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T19:10:16.01Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8d749e8a073bf3e545a25211e0912303", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T19:10:16.01Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a0b95bad622a58378133f33b6b51de40", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T19:15:15.499Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "215e0ab6d5019f063e5d57c4870ac7c7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T19:20:16.194Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "77d0fd9828460059a3c0c9383d8bc96d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T19:25:15.888Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a6bee3c40bb391a046fb038621f81242", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T19:30:16.067Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d6a7fdf6438aeb973089a3c962e40004", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T19:35:17.038Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d7096239fb5bfdc16c967a018a9dee7c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T19:40:16.203Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "782ef3178f12f74ba607a93c36e4d65d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T19:45:15.901Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fad9e0118362c377cdcf6aa2b1ed9be3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T19:50:15.837Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3dd1d5cd9d7f9f990d0913963833c8a5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T19:55:16.301Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "965975d606a49aaafd6f3e6d4d0afbe4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T20:00:15.468Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "80aa7184a29f91ff7621f057409054a7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T20:05:15.767Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3ab03afcae1c1216a04b07b29bd51edc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T20:10:15.967Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f9bdfc40335828376dcb702e464760e0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T20:15:15.818Z", + "quantity": 132.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e9695829e393f36acaaa39d58ad21573", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T20:20:16.275Z", + "quantity": 144.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bfc9f0157ee60db30ff1cde6ed3c66c9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T20:25:16.604Z", + "quantity": 159.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "303569ba5faadaf4bc8b235b540902e2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T20:30:16.013Z", + "quantity": 166.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "87777b80ba0ea26fb731d1735e08cd9d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T20:35:16.232Z", + "quantity": 181.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ff48bf10955dcc0ee02a1bfff2ce2644", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T20:40:15.618Z", + "quantity": 195.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "83044e12f10a08f167cef0232731654a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T20:45:15.568Z", + "quantity": 204.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "242f91e38ee635a4b997e86b1d7c65b4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T20:50:15.908Z", + "quantity": 201.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4834bb26d33a8ae2ef7ce2efec119d89", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T20:55:16.118Z", + "quantity": 203.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "71e8b58721b0db68a0730b62ff66337e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T21:00:16.109Z", + "quantity": 209.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cdc395c7c6032693f1b14fa2347d666a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T21:05:16.437Z", + "quantity": 209.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c78c593555856ad9a2e378fd5ba19ecc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T21:10:15.771Z", + "quantity": 210.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e1d2fe112941bc82464215547a491db0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T21:10:15.771Z", + "quantity": 210.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "409e73a3ef86271ad23d8b2e3f0b4706", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T21:15:16.504Z", + "quantity": 209.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "410d08e44bf32166ab4c82633bbaf0df", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T21:20:16.079Z", + "quantity": 215.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ef614f9fc4054cf3d35e4ebf1ad4775e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T21:25:15.83Z", + "quantity": 211.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "83cd5c8f69856fc0ef1a559da6146303", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T21:30:16.363Z", + "quantity": 211.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "18a58a9c5f44874a647d9cfcb906cecb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T21:35:16.508Z", + "quantity": 210.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "eb1326ad5504640a057fcb5401ba98b1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T21:40:17.807Z", + "quantity": 206.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cbe79ec830bedb6e5938c8d724fba166", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T21:45:15.702Z", + "quantity": 205.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1f785fa12e1a905de8be68dfd3279143", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T21:50:17.193Z", + "quantity": 199.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6f4e5d1028db697c70993e20b4f5dac2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T21:55:16.04Z", + "quantity": 193.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "957645b0b2f2e12401b55988228b7d21", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T22:00:15.717Z", + "quantity": 186.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b73300e87b82ccbb3b6489f26f73ecec", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T22:05:16.544Z", + "quantity": 179.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "278ea426aff4c989d5761cb0e98730f1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T22:10:15.717Z", + "quantity": 173.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "10b6063012acfbacab15f547e96e19b0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T22:15:16.504Z", + "quantity": 163.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1a6cf07971f0d57a8808369242cf0eef", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T22:20:16.035Z", + "quantity": 165.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "794d259b9b32a72b1705ebcf33af532c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T22:25:15.676Z", + "quantity": 165.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3207154e45f5fbf8d89e103c37306d21", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T22:30:15.659Z", + "quantity": 160.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9c031e0e7a31b93f4d6d38f78f84b296", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T22:35:16.054Z", + "quantity": 154.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "675d6ac958f40297e8bcfdc97d1254cc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T22:40:16.352Z", + "quantity": 153.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5b8bbb091d5587f9b0b6308408077906", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T22:45:16.873Z", + "quantity": 146.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bda01e231ad776b08064110b31245bb5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T22:50:17.872Z", + "quantity": 142.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e584c347724aadc876b734243bb75705", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T22:55:16.081Z", + "quantity": 138.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "37be951e1d3bf5c37683d6c83917d067", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T23:00:16.193Z", + "quantity": 134.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3a84cae15be7c3b418db89cb5d127d95", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T23:05:16.297Z", + "quantity": 131.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "76b3d095e035edcf1842aca25b46be53", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T23:05:16.297Z", + "quantity": 131.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7909356362d6da666c2951495d7f9373", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T23:10:16.863Z", + "quantity": 127.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8bd08f2cf5a1c9d24c6cd85b62cebae8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T23:15:15.931Z", + "quantity": 124.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b93e6fea3c807771ee731841b87e2832", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T23:20:16.444Z", + "quantity": 118.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fa8d5277923ffbd2d4225c9d673abbe1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T23:25:16.184Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "56dd81db78af25e5af6b9fb7a6004e51", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T23:30:17.935Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6fe32c8aa7c72494c2bce348e77938c8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T23:35:17.935Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d5fa59cea810ca5b15966e17f5a082c1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T23:40:20.796Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b9b45369229d1a88ec863b1297c4c9d6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T23:45:24.441Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a9bdf5fd1271bd4ad15219db3573390e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T23:50:24.441Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "19d0ad23b95859572279a352bddd6280", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-22T23:55:24.441Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "db0897707b035687e88efef495decc88", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T00:00:24.441Z", + "quantity": 90.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cb65a610e88d7d0dd43c5a3f8d81d0e6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T00:05:24.14Z", + "quantity": 88.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "12b9a20fe2cb59f7507ef797f585947c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T00:10:24.14Z", + "quantity": 85.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "eff7e85224f9915932abeda90c76d8a1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T00:15:24.14Z", + "quantity": 85.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "67ae99cd1ea11a63aecb6f97c6d1b8c5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T00:20:26.144Z", + "quantity": 83.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9922b4ca3486e44b46823f549681b677", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T00:25:17.401Z", + "quantity": 81.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8ef0f43307fc059f7e5c3309eb7a28de", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T00:30:17.321Z", + "quantity": 79.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "23d093e460cb9cdf020fb13ce3825938", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T00:35:17.321Z", + "quantity": 79.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "60234caf162bfef4d386c74753271a19", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T00:40:16.768Z", + "quantity": 78.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ac6720345be4118e11e41c2aef42d032", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T00:45:16.815Z", + "quantity": 78.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cefd7b4fa1ebc56cbf3c8df515bd629d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T00:50:16.364Z", + "quantity": 76.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "11af03a86b62480e12b538274adfd67a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T00:55:16.02Z", + "quantity": 75.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "20e66138c66c0584517e6caad17de19d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T01:00:16.937Z", + "quantity": 75.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fd2bdc341ac374b166890119ecc55f37", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T01:05:16.999Z", + "quantity": 74.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9356ac6948900866b4d4e7c12eed1ff5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T01:10:16.423Z", + "quantity": 74.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0c70c24efa90f31ecfff81f593f73837", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T01:15:16.205Z", + "quantity": 79.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "131a0f8a916549bae12402ab776a0cd5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T01:15:16.205Z", + "quantity": 79.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5266ae707cec9300f8d006bb2353e984", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T01:20:16.868Z", + "quantity": 87.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d4ee0cdbef0c3d1e271b4ca01a081cc0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T01:25:16.386Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ac01eac6ecee879036571e476bf5627e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T01:30:18.009Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8501b422817bbe14e9d0245b5bb2cd16", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T01:35:16.918Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "92ce4e463c83af0f2e6f9dbf5da7f2ae", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T01:40:16.878Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ee104fee1d0c1e6e0f2fd35ac8d15c92", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T01:45:16.415Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3546d9e03c6abaf0fa0a4a87b85cff45", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T01:50:16.5Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5fa21193a4c3cd7e24eb927bcf65a99a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T01:55:16.803Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "74a672c2c62bc5cc0018ad25af58c4c7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T02:00:17.338Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d6491ce44ed983a075cb4d2adf4676b7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T02:05:16.66Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ffef7fd1333b1b105679e836a20677b9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T02:10:17.257Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2e16245f75f8e17b476f4413040ae1ba", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T02:15:16.15Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a90d4e7d3783a82fe28b1d99e9be3080", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T02:20:16.755Z", + "quantity": 128.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c8c5c0c42f9cd352e93e953c520cb360", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T02:25:19.956Z", + "quantity": 135.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "669b0399fd41cdcfd359ad7dc6367892", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T02:30:16.389Z", + "quantity": 138.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bfd72cf26ca17dd7f1545b2f98271749", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T02:35:17.103Z", + "quantity": 137.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ac2f333605fe2fa5a48335edc124c5f5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T02:40:16.593Z", + "quantity": 133.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d911fb0db1c297b1c248c642b98e2166", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T02:45:17.007Z", + "quantity": 128.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d17a98e1874ef24665557eeded9f9425", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T02:50:16.228Z", + "quantity": 120.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2db8d6c821b35906c50cf3303415668d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T02:55:16.741Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c313f16419ff6d8afa3c12df08546b80", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T03:00:16.402Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d299861b0a3785f96ed7d055b0ad124b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T03:05:16.835Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "353487806ae7432a5c992855cbe8abde", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T03:10:17.137Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "252ecb725ab58ee4bdae66a6e293751b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T03:15:17.038Z", + "quantity": 121.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "580b03cc1476fee636996251286cee47", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T03:20:16.212Z", + "quantity": 126.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a7bccb6d8b2598a361d454358e7ca549", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T03:25:16.983Z", + "quantity": 131.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d7e5362b0afbadfc7bc0651ee42cc2aa", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T03:25:16.983Z", + "quantity": 131.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a4126b671e581919128a1c470497b598", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T03:30:17.155Z", + "quantity": 132.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a19259a0f0ca674e073e1e98985e94b8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T03:35:16.546Z", + "quantity": 134.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "95ee1ea2f0c5dee1da436ac62cca112b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T03:40:16.719Z", + "quantity": 134.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b4c42076add240b07960b8cadef62cf2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T03:45:17.049Z", + "quantity": 142.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "82f8d8f992083c4ffeb530465f748e9b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T03:50:17.253Z", + "quantity": 147.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "13dcaef7ad78874aaac4a123d39537e6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T03:55:16.724Z", + "quantity": 149.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a3bdc2217e1a0d457014b43826cdbce7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T04:00:16.618Z", + "quantity": 150.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e9ed67ef51bbad82e794eb162f17e6c5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T04:05:17.12Z", + "quantity": 156.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "112c0e831c17b35b4bb7a115fe27a3cf", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T04:10:16.465Z", + "quantity": 162.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "66555e3ef32a72ae07b42da55675d085", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T04:15:16.625Z", + "quantity": 172.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "28e4f5adfa50a5cead594299998f5329", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T04:20:17.283Z", + "quantity": 184.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "323a718e9b3d84f9bc81078b2ea90a02", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T04:25:16.406Z", + "quantity": 181.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "97f155137e9d90daaf139d576105abf2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T04:30:18.784Z", + "quantity": 181.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4e41d6e4a9c3b96c1637868c5da6c441", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T04:35:16.506Z", + "quantity": 191.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "dec4be7da99688f41152e210dc725ffd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T04:40:16.424Z", + "quantity": 203.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bb20a21d92182495429a701f46b18893", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T04:45:16.949Z", + "quantity": 217.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d6072a4c7acb03adaa12c9da54213b77", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T04:50:17.379Z", + "quantity": 224.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "27e97f98a8f73c52270e75a0701b9a97", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T04:55:17.256Z", + "quantity": 234.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2873f455c05acaa54232aade4fdb4196", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T05:00:16.427Z", + "quantity": 241.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b942895d4ab0cb8a63e7dfcb6f240d66", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T05:05:16.452Z", + "quantity": 241.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cf5394a92e0f23dcf9a8ac9381c6855b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T05:10:16.704Z", + "quantity": 238.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "197ef40fb1e670659943176f67231d25", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T05:15:17.245Z", + "quantity": 234.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6035c952b8eb5cbc5f5cf0d576b35225", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T05:15:17.245Z", + "quantity": 234.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3c8a450b909eafa58a578e7ed382eee5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T05:20:16.705Z", + "quantity": 237.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "be41ab2873c6b709ac8e46b6e1b8c748", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T05:25:16.479Z", + "quantity": 230.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e1a330c5f855c802e997854d4025a0d8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T05:30:16.769Z", + "quantity": 222.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9740d52c975e54a4011205a0d8ef3dda", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T05:35:16.919Z", + "quantity": 218.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8859764085f6e360775852bfa5e42c44", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T05:40:16.937Z", + "quantity": 218.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "579e54a9a785f768872a131804a879f6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T05:45:16.937Z", + "quantity": 213.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5fcd3d6a4e0a960bc32afabfa0c52e45", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T05:50:16.504Z", + "quantity": 216.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0e1337c01bc9d360d050dc1b591e3d9f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T05:55:17.368Z", + "quantity": 221.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e36264f2990f625974bbdd24e71e5d01", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T06:00:17.347Z", + "quantity": 222.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "20435128ae41482ad47e3ddee140426e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T06:05:17.276Z", + "quantity": 216.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "68e853aad204e716e1f2c04d807a34d1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T06:10:16.55Z", + "quantity": 203.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ae1f85fcd2ece2d270d1a5d72eb2ebe4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T06:15:16.589Z", + "quantity": 198.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "11824f3015d3f931fc2c6347c85c4e82", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T06:20:17.482Z", + "quantity": 195.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "09621f8c4c3324c93f21401a0c0dcfdd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T06:25:17.572Z", + "quantity": 192.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "38fcce00113819a347de70b16801d8a8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T06:30:18.514Z", + "quantity": 189.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8e7f25610e72f987219153891c3e4b8f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T06:35:17.01Z", + "quantity": 187.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0550e44d9b5713652ad0b773d45010d8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T06:40:17.518Z", + "quantity": 185.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8e547e6f050c26fd64568c5448b93371", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T06:45:17.455Z", + "quantity": 183.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bc7c941dcf63d1286b0fda429e123722", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T06:50:17.297Z", + "quantity": 182.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3b3c17d7d30012eda2fb67a67ca9773d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T06:55:17.506Z", + "quantity": 183.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "448f1eabd1b368f0f90c6cfe0c23d143", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T07:00:17.486Z", + "quantity": 181.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ed042b37da64c63473a0aa35f74e98d3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T07:05:17.244Z", + "quantity": 175.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "92e23750f8758e360eb1c9f726e916f5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T07:10:16.678Z", + "quantity": 180.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e2da1e909877b64ba9cbf28d2d7d64d4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T07:15:16.684Z", + "quantity": 181.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "93d009ffc9b56fa0c4d5e0f013be571c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T07:15:16.684Z", + "quantity": 181.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "57ab111f51b04f3e4c499f2d6d62c858", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T07:20:17.013Z", + "quantity": 179.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2ebd39a8faa0094727689e0cd2ff6cb8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T07:25:16.958Z", + "quantity": 180.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7c06db6d01905035eb537797e08aeeb9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T07:30:17.567Z", + "quantity": 185.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7838dad2e748be2b82937350b2c4c145", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T07:35:16.769Z", + "quantity": 187.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1ba41ef1469f0263c005e63be43e11ea", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T07:40:17.445Z", + "quantity": 180.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "21bf87262625e4c0742a2f02930b1289", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T07:45:17.134Z", + "quantity": 173.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b5f782eaaa6474a1e665cbf5daa882ab", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T07:50:16.885Z", + "quantity": 173.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "18ce1bf7fe7e920d0e3144eb2eea5053", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T07:55:17.697Z", + "quantity": 179.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "293ffba2c236b874dfc9c409fd8e0197", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T08:00:17.086Z", + "quantity": 180.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f094a10006f3004d49500d0b3e8bb592", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T08:05:17.682Z", + "quantity": 180.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9e2f5080ec52ba1e7892477f61e04ab1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T08:10:17.493Z", + "quantity": 179.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9d3bf955cd1d66765817ad35b373e3aa", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T08:15:16.859Z", + "quantity": 176.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a2e8a0753ca7ac728b89932394142c6f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T08:20:17.677Z", + "quantity": 177.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f8210198cd24bee350fec0f320828ba4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T08:25:16.846Z", + "quantity": 177.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3460d1ddc5f0f1e6f3eb2b962b9a2180", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T08:30:18.121Z", + "quantity": 174.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "eabe21a9c035af959f14db34be75d971", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T08:35:16.98Z", + "quantity": 172.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fcc8d7031a301bce33b50bd7923e2659", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T08:40:17.72Z", + "quantity": 173.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "40c0003775e6f5b9ee0abc318a49926a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T08:45:17.068Z", + "quantity": 169.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2a1a8cc4a76f81151bd35074723ade3c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T08:50:17.536Z", + "quantity": 165.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b5fc508754d93284b77de0017b209bf8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T08:55:17.132Z", + "quantity": 161.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cc55d841a4f168d801489bddab018267", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T09:00:17.221Z", + "quantity": 151.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "969add678faf4833710f16b8b1076bd6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T09:05:17.437Z", + "quantity": 147.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "34cf15c999e64f2c6dfe6b4d97a107b1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T09:10:17.583Z", + "quantity": 147.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d1bf7e4c72b5182d944658e2c90c6ed3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T09:15:17.69Z", + "quantity": 150.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "01620f009be511330dd226ce26957a3c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T09:20:17.36Z", + "quantity": 153.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e44c26807b02af9c3b13ecd39dc92600", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T09:25:17.229Z", + "quantity": 146.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ade151d081cbf2da69ada91ba5d60264", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T09:25:17.229Z", + "quantity": 146.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "479fa3791e2c3e017e98639b3be5db7d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T09:30:17.734Z", + "quantity": 143.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ef89bb1b9aadf8413d27def20f2e9db0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T09:35:17.879Z", + "quantity": 140.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d60f79da45b31fffa38b5a744c945426", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T09:40:17.06Z", + "quantity": 134.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4520d69c46cc38ea28089523d2e4898f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T09:45:17.591Z", + "quantity": 140.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d447a37d979e9d356a12a1c9667036e5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T09:50:17.946Z", + "quantity": 147.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2fc831f13ba7dc5b08c6777697063953", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T09:55:17.721Z", + "quantity": 139.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "504f64cc510c19179e8d915d2f8723f0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T10:00:17.743Z", + "quantity": 136.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "50c3decfdd89ab58361f95eff403f8e5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T10:05:17.051Z", + "quantity": 143.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9c4e0eceab5c3c34d136c708db2e8c23", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T10:10:17.806Z", + "quantity": 143.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3b46873b63b3a23f6db479e85b117b31", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T10:15:17.682Z", + "quantity": 134.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b0794d1d1a3ad9c35cabc97bfd21c440", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T10:20:17.481Z", + "quantity": 128.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8188c38622667c327634b60ca8fe191e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T10:25:17.696Z", + "quantity": 126.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ae1ceae5419b506ae0e19af53b0203b1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T10:30:17.933Z", + "quantity": 124.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "99474b9cf10c42b75f99f4b1b036ba6d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T10:35:18.876Z", + "quantity": 128.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e572c5b9ec0fceeefffa055ff501fa97", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T10:40:17.328Z", + "quantity": 129.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6bf8478d13d07da83de4d11a78ce4550", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T10:45:17.403Z", + "quantity": 127.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8b8c5aded44b2caa5a4d00d19bbfa499", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T10:50:17.341Z", + "quantity": 123.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "27660e8dce15f33bb53f8190bd45250c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T10:55:17.957Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2a53eb802b2dd956c41193ea43ee2270", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T11:00:17.677Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "40c788f35672d17f5f2abe54b5a326c4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T11:05:18.014Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1992d92f26c9de8dd0230c0dc10fe369", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T11:10:17.424Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "af26a1347f5a988eb10d27d6e49d4cb8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T11:15:17.117Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "487d2ad3d52ddbbfbb09fe1d30682526", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T11:15:17.117Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6291484a4e9f53f33b4fdf6912e7d1f2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T11:20:17.527Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8b2db19f4efd50241475a818ce619391", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T11:25:17.929Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e48ae0b4264b0b4b22fa7fc546f275f3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T11:30:17.188Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f45de261f1d76d45b58a1f047cc7ec19", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T11:35:17.917Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8a2d7e4ea8c3e44a93ed2f39ae6c1ecd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T11:40:17.659Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "94f68a581e83fb21eae30fb6ce6786c6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T11:45:17.968Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "aac25332bd80feb650263225fcba4478", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T11:50:18.157Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c1329af0e79cba28468ea0cca414ba46", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T11:55:18.113Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cfbc905431d6ff5612788ea7dbf59120", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T12:00:18.111Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "db3741b3400ac9ed407ac40285d024f6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T12:05:18.018Z", + "quantity": 91.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1bec8c313abb4ada54de223b8285394d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T12:10:17.215Z", + "quantity": 91.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e84f2c19c37f5fd3ead88273c8695e94", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T12:15:17.437Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "76a04c8965ffd79b66ff537934cd01e3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T12:20:17.823Z", + "quantity": 87.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6f994299e04b4f2680cf32e2d1d1f4df", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T12:25:17.419Z", + "quantity": 86.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ba56bf4ccc20857e8a4c27bdab779298", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T12:30:18.051Z", + "quantity": 86.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f6ff65d202c11937f9f57c7a3aca0f71", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T12:35:17.297Z", + "quantity": 84.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "60300a1a2c82a977f76fb997c2d5f714", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T12:40:19.308Z", + "quantity": 83.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "85153fb6a0f1d4363336f0aea41f7881", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T12:45:17.578Z", + "quantity": 82.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bff6d04f739caab58da731b041cb7426", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T12:50:17.336Z", + "quantity": 80.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2d041d4611b860ec1d5cd4c3339fae10", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T12:55:17.35Z", + "quantity": 79.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4deca064cc2040aead35bc68e3df1725", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T13:00:18.268Z", + "quantity": 77.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "acf516f0ee75eddf86884ef1b08bdead", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T13:05:18.201Z", + "quantity": 74.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d463fead05d7af4013d2a76e23c73557", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T13:10:17.82Z", + "quantity": 75.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7c318823d414a48e74e5220cceeff3ca", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T13:15:18.181Z", + "quantity": 77.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6764902d9625c9b23e0692725521b68d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T13:20:17.824Z", + "quantity": 77.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "af736e4aca0737e748e63c610e033341", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T13:25:17.849Z", + "quantity": 76.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "241fc20f3aa302ee7811c093b5e23a5c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T13:25:17.849Z", + "quantity": 76.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8bdce4ade81b23c74273dd9bcbc9a687", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T13:30:18.174Z", + "quantity": 71.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "39632df29851246cd1a1218f0bc2cc80", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T13:35:18.122Z", + "quantity": 68.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c916df90c76f4c33b1168c0ed7a38dc7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T13:40:18.281Z", + "quantity": 69.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bda67ab7d9005500ff9098ae5c85e57d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T13:45:17.548Z", + "quantity": 69.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "274ce87a8c09b2a69a1d4105ec3f43f0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T13:50:17.824Z", + "quantity": 69.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d0edb4ca18d716a8e8c814b6e84a7a07", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T13:55:18.143Z", + "quantity": 71.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4e6d63f1888ac2a37b8caaf615ff61f1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T14:00:18.19Z", + "quantity": 70.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "53dbe0f0850ff25debeb0c4d2cfda0a0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T14:05:17.828Z", + "quantity": 70.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1033c40ad3f661a1caed6d27634fc0fa", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T14:10:17.777Z", + "quantity": 71.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6a2c49ee647d18504714ac12b5f04012", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T14:15:18.148Z", + "quantity": 70.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c6f744a0548e265e496d353d9a562229", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T14:20:18.117Z", + "quantity": 71.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a1ee2257e92d144e9f98bed5e32d8cf0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T14:25:17.602Z", + "quantity": 72.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7759c7741b0967260a57f9766f661203", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T14:30:18.37Z", + "quantity": 74.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a6592b823c15196e1d6d9838f9f11533", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T14:35:17.986Z", + "quantity": 74.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "55f678124f561889392b6ecaa7866690", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T14:40:19.582Z", + "quantity": 76.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2ec0ede115b86b77413984bf1172462f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T14:45:18.373Z", + "quantity": 77.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "47d98a767fc1eb35e7ff1844a7b70a3a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T14:50:18.04Z", + "quantity": 77.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b0567db6fbb582f6645c533243110dbe", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T14:55:18.083Z", + "quantity": 75.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8a6666bd2492f6c14895e0031c9053a0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T15:00:18.449Z", + "quantity": 74.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8f4d4ed5489e49fcd4062e1b79aa770a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T15:05:18.319Z", + "quantity": 84.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bd900bafe61c200b7aa8d4f84fe7ba9e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T15:10:18.232Z", + "quantity": 91.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "03662c9218d9107a3e7c59351bd8081e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T15:15:18.545Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a14000bf232296389ead401ba5447156", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T15:20:18.537Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e299ca263335bbdfcb967b221bff161d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T15:25:17.746Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "37a99475539fa6dcd1f97f9ab8ff0d5c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T15:30:18.449Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "efaa976a19a280d006209f8a2ea076a5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T15:35:18.444Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "deea4bc68f21e3ab430d56737cd61f35", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T15:40:18.036Z", + "quantity": 121.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "37a143790d24318ac7de2126b7e4c48b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T15:40:18.036Z", + "quantity": 121.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4908418ab0adf630f1c981ab971ad910", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T15:45:17.938Z", + "quantity": 120.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a7caba71e74a7689a6affe16c28df289", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T15:50:18.267Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "edd2b698076443e09f3f78346271a1d6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T15:55:18.634Z", + "quantity": 121.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "dcc65f32b82ecda0b0f9a88d2f7c3940", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T16:00:18.209Z", + "quantity": 120.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4eb8cc2a38777d4abb087115deb75600", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T16:05:18.5Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a8c40baa3d05267fcb2645283daffc11", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T16:10:18.359Z", + "quantity": 121.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f90a012826910d0da9eba3ef217b300b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T16:15:17.992Z", + "quantity": 124.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "be21f994801c06b3966cdac72b2a7ed7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T16:20:17.982Z", + "quantity": 121.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a29738f93cf42bb5f296af453ce3bcfc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T16:25:18.301Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e39bcc5cd62e49e89b9af3cd60200dad", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T16:30:17.776Z", + "quantity": 120.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0df8a7abcc8d37dca761aa66c06b5e3c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T16:35:18.706Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fe10ecccc2658067d44badd55d712faf", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T16:40:19.108Z", + "quantity": 121.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "792ef739dfb02d084a6c97968383988a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T16:46:26.153Z", + "quantity": 81.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "30439c6a871ac83c331c82467089ee10", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T16:51:26.153Z", + "quantity": 87.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "054c07997ee5c0f609aa9bfcacd7e794", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T16:56:26.153Z", + "quantity": 88.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0683912277aa3121d3e0b4d7f05112fa", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T17:01:26.153Z", + "quantity": 91.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1ff717d3c6d8a049ad4ff4af66a8832e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T17:06:26.153Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "086e8a817e62f0fcad5297de89950105", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T17:11:24.987Z", + "quantity": 78.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a870179c79f06c0b52916505a52e205a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T17:11:27.987Z", + "quantity": 131.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a20362886f76163517f20ad33636af63", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T17:16:24.377Z", + "quantity": 131.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "07d974b35b158787c24e0905b6535b28", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T17:21:21.284Z", + "quantity": 136.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "10c3f204df20b95b51c5e58c54dddc7c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T17:26:21.593Z", + "quantity": 163.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cf03edb787f36afb0d2f7334a2616088", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T17:31:21.19Z", + "quantity": 169.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4a9cbf2c2591c28e4a759465b5dc2f01", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T17:36:21.188Z", + "quantity": 161.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e67abca7dc99e8e842e64ae71c37048b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T18:06:20.848Z", + "quantity": 148.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "72a9f338830b13000a2d7c108a63b8ea", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T18:11:21.455Z", + "quantity": 146.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5e2b93754a13da2087dfcc8ac9d8e84e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T18:16:21.012Z", + "quantity": 144.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6e4771b290c212b20be8aee6063653b1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T18:21:21.481Z", + "quantity": 140.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4c743631a86a364d8096f96e47472a7a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T18:26:20.638Z", + "quantity": 137.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "dd06bfb4dafc4b928368ca3e7eb089c8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T18:31:21.215Z", + "quantity": 138.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "97b7a80bb8e5e3972cea7df036074d51", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T18:36:21.161Z", + "quantity": 135.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4a2b306d8c88c7b86c5f0a1fb32efe06", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T18:41:21.509Z", + "quantity": 131.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a152c1454cc4935969c00efa7de49160", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T18:46:21.316Z", + "quantity": 128.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0f78e8f1aae484cceb4e65f91199c8cb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T18:51:21.185Z", + "quantity": 129.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bb7cef6283f6ef4de94bac23ef9b7c26", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T18:56:21.6Z", + "quantity": 118.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5cdf2cf4678b0afcca96485cd0c008b8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T19:01:20.809Z", + "quantity": 125.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a2f1364069b0f1a167efe570b0626480", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T19:06:21.017Z", + "quantity": 125.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8cd8a95a7d77181db58400c314e62d57", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T19:11:21.497Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "486aff5f3ad0964d3fdff2a65d6be188", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T19:16:21.382Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "03d854ae612d44ec62aa59d80cf2d706", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T19:21:22.69Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2c0dfdfa9195076d550bed3e827c6b5e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T19:26:21.465Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3e2b7595609882d2b04d1a7ce494d1d3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T19:31:20.855Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d6e851216b633ea708b495057980fe57", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T19:36:20.741Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8629602fc9ef99c7a333954b3ab13d04", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T19:41:21.164Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "09c586c81abb3857c69d3c8f06485554", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T19:41:21.164Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "54306bdaccaefd9c6c8305fa8b2ec262", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T19:46:20.861Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d06c97ab1b3978dbe1754fdcc8b13799", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T19:51:21.108Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e47681b688a25138ae444e3a7407172b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T19:56:20.848Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "59727690f5a4e2e07a7fd226cfecd5de", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T20:01:21.677Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1b0d47bafcb18443a537031d317aaaea", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T20:06:21.124Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "466c6aae0e21055a7e0114a7dc4c6353", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T20:11:21.572Z", + "quantity": 125.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9074549637a548ef70f9359c4e71d3f0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T20:16:21.167Z", + "quantity": 145.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "61587aa0032f0b9d11425d810fc6c621", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T20:21:20.896Z", + "quantity": 169.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e9599a6b25c50def50532996a7a98b6f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T20:26:21.452Z", + "quantity": 187.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "934de0463991995813171b2f5e0591f4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T20:31:21.449Z", + "quantity": 182.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "275f62ddd9edf499e6273e6a25f92d98", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T20:36:21.276Z", + "quantity": 168.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "da71699601bcc72e54585e795b3e6ce1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T20:36:26.276Z", + "quantity": 153.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2f7a69bb08091e0b70988f70ea05b1c4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T20:41:20.927Z", + "quantity": 158.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "faf2a7f8def40e8b17b7cc1be6ce551d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T20:46:20.892Z", + "quantity": 148.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3349e1b0451f1b302a64160faf6e90e7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T20:51:21.408Z", + "quantity": 149.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2c4de3b70fc9e6fabc8bb02f5fcc33fa", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T20:56:20.745Z", + "quantity": 154.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f042c34f45affb6892e03583f675e670", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T21:01:20.906Z", + "quantity": 152.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1b541f6a6594c72cbcfd97662d21d622", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T21:06:20.847Z", + "quantity": 150.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7737dbd7a20fd30f38506562e60331ac", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T21:11:21.618Z", + "quantity": 139.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "203b94dbb891a3b1874203dab35ad868", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T21:16:21.315Z", + "quantity": 130.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "71147e2869ed6dbb2dec7dbc4c3f8de7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T21:21:22.019Z", + "quantity": 128.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ed75f8df6bb2e0d590b0fa46d03fe813", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T21:26:21.547Z", + "quantity": 121.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a1f7218c22e5fa5c32453e84fe1db941", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T21:31:20.856Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6013caad345a82672c0bac81e3a97855", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T21:36:21.116Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "41c92df19b816fdbe347e2ce61860273", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T21:41:21.228Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1e4eb65389ebc5d1e25c8491c37a188a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T21:41:21.228Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4241effc4d58b80b0158b4f5cc16ae50", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T21:46:21.667Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d2ff8983631cabae24727787370ce7a0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T21:51:20.789Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cd6d7423c66ca467c33ee873c5aec960", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T21:56:21.658Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f608d9f6943309feba7dd2c0e1fdffe4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T22:01:21.62Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "677b6bde1e72ba6cb1514ee52a5c1687", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T22:06:21.22Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4c3a1db6a8fb569c0c3ac54e208d7f25", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T22:11:20.929Z", + "quantity": 84.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "60d9a7ac837840847ddec1225b3640ef", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T22:16:21.77Z", + "quantity": 80.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "69830a2d5e376d246eebaaf611b0c9fe", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T22:21:21.011Z", + "quantity": 74.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b7cc5b35e62cbc9c40fb6ae8fe2bf4a7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T22:26:21.599Z", + "quantity": 66.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "55911fd0495bfd3b18522ee5d51f4b1e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T22:31:20.86Z", + "quantity": 65.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e346b0c0f8e1ae529ddaa445dfe9d326", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T22:36:21.446Z", + "quantity": 65.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5a8ca84ed6c12695173ad6e609722e04", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T22:41:21.665Z", + "quantity": 62.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2ec4d95062b810b72d670ce14eecd177", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T22:46:21.312Z", + "quantity": 73.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e580bdef94fec857339da8aa5ba10334", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T22:51:21.401Z", + "quantity": 77.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "75d17b00601d865d5ef5a7206c0dc638", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T22:56:21.269Z", + "quantity": 72.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ddd55413190f28f23062a5ffe4cf016d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T23:01:20.934Z", + "quantity": 64.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "38bc6785fbe67fd84470292869b07314", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T23:01:28.934Z", + "quantity": 69.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4976bf2c36840cd127b850a627b71015", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T23:06:21.404Z", + "quantity": 90.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9290efde33c7db3960863cbca62a3365", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T23:11:20.854Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "774ecccb5434e23608cfc1547ed078e8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T23:16:21.484Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "94a7bbe317b92db130b22e9e5b0e2e28", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T23:21:21.491Z", + "quantity": 126.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "33f6a4d5e090a9ce6cc689a64d25d9bd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T23:26:23.515Z", + "quantity": 138.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c79b0d0a968fdfb33c9ae6c45d1bf0ef", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T23:31:20.912Z", + "quantity": 162.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c89add9cba500ca0bed0c18f9f6db20d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T23:36:21.791Z", + "quantity": 183.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "492ff02dff8e2607d80e787f24775710", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T23:41:21.412Z", + "quantity": 196.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fc9a1d1b372adde1ff86c2458f2e3496", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T23:46:21.872Z", + "quantity": 204.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7dee7662efcba96d22e653095e25525a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T23:51:21.004Z", + "quantity": 218.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "09951fe7410e3988cc056ce7230517a6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T23:51:21.004Z", + "quantity": 218.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "901dbbe56713a144872ef1b2c8fa77b5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-23T23:56:21.825Z", + "quantity": 245.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "77f08a014b2f3dfe2e96b380e03cc7ba", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T00:01:21.298Z", + "quantity": 261.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d4e3859a2b1d56eae304ebb05c819c98", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T00:06:21.796Z", + "quantity": 274.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "10359bcb5f75e7d506774fcf36bf4a67", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T00:11:21.637Z", + "quantity": 284.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "04e092206426dafff20ce66d1241d367", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T00:16:21.569Z", + "quantity": 291.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4bd645b55123cf2c79d51d22dc01a36b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T00:21:21.853Z", + "quantity": 298.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "995aae6ef276945d333aedbb8a711511", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T00:26:21.171Z", + "quantity": 301.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2c384e3373052ed90fb84ce35660565f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T00:31:20.932Z", + "quantity": 307.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "df708d655f224e67b725ca523fe2a861", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T00:36:21.774Z", + "quantity": 307.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5571e3ee3aa787a8e23e7aff2888d9e1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T00:41:21.894Z", + "quantity": 306.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0d17246661f67864deb81ad273381e15", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T00:46:21.094Z", + "quantity": 304.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "182ebf45ab9b66c8a64847f726cc9768", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T00:51:20.968Z", + "quantity": 291.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3a4d3f388de7452060d3a0c23573ff5a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T00:56:21.561Z", + "quantity": 270.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "42399769b87206e188da25cb54b8aa11", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T00:56:26.561Z", + "quantity": 255.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cc13aee0243f10ed134c04ecf99fd3e8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T01:01:21.795Z", + "quantity": 256.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9f1f544a2442151e0a1ea06aaf214451", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T01:06:21.796Z", + "quantity": 258.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "98e8593421a3c414d445e42c3c65ae6f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T01:11:21.074Z", + "quantity": 240.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c9790b86bac0cb851731aac62527ad6a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T01:16:21.514Z", + "quantity": 247.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "248997b7295e5ce44b4f58671f04de05", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T01:21:22.858Z", + "quantity": 250.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "18013cf77c336eda29371e189f1c40f8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T01:26:22.858Z", + "quantity": 253.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8b7d147066910540718cfd24b1ab6090", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T01:31:22.858Z", + "quantity": 251.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7d11cb86ee8073495737a83ebd9abe61", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T01:36:22.858Z", + "quantity": 255.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7211137c57f5577547925836c06396db", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T01:41:22.858Z", + "quantity": 270.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7423d7d47a341e2c0b9710c2463afb2c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T01:41:22.858Z", + "quantity": 270.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d2324e4473b96cb41354d0947c4adb9b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T01:46:21.161Z", + "quantity": 273.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c722802148ace42f9a657fd04248a661", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T01:51:22.082Z", + "quantity": 267.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b8925ef7aaaaaba46d2d7656b8b2069e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T01:56:22.082Z", + "quantity": 250.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fb7b0658afbec2c6615dc0cb379ba628", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T02:01:21.141Z", + "quantity": 244.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7026f8111a13df15e6e79c682b6dbde4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T02:06:21.62Z", + "quantity": 259.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "051225bc6a643f69bc1078bceab87f62", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T02:11:21.521Z", + "quantity": 257.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "83c2f939607de95be5ea020b5c096c4d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T02:16:20.95Z", + "quantity": 250.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "371b811a2825b7f961539886c2465af6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T02:21:21.699Z", + "quantity": 246.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "449ebeae740a99e5c11d972b4b574f0d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T02:26:21.191Z", + "quantity": 241.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b28bd89b86a4d056e0736e6379cd85f3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T02:31:21.822Z", + "quantity": 233.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cdd50f86ebd98203eb312210908730e7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T02:36:22.192Z", + "quantity": 229.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ebb14b84e5cabecae3081e755f55349e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T02:41:21.863Z", + "quantity": 233.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d26750fd89bb21ac3d417c9f5d77e2fa", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T02:46:21.177Z", + "quantity": 225.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "04cb5a4139d19cc1511ad6fedfd26e12", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T02:51:21.537Z", + "quantity": 220.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0bd370735568af4c570187a709579de8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T02:56:21.176Z", + "quantity": 216.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a80205cb4c330cd96561acbd5ba2c579", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T03:01:21.113Z", + "quantity": 215.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fb009e85603481bafce3e503da46b8b1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T03:06:21.803Z", + "quantity": 215.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "65943173656402ae369e16436f5402a6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T03:11:21.961Z", + "quantity": 213.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "254e9966f669254216cf075de7acd118", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T03:16:21.643Z", + "quantity": 203.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c15e919642f4d8701605c0490588efeb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T03:21:21.579Z", + "quantity": 208.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bfca98c65a084ca7af9c03f7677f7ab7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T03:26:21.279Z", + "quantity": 210.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "62db3bd987d863bacbf11bb126b76f46", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T03:31:21.846Z", + "quantity": 213.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "af9b13211cda43c67c40a732bbfc4702", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T03:36:21.615Z", + "quantity": 213.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4a7e96f59aba75a8555de9cf45746c78", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T03:41:21.886Z", + "quantity": 216.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "74bdafcd1194b50e9c7a093b08120362", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T03:41:21.886Z", + "quantity": 216.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4fc2ba1c753fb4747d79666e25e27721", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T03:46:23.074Z", + "quantity": 216.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8c8b054345316e644d3f9c7c4bf4601a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T03:51:21.864Z", + "quantity": 217.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f4f92eb36e8371c9fca4571c7d5b0ad2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T03:56:21.82Z", + "quantity": 217.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4725844c3286343b96d5a21904fbc6e9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T04:01:21.37Z", + "quantity": 213.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1d37e559ab3ef39505f0d3d390111f11", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T04:06:21.37Z", + "quantity": 208.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f059650fcdebb30c4e24317161d27b0c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T04:11:21.37Z", + "quantity": 213.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c9e09149e1a66081b26ed03460aa6c3f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T04:16:21.349Z", + "quantity": 214.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3cc38a182452b30da1b6d2df758e0f18", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T04:21:22.008Z", + "quantity": 214.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fdf7f8955e0d789f0856465d3256555b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T04:26:21.692Z", + "quantity": 211.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2ca5253bc8dba3265cc7ef92223b27d0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T04:31:21.784Z", + "quantity": 206.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "14ac3cd766f7a76dd7237ce65136edf6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T04:36:21.446Z", + "quantity": 197.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2c9a20625ca9c0307f5980618bf324ca", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T04:41:21.77Z", + "quantity": 191.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b236de4255ed3917249bfc0b4cd6686b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T04:46:21.474Z", + "quantity": 193.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d7859570c735371f6f2a54a681c5896e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T04:51:22.086Z", + "quantity": 197.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "40e2f4a08a0301d891e43fd35b43a491", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T04:56:21.812Z", + "quantity": 202.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "34c084a2ef813ea4f7b37feb10b4cba2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T05:01:21.442Z", + "quantity": 208.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "03773703a77d991a7f6c70923ed38afd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T05:06:21.235Z", + "quantity": 214.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "dcbd54fe2e617e50a84b07d717a52901", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T05:11:21.674Z", + "quantity": 200.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "980db87f756f8d73a97e3fcd9c36dd0b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T05:16:21.922Z", + "quantity": 204.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "861bfe109f9b6496cc4f4617cbfa5d59", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T05:21:22.065Z", + "quantity": 213.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d28395c1e0663a1468e748ddb1f94832", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T05:26:21.474Z", + "quantity": 210.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "67705d220044cf4f3e263269fc73aab5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T05:31:21.855Z", + "quantity": 207.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fe9b3a19f88a667122ebce71871a2477", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T05:36:21.305Z", + "quantity": 207.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a96b1c3df701e8922fa39056f389b0c1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T05:41:21.454Z", + "quantity": 206.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "23ce888683768c3b73472052c90bb15b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T05:46:22.483Z", + "quantity": 203.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e91d03e368ca1639145253ed4c2078c4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T05:51:22.04Z", + "quantity": 199.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "979bb35f96b9be40fa3224ece908e5fa", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T05:51:22.04Z", + "quantity": 199.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9e87ed99275e485a2215566a0652c563", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T05:56:21.699Z", + "quantity": 194.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7b78e9e70e82d0ec36f2ce394efe928e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T06:01:21.569Z", + "quantity": 189.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "78e3d8bb243935253318bb48c29a2b8d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T06:06:21.305Z", + "quantity": 183.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "145868e2dc013505cdd2fd5fd1e1339f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T06:11:22.074Z", + "quantity": 176.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f69526d27769f17d3af2dac1c8ae5a71", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T06:16:22.054Z", + "quantity": 168.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0e4cd585f45678603f66f786cb99ead0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T06:21:22.113Z", + "quantity": 159.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "efb18c22149cd56764ca2e83adcbb26b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T06:26:21.201Z", + "quantity": 152.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "106ca2aead02293abe8aeacd6a08d9dc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T06:31:21.291Z", + "quantity": 144.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "980cd606704c7838125c78e63a2cce71", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T06:36:22.081Z", + "quantity": 138.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "260520fdbf7c902d915c1f38d4d8057c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T06:41:21.692Z", + "quantity": 129.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d2ebb7bf866fc8f02fc572d3f05be667", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T06:46:22.079Z", + "quantity": 124.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9f4afb470fe50e41687cc33f2ad8c5bb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T06:51:22.439Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fe7ef40caeb5e9279bc0867c2bf85da2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T06:56:22.125Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ce6993d73194153fecf39e9cab58b27e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T07:01:21.973Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "72e8114d37ca0edb5f25114475287d9f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T07:06:22.222Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8d76e7478ba7c1d0a897f5f18b1af76a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T07:11:21.932Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "889a92a5e3ef8a1a745c8c1f77b1ee6f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T07:16:21.97Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4acc614a4cf899d41f454104ded26b57", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T07:21:21.861Z", + "quantity": 90.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6ead05b51f1fce6564853cd303d46eac", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T07:26:22.071Z", + "quantity": 86.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0786e8767f9848ee2aed343b6e2a281c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T07:31:21.289Z", + "quantity": 83.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8dcac41c9e696390af0a382099697486", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T07:36:21.967Z", + "quantity": 79.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ff918abfbce1c1e098b4ecc15ee4df3a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T07:41:21.719Z", + "quantity": 77.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "72b39cb04f148f1a1d6448adc7de600a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T07:46:23.213Z", + "quantity": 78.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f0954b513f1f6f5a67d883ea17924a90", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T07:51:21.379Z", + "quantity": 75.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "19ba019ff6bbcee7f7d754b9bb8c0c83", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T07:56:21.97Z", + "quantity": 71.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "85e58689f7bde5d83a690107c83bd61a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T08:01:21.588Z", + "quantity": 69.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "86952021d83fb9f5fa46ff6f4fc71541", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T08:01:21.588Z", + "quantity": 69.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "28cb3ddc46a53980ba5e2bae20e704fe", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T08:06:21.897Z", + "quantity": 66.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bc1c2c8e4ec28e57125a812c3b4a5d28", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T08:11:21.877Z", + "quantity": 64.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3bf63c2dcfa79266008be2c2c8239358", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T08:16:21.464Z", + "quantity": 61.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4dfb63d123439e0115e3d6ae8de4f642", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T08:21:21.932Z", + "quantity": 59.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a4f4794cfc38b35dfa42850e36e1e916", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T08:26:21.981Z", + "quantity": 58.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2bb813809e287d1946221847fa15fbd6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T08:31:21.889Z", + "quantity": 57.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1a7b3d0de3973b0378d62c1d51e040f6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T08:36:21.318Z", + "quantity": 56.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4210df61bdd3d492703c621cd90e099f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T08:41:22.164Z", + "quantity": 54.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "706abb5546742537bdff6b730695be68", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T08:46:22.156Z", + "quantity": 44.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "95777ac024a2d1a1610fe4a7dfafc13e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T08:51:22.082Z", + "quantity": 46.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7bf2073be0c39a947a8cd2498acbacef", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T08:56:22.223Z", + "quantity": 49.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f42acc52b5b4bee54d5c5621174d15ec", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T09:01:21.572Z", + "quantity": 48.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fcf9b60935a1758650e10e536db8dc1d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T09:06:21.66Z", + "quantity": 49.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8c8dddff3dc01b8217ab407c46be47bf", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T09:11:22.171Z", + "quantity": 48.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "171d523f10e5596b2d6a5853121aa818", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T09:16:21.775Z", + "quantity": 46.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fe97f545cafa3862ac25e280f6892c1e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T09:21:21.343Z", + "quantity": 42.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0b84ee6970b68a0028d228c0325eeaf0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T09:26:21.836Z", + "quantity": 43.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2a09933cdc0deb8dad898cf1bc7513f0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T09:31:22.198Z", + "quantity": 47.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5d323717cdcea01200c72f17d93c6564", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T09:36:21.608Z", + "quantity": 53.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "062a7ea93db18bb8580b6832e964a103", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T09:41:21.602Z", + "quantity": 60.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c8f670689fa28f4564dc18af1f899b50", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T09:46:22.807Z", + "quantity": 64.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "aa9f47a55ce96a1686308919830caa6e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T09:51:21.796Z", + "quantity": 70.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4a839b448c4e71bcc08d059223a33f58", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T09:56:22.267Z", + "quantity": 71.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8257615c7917a936e4831dff8e8213b0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T10:01:22.066Z", + "quantity": 70.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "303dce93b349c48b8b87d90788204c61", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T10:06:21.405Z", + "quantity": 72.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bd1c0904bc69a10a3ef971b7e58ed74b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T10:11:21.928Z", + "quantity": 74.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "abcb2bdb349d9683d32a4eed237a208d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T10:16:21.978Z", + "quantity": 68.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "16906a1ee9b2ff4e70739665c744d07f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T10:21:21.835Z", + "quantity": 69.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8267974c93aa7053faabe349b2441a8e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T10:26:21.974Z", + "quantity": 71.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8d32bebea7090a68cefdf7c80e8f8c34", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T10:31:21.891Z", + "quantity": 66.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d1f683a60c08ef1571d57c6d3db71aa3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T10:36:22.08Z", + "quantity": 66.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a053faabf307e66d0080ee86d2438b32", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T10:41:21.362Z", + "quantity": 67.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "60841447a7b5bb9bf51ef3c7acaac737", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T10:46:22.27Z", + "quantity": 68.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "15f74737e691edd308856f80e257710a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T10:51:21.848Z", + "quantity": 69.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c91ab66393f950f64128c1f46b5bd512", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T10:56:21.865Z", + "quantity": 70.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "66a45c543cdd7346b4bdbeec767c1815", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T11:01:21.883Z", + "quantity": 73.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8c293c50530561028b7c4b2aae66b0b2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T11:06:21.902Z", + "quantity": 60.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "34097aa058844f6781691fe244c52c3d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T11:11:21.772Z", + "quantity": 48.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b0d244e079d8000ba96bfa5335d49f1e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T11:16:21.481Z", + "quantity": 46.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4caec88eeabd430cb059b697221a8a64", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T11:21:22.114Z", + "quantity": 67.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9c9593031c3d62df89f8b866a4a23459", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T11:26:21.522Z", + "quantity": 91.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f48465299ac433aa259503e3286d9628", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T11:31:21.997Z", + "quantity": 84.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "dd56c1fd2bd9ab10d1e9793ae4fca671", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T11:36:22.345Z", + "quantity": 75.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5a0fc62562321f07b314faf5283df572", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T11:41:22.212Z", + "quantity": 77.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "20bb8353b54894789fee9f439a670d5a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T11:46:23.061Z", + "quantity": 79.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e762861befee4d818da647554fe258dd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T11:51:21.737Z", + "quantity": 82.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "368f9ecb72b4dfd7b8991b704d009ddb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T12:11:21.986Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cd34e761963cec43c42699dfcb23b330", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T12:16:22.166Z", + "quantity": 87.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5f4a7bb12f0997a5c4632a98035607b7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T12:21:21.979Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3b9ef1793f2e1c29d8e732451adc36a6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T12:26:22.167Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "125559ae30a28c1bef1a3d7191e99206", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T12:31:21.735Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6d25b08edd622d3191b2fcffa7f2903d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T12:36:21.655Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3bab94b359f3311dd16e927cd93af959", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T12:41:22.282Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2425bb4a6ac5173b5f7d5476652514db", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T12:46:21.714Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "43c78291104a0fadce73e4cbf3801665", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T12:51:22.176Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e557227fc19b08de40da9aede53779bf", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T12:56:21.957Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f3cfccb3c578d32b506836527128a406", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T13:01:21.725Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3141c8f7d1ca9ccbd90efeede3b3f272", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T13:06:22.076Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bdbbe91d0b54644acebc7f96a947f4b4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T13:11:21.545Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3decd9ae15784becbcd2160e6be3a103", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T13:16:22.166Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "99d405cc6eb5e49bbfc98fa2990037ab", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T13:21:21.976Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1dec4fa457c88dad2a57e11ef43b4aa1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T13:26:21.785Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0329466b3c50182b7aa206032e51c1aa", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T13:31:21.715Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "faf29f5f957c80aeb9a97be68770704e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T13:36:22.475Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6307be8d3c4726f5512e4b8a340a89a8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T13:41:21.562Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f42e1a1557edbd21326e8c2e0ac5c06d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T13:46:22.361Z", + "quantity": 120.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5a1fad4171dfb76415f336b454baf9ca", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T13:51:23.69Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2f497d9da3ae52ecd00821978dc7138c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T13:56:21.749Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "866102ab710ef674eaf0d6ceb1f8fc82", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T13:56:21.749Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1245db109c8c5e2601f1873525d77ee9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T14:01:22.218Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "099abc3eda6f716e52ca913f0a93beef", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T14:06:22.526Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8ce961ceb3fe3de88deeb0fd59a4179b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T14:11:22.365Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "be529c9b64e3285177e4be4076b9866c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T14:16:22.213Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d98d284062a865f170e41fe6137166be", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T14:21:22.081Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "50af0167790085809152c7efbbd1998c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T14:26:21.649Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3839e96c96c109cca9a5be4b01cdeb1f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T14:31:21.598Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "26d6bbf21b4fcf624d45d3e551416f57", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T14:36:21.676Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "af4fec7ee24385ea5e9b1c297a6cd9ca", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T14:41:22.144Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b4c8cb0d4dd7f8494a4475c32f824d6b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T14:46:22.184Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "62d21bcef687bc9b3f3e2b8c1c8abd6c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T14:51:22.183Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9dd60e005cac5f63cac35c680a55c5c9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T14:56:21.995Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "01a58daaa39c16fb03952215bb69e3fc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T15:01:21.542Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bc2492908ae6e4b77a73c00e6ea325c3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T15:06:21.632Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1e16d3641b6554789b57b8ae801cefcb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T15:11:22.398Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "22bd2e0027d2e5a734ceb92a816e986a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T15:16:22.258Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5e85b3fa913798d498f85585fdbd2af1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T15:21:22.126Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f397c6737d5f9fcdc61b0295d71c6dd6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T15:26:22.253Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3999993bb1ea2e4af96fab7efaa90cb0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T15:31:22.182Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "50d5c9f60dabfad2132ed9806a0ac6b8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T15:36:22.15Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a7e050ef1148db4019cd368eb8e8a538", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T15:41:21.598Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "317becd2c5bd6da266eae806a6e413cc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T15:46:22.316Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ebfa94b2b4f47672f570482a309b0b57", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T15:51:24.188Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "47e2c6fa944430a665f725e2a3f9e420", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T15:51:24.188Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "409d9ee691e724edc60cccf93ba87141", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T15:56:22.296Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7c25a2e6434bad6fcd75aaed60af2498", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T16:01:22.424Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "908886ecddef12ee5c28ec5c44f778cd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T16:06:22.009Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bdb8c564a0ea35ea772c3b618246a5da", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T16:06:28.009Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4c7db83db893565870fb21905b0505ab", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T16:11:22.27Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a821002ce768f7df9c786f22e610fdde", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T16:16:22.266Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0a19be51f7c0583d0e3b53afcb1fb7b5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T16:21:21.785Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e9d0bf1a59fad678b7885524796f9960", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T16:26:22.488Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "17559c6f19a0fe066a85bbc610355472", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T16:31:22.117Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a5bbb9772cca2a84e81ee857afe819d3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T16:36:22.492Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6c85abbefa8d2f847cd84dff049d221b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T16:41:22.123Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "417a1aeef5bb658c4df2a5f561b0500e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T16:46:22.086Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fde395d03b0c762bcfe7984d240ad4a4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T16:51:22.505Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d5b162163d5e1ccd2affd5b829fbdffe", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T16:56:22.363Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ae90a3473f7d581190be4ad199195efb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T17:01:21.883Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f3247ded14ec7a150b0ea3961e80ead4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T17:06:22.602Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "27ce8dd4009e110a27726276cf65dddd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T17:11:22.562Z", + "quantity": 118.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bcabdff27f57ff8c371186e3f6a55c6c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T17:16:22.751Z", + "quantity": 121.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6230a0b0b7b16b68802dd52a8a810fa9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T17:21:22.344Z", + "quantity": 139.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "238a5379fb300c48e0835be4d80771cd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T17:26:22.526Z", + "quantity": 131.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5b7006a33358f328ab1cb2ef828fa8b8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T17:31:22.222Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0c14df96f36e00cc1158e94889e5a92e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T17:36:22.505Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "dcac115a0c621c9f807b13a7d0f1acce", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T17:36:22.505Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1258d07fe98e2b91c493d02bc9c1a519", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T17:41:21.911Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5c6c90d54f5f552bb8727c6fecfa664c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T17:46:22.167Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9fd3bcef11f0b6a8c45f1c193d0f3c85", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T17:51:22.599Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b3049bc5cd33f0c21bfc97b2e9ec1a14", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T17:56:25.93Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e2fbcd510fb28cff2cd9f970e4b4bebd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T18:01:22.185Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "758d4c066a04532720e9ab79258c5d9a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T18:06:22.297Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6b67d1a85ccedfb26c82590ffab5f5ff", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T18:11:22.902Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "60d3ef2b4df413543c9de59c1869cb79", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T18:16:22.258Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e0817f435e60e8a7e60b94c864197aee", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T18:21:22.549Z", + "quantity": 124.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ff1ab5190b37780f842b3d6210f322c8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T18:26:22.214Z", + "quantity": 128.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f2624a78aef75207a30599604f0607e4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T18:31:21.814Z", + "quantity": 134.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c876d067824de2a31a6f863470099a1b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T18:36:21.998Z", + "quantity": 139.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c2f5bec8fdb354eb8796076e7933a4bb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T18:41:21.998Z", + "quantity": 141.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b6fa5369e73097ca4b6fb132fd9dbb50", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T18:46:22.602Z", + "quantity": 143.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "403d2c5f3420d2771a899301b2a7b507", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T18:51:22.375Z", + "quantity": 148.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0056357ee170b87f18d929d9d2f2844e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T18:56:22.003Z", + "quantity": 150.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a5b02ac33a4b0902024f2da562b497ec", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T19:01:22.162Z", + "quantity": 150.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a5d9ead221d5139fe1a56de76996530a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T19:06:22.651Z", + "quantity": 147.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "dea11714b1967992bd340679fb1cfad5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T19:11:21.849Z", + "quantity": 142.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "617a0bcd187d2d4432005533d7b305eb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T19:16:22.753Z", + "quantity": 139.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "faa24c2552d6cd95701dafd16b2ad8b3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T19:21:22.301Z", + "quantity": 136.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d0469d0e5fff656392446f91f22dc600", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T19:26:22.207Z", + "quantity": 134.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "35cf7389a9decefb065f8ca136b95d74", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T19:31:22.348Z", + "quantity": 132.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "394da2884ef6edc28c11a85e3cd3dd4d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T19:36:22.237Z", + "quantity": 128.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6cdea19c90b9bee6da75990126263117", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T19:41:21.777Z", + "quantity": 125.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "54aa4fd1ccaafb2f248906711c8ff63c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T19:46:22.657Z", + "quantity": 121.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "15341edbe01907e64deef522db16a4fc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T19:51:22.309Z", + "quantity": 118.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e8c12fcb9e5e81b4c04988736dc838f4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T19:51:22.309Z", + "quantity": 118.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3ff3e0958350841e8f4fc4f5ae71b9c4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T19:56:24.399Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1a027afb3aabba6718dc6e844336f0c9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T20:01:22.546Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ab4fdccaa44573acabbc447bcdcc6486", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T20:06:22.87Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b488b8c45da24a4f3cc39118fc7b70ff", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T20:11:22.001Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "206e8b748ab1313af164199d8248f573", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T20:16:22.509Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "73d9e3480b1c073a833f0a16a3f03950", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T20:21:22.054Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "106a3de1e27ab3dc5606b2991f6ec8de", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T20:26:22.012Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b3cc89996c453fbd965f7d8748a53b09", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T20:31:22.753Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "dc211be194af09988e4ebf958ec148a4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T20:36:22.72Z", + "quantity": 91.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b19e53a6f9cad991498df4d2e0acb935", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T20:41:21.767Z", + "quantity": 88.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d2657140171b7e2007ea8835a0d8e13b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T20:46:21.748Z", + "quantity": 87.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "805c47f8b8e13ce523bfcb3b4e56c5bd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T20:51:22.066Z", + "quantity": 84.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fba2c3ff0d6c4ebdda4c5474e5e8904d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T20:56:22.055Z", + "quantity": 83.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1bcf51fffb40f5de8604655aef4320aa", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T21:01:22.034Z", + "quantity": 82.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5e581768836f1ab3425f2d07f66b2d45", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T21:06:22.233Z", + "quantity": 81.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5087c3cae69337bf658d2ec4623ca6e0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T21:11:21.831Z", + "quantity": 78.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "393ff1946c458d060703ad0cb9c0fb70", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T21:16:22.242Z", + "quantity": 79.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "56409c5906b6e4bea3d7fefa22642e0b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T21:21:22.45Z", + "quantity": 79.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b29561e784de05c0ffb2fec84023d1a1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T21:26:22.881Z", + "quantity": 73.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3af8d15945b108c53f8c95c585139d30", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T21:31:22.441Z", + "quantity": 66.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b95c40c3b42417e841a3d8cc3d518919", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T21:36:22.767Z", + "quantity": 72.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "87a205cc788d8ce351c9cdfdda8ac1f1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T21:41:21.825Z", + "quantity": 70.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "97b9a2eaa31ad48a556c1f5bea4ce70b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T21:41:21.825Z", + "quantity": 70.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "090cc3e7d98d44ec6f3e8b6569fd2598", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T21:46:22.173Z", + "quantity": 70.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3773bb4aa0d546312ee2452b4f3b74ca", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T21:51:22.671Z", + "quantity": 76.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "01258eac0f9da1632f497c8b0d2db765", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T21:56:22.249Z", + "quantity": 89.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4f521330fb3bd5dfee3c73065975d340", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T22:01:24.357Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4f040cfd551736dadeacf8d45febba8d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T22:06:22.549Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "98a40743125a773b0db1e9413b6f3a1e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T22:11:22.519Z", + "quantity": 128.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c1f60037b8633da62aa0f7a67ece395e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T22:16:22.596Z", + "quantity": 145.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a74f17a5b8877a3d0ffecff8de794f3e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T22:21:22.352Z", + "quantity": 157.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0782015ad66958c0b4dd504faa34b3a4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T22:26:22.157Z", + "quantity": 159.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "248cbe61e38fb42c2287a555009370ee", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T22:31:22.005Z", + "quantity": 171.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "96d8927bae2bf0b66b85dfd2c24f1dff", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T22:36:22.507Z", + "quantity": 182.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5d3e85404b5d946b5e79c714d1430c84", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T22:41:22.653Z", + "quantity": 192.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "440e538d9457d4bdde442fa32bb49c9b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T22:46:23.371Z", + "quantity": 197.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e234f4e43bf7feca165b1ff31eb041ef", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T22:51:23.954Z", + "quantity": 186.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1100c4256e1d00c94eb735b1c9df7630", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T22:56:22.805Z", + "quantity": 177.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "29c4915727cf944f0368df200fe6ffe1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T23:01:22.622Z", + "quantity": 174.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ef6772f91c3bb8b4a28e5507c55fb824", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T23:06:22.301Z", + "quantity": 171.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c7d01100d8256e87d056177d990e4ca0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T23:11:22.23Z", + "quantity": 162.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3ad86400597c8e95865a1fec6106eac4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T23:16:22.252Z", + "quantity": 147.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "67a56b47e358fd58ca2af37fa011bb58", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T23:21:22.517Z", + "quantity": 127.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a25c912a980a56f48f201a729573fd81", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T23:26:22.684Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "254663a2269b0906becb96d3efc8ef7c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T23:31:22.884Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "83d192ccd1bd2b9a28ea354ae0d5024d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T23:36:22.104Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4aa89243b1ef1914d8dbba003077f760", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T23:41:22.734Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7e5de98bdf192c0e512570e162f33eda", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T23:46:22.65Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "de485afddd378ebab9fddf0187eb6c49", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T23:46:22.65Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "461ce86ba8455635771614666358d389", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T23:51:22.581Z", + "quantity": 90.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "79b96e94848c0da135f499351983fac2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-24T23:56:22.131Z", + "quantity": 89.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "452c9be25c4abb0b3dd770341eab6441", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T00:01:23.225Z", + "quantity": 83.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "19550ff299fb068c9805450ffba5babc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T00:06:22.757Z", + "quantity": 82.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9fb99df3371c937c82050a74089cc1e4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T00:11:22.392Z", + "quantity": 81.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "215f847f6c7dfe811f5190461075dc7a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T00:16:22.609Z", + "quantity": 79.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e7a2c83d8a668fad03823a7ea2c282a6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T00:21:22.877Z", + "quantity": 77.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "73821e5b138e8b6400e53200bd044059", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T00:26:22.506Z", + "quantity": 74.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1c62f9ff3734888e6054dea93be8f25f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T00:31:22.326Z", + "quantity": 75.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6c05d424a18f59d457c572f7ed8aa225", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T00:36:22.663Z", + "quantity": 79.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "486f042c44799d0afc9779647293d9cd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T00:41:22.158Z", + "quantity": 91.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2edcb3b8731c2ff893f6e69d301f2bac", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T00:46:22.745Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "33090701040906e5b5e83a91ed610f47", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T00:51:22.141Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "01e3daed1ae4d92be50a238e1627a3ec", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T00:56:22.599Z", + "quantity": 130.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ec49b6f1b33f76f1ec4307b26cb744f1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T01:01:22.884Z", + "quantity": 140.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "75c47fa572fffbd96a076ac87f9bc845", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T01:06:22.772Z", + "quantity": 141.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e9bc1a6e976e485349ad1813c5d47721", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T01:11:22.791Z", + "quantity": 132.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4bce0bf7d57d8d67e31d1cb903a9011c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T01:16:22.199Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "272474612670317a5c88894c8e8f6ead", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T01:21:22.51Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2c63418b90bcc182dd700cce7242d542", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T01:26:22.35Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d2cbc819bd57dc220ca3a69542de1757", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T01:31:22.806Z", + "quantity": 85.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c4c0b9ca5167055c5bc23e557f442614", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T02:11:22.177Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7b963e6d619c1e087118bb903fc3c194", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T02:16:22.42Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "312affe9ca69aa3ccca4ea4b659b6e52", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T02:21:22.501Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "180d1dc7d08e5932f1329a640f243101", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T02:26:22.424Z", + "quantity": 120.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "89c3201bd744da1dfed55c511c4cba2b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T02:31:22.479Z", + "quantity": 130.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1aafda64d95aa075d079a92a67f09c84", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T02:36:22.094Z", + "quantity": 129.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8e58556f0c583289aed0406ca03e4023", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T02:41:22.78Z", + "quantity": 138.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "563d18f3e69ee2bf3f2b771f340f404a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T02:46:22.78Z", + "quantity": 134.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4751c9d6195cb350b0888d7380b487e7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T02:51:22.569Z", + "quantity": 135.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4f408d932eb1707c97e9c7d6ba3ef475", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T02:56:22.71Z", + "quantity": 126.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f6f83fa8fd351ac24b0dbb87e47f2ce0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T03:01:22.772Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "875f51c151c5988edde529a85470f7be", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T03:06:22.334Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "02c7be9ba1079f1ab5c73080722e33f4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T03:11:22.488Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "edd1aa02fdd131c341209dda6235752c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T03:16:22.885Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c30f386a90aba73e6babd4aaabae823a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T03:21:22.598Z", + "quantity": 89.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4c184a8c9ab2f17d1684ca80314313f7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T03:26:22.803Z", + "quantity": 88.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "537d700114a803411bc4023086a1a215", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T03:31:22.508Z", + "quantity": 85.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6b1dc4d155c001ee2277636365adbbb3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T03:36:22.955Z", + "quantity": 84.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "47c2f142a4ca1b8b7732bae46b59fdbb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T03:41:23.71Z", + "quantity": 80.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "38628a403bf30a02d306ec8a94c9adb0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T04:11:22.531Z", + "quantity": 69.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ced15181b96297a68be9078f3d02c989", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T04:16:22.306Z", + "quantity": 68.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4e505d87e5e7856f1535e7a99c5a52cb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T04:21:23.021Z", + "quantity": 68.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0697b3d254aaf2f130a33f922213a9e0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T04:26:22.316Z", + "quantity": 72.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "01c16d667d7b6ce3ef8e129c4e71cdfc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T04:31:22.112Z", + "quantity": 73.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "28fccc16aa6103408ea6b2d2384b7c5f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T04:36:22.958Z", + "quantity": 71.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6c7dfb2859d9e2cb8071e4372426b64e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T04:41:22.632Z", + "quantity": 76.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "572b269adc58aa154e8ff2b0c977ae85", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T04:46:22.646Z", + "quantity": 81.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "51ade068995b8749a51de7e0e5673727", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T04:51:22.822Z", + "quantity": 84.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0e034ff89059421edc3ff70c2bc56be4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T04:56:22.417Z", + "quantity": 85.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4e4e9197d40b7ef8f9be3f874504c231", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T05:01:22.833Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "920177fdff661596e08869016f4688f2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T05:06:22.58Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "61622319857eb76d21132e38452468c4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T05:11:22.71Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b43b578a80bedb1ba42234251c00a80b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T05:16:22.757Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3dffd7f8359d58c82a28166f0dfc443d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T05:21:23.003Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "530acebb3a65724c85da5e6ac39cc43e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T05:26:22.971Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c5271079289ca170133a71df5dc9cfdf", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T05:31:22.49Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9c0cb7859854b322157ac8cc54170715", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T05:31:22.49Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "48d66e5ebb7b35ae1e3bc814f66f9fc6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T05:36:22.238Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "54ad5fa9ebda67d7900e705187ac5f5b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T05:41:22.745Z", + "quantity": 118.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "05af3ca29b085d1ee975256133b587e6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T05:46:22.576Z", + "quantity": 118.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "477c00e1d5539380b585cf9e2fce5bc8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T05:51:22.21Z", + "quantity": 120.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "81b57f947768f5f3ab742dd6ab0dcb26", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T05:56:22.913Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "164fb0c1c2adc50832eb4992402bbe3c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T06:01:22.83Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f9b41abe9b588b5daff22f2f423c2497", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T06:06:24.506Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "720f788e52562aab2c14e6689963b562", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T06:11:23.192Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f2914a684bc192e8c15ea4e9e83b26f5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T06:16:22.602Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "921349e1099113c789a336df033c72bb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T06:21:22.774Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ee96f8ce034cdb1e49e092e0e9434cb8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T06:26:22.932Z", + "quantity": 118.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1bdce0c265a89cb70a6934a406fa0afe", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T06:31:22.746Z", + "quantity": 118.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "dd4f23705c9505b8dd2f56f3768debda", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T06:36:22.823Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2ee2d2ef58620a968f642b33683ab193", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T06:41:23.168Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3582ac12a08b165222efd3411c11f8e9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T06:46:23.031Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d9346576a648f9331dcc64ae6afdbb14", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T06:51:22.973Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b292c94d15aec261d90a0e5c21b25849", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T06:56:23.145Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "88036f3a5dd14217be63e62dbbe341f8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T07:01:22.515Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "23665934a49cba6f5e378e155a66e188", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T07:06:22.555Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "59b2b3b2713e24753fff92444fb66e37", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T07:11:22.774Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "327b50348850fa2eb1cca0b97668fa20", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T07:16:23.256Z", + "quantity": 91.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "06eb173a2ee1f243bfd6be6c54c0b6b1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T07:21:23.037Z", + "quantity": 83.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "44d76a1fa8e4ecf62feb62122d426f63", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T07:26:22.567Z", + "quantity": 80.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "52bf516a815365b1358293d1444fdfb9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T07:26:22.567Z", + "quantity": 80.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "094eeddc6df8de0f4b63962f06c6d1a4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T07:31:23.168Z", + "quantity": 80.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "74e91834e8486542bac5234fbbde28a2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T07:36:22.937Z", + "quantity": 79.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bd82edf23207a7a990b0ca1e383761e6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T07:41:22.729Z", + "quantity": 89.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "66484ab68699e11c469e8b71612f36a7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T07:46:22.869Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a34e2841c30d8171653b1b6ba23635b8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T07:51:22.82Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "836bb658b8900783cad7d1159b65ddc3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T07:56:23.272Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d922459cf13b2ee828c57c68a8638fc6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T08:01:23.143Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2b0308043a55f42ebe27c2abb5d2bb35", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T08:06:24.273Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9e266e8c5bd639288b85f4bbe891eeac", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T08:11:22.452Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bdedca478df6c0bae467ee6f751b771e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T08:16:22.632Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4dcd9b9217f7330d447b3181e4e01da4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T08:21:22.902Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b76772c3083f75bcf4fc8ecf373b0413", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T08:26:22.654Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "986800ef81323cf1cafebefa93330978", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T08:31:23.145Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b16796d2ddb7f94b5ada7fcbe2daa6c9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T08:36:23.175Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a1a5c6c91563db73a9d8f34b7b7e21a4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T08:41:23.345Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4087cdec0a9b3accd1095976bd91df16", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T08:46:22.777Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "10840f230f8fa85baa75caaf323c6a8f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T08:51:22.944Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a47924d265c06ebe303b60af0e22d205", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T08:56:23.162Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1734ed5e85b560b0a933f2a23d6c5d96", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T09:01:22.964Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1ee36208631b574b1560c14e41bf6604", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T09:06:23.177Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "973653f8f4d7a5b4cf935d95d14f9bec", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T09:11:22.616Z", + "quantity": 83.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0368183760a279cd907ed66cb5b29c39", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T09:16:23.136Z", + "quantity": 63.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "78db25354f3c15161b4c0b0fbfb1a927", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T09:21:22.968Z", + "quantity": 39.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "06cf9ca1bcd186854e3a9ac6938aa67d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T09:26:23.257Z", + "quantity": 39.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2626f93b5842c519cd1238e0820f4a65", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T10:11:24.081Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d7ab069d67337bf8017f611058c7de12", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T10:16:22.897Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5051ae24e44988004d9cfd2d9b55c94d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T10:21:22.606Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ae8ce7398f83b4f12896f0791bf8a406", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T10:26:22.843Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2b2c90ac77c834993ed10c9d9b7a6960", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T10:31:23.034Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "28c7a90cdb75d7503dd69534a1be028d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T10:36:23.121Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4b6a2ee058ec04c30ffbc28ce0ee40fb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T10:41:22.99Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "54cf62c82d3fe20e14ed222d559e6838", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T10:46:22.617Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "779872cd07e24677c842b3baa16193ae", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T10:51:23.225Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4bf2fbea100045aaa21d6141de249210", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T10:56:22.477Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "776ef3fccbc40ed9f434f6ed4a8b6c1c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T11:01:22.674Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4ccabe2273d1679239f9b0462b8c0eed", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T11:06:22.995Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "da753e001fba0690e4c93ef4c2a783f6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T11:11:22.914Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ba1404a05111c0ecf0d1d10e681e2462", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T11:16:23.035Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cf230c409e31a1782b4b181fc3c5fc62", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T11:21:22.764Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f3eeebc8cfdedc04811a8e3f279e0715", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T11:26:23.025Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9dadb30486c392be406e85ab9953ad82", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T11:31:23.094Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "58ea4a8e5cacdb37e3cda7f04174b233", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T11:36:22.745Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ad036dd9d5cc4a6814a739944433adb8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T11:41:22.725Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bb5106fdb861c528ed0e39b142fd63e5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T11:41:22.725Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e5a2d4822608c446a48357879fc949db", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T11:46:22.566Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e349666df2b9d37de1785a23c42c39a0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T11:51:22.494Z", + "quantity": 91.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "98feb557b2ca7fb6ee795dd36e00674d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T11:56:22.714Z", + "quantity": 91.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "34a9195b4afa201fe55f33d58d585630", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T12:01:22.525Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a99b1d2ac7aed99031f135439d170426", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T12:06:23.224Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "382a31afa2375d0b69cff9bb6c902f2f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T12:11:24.384Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d1e02e0b9bd05d716ae1f31295d9abc3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T12:16:23Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "dd27be3bdd16ba39bc7d1771b4893ca5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T12:21:23.231Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c7338d3db941bcfbbdfe433f77f5928b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T12:26:22.47Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4d27721619739a157be3eaed06861e01", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T12:31:23.079Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c4e1efecfa2793b08c56f4d9936ef0d1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T12:36:22.618Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4dd03fcaad884117c897ac308b246e5c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T12:41:22.505Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4aa71491ece7329ed682b23b4531caec", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T12:46:22.7Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ed89159afbd5f9f23f5ba9e95b1adce6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T12:51:22.987Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "aa10a457719af68a13aeef274e5ba3fc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T12:56:23.288Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4c90a69614791bbef7fe2cb23100cd3f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T13:01:22.564Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7dc4e1af57d32958642346092709cde4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T13:06:23.259Z", + "quantity": 91.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d20463aed01ca9d93174c538c31e0b39", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T13:11:22.617Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "94a95493ea33c1b56c69ed50e5ba402a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T13:16:22.735Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4bb81dfd6f824a857e3bcf86b60d4249", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T13:21:22.632Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d9066a0205a6ec3af657d8f107dab69c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T13:26:22.939Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "94e3e1994cec442b39ef8843b6571fb3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T13:31:22.688Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d42b014d43af97611a10eaea6207df02", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T13:31:22.688Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "59299425a99d490db57a2b85dd48cae4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T13:36:22.884Z", + "quantity": 88.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ff5c5b7aee524738df43339b2129c35c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T13:41:23.021Z", + "quantity": 91.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "deef7c8ab982b015f8e5a9a7d11854b8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T13:46:23.19Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d00c89e08a3729570f79462503fa8b14", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T13:51:23.259Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "76127e60a786f36097096dd8cf1d4b04", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T13:56:23.505Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b21be798a6963fd477992ef73294024a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T14:01:23.274Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "518a35a2bc03494efc2e56177b6167d8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T14:06:23Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0b5dc9a85f18139d8b0ec2da9dfb05c1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T14:11:22.62Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "91a8b80ee966312b8131c3dd03f115d9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T14:16:24.367Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "30d44b40aa6b1a8333ac4c2e9b5ea587", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T14:21:23.273Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f6fd9038700e0b11a216eeb952c054a1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T14:26:23.123Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f23bcc1ecc26c89ebe6e5ec9731ab06a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T14:31:23.309Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8a8ab8bad14fbeb001ac5030acfd3cef", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T14:36:22.824Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "787f90f10dcbc6e49012a6a7fbb1054a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T14:41:23.532Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "290f3cf8b6f0eb6932e59e23c73e5d07", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T14:46:23.469Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ba38cf9e9c9da26a7832c103e1e9ad13", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T14:51:23.487Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "eea82394fea2fea2fa49825e0f07c5ae", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T14:56:23.005Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4a1b2db995743a72cf0ab6aad2628b8b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T15:01:23.203Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cf8c39d035676910b7fb60076a2d324f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T15:06:23.222Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a74bb8a3c9cb1a56981395db2028ced5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T15:11:23.026Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "619bfd0bc1da2f3e040864bbec6c38f5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T15:16:23.304Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b1d970ce9d28f8b909c97dd501b98897", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T15:21:23.192Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "702a5190bb94f699d72db850d8426bb3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T15:26:23.126Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2fa1369993270b4988366bb1aa0a1d39", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T15:31:23.447Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "912b181771ff49b7bec74dc81fc4808e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T15:36:23.447Z", + "quantity": 87.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9cb966feb9a88b1e4179a40b80c5412e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T15:41:23.543Z", + "quantity": 87.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bf8fb18fcf1b0366f924cdd99d3608e4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T15:46:23.232Z", + "quantity": 90.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2b2a688d6fc35135a77886f39be6cfa4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T16:11:23.205Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6605a28b56f552bcbcec921cceb0ca5e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T16:16:24.776Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6dd2df6ccd5de17c920af1ace22aa9ce", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T16:21:23.359Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8e31416ff1b8f7b0afd229ac0689ac2c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T16:26:22.946Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4c39a0c0fae1c54d448a4525194c4ab2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T16:31:22.891Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "57a7db8a21582bf600f956f222781888", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T16:36:23.217Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "74af985dfc1bfc6ab3fcf998a3c01f8e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T16:41:23.044Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "318c45ef71b0a8a2e6da4c4778259505", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T16:46:23.537Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "78d1a651bd1c20a96ebb5da80971c2b8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T16:51:22.934Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a654c1ce2439c644a764b4f020377167", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T16:56:22.729Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bdfa7a5c83e76f91e1390942a089e529", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T17:01:23.544Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "52639a1f7471241ba10520f194c920c1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T17:06:23.247Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3ad5baeb94f5f709f23debef0b2e1e47", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T17:11:23.08Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9c015c9158d95bd6cf86daf17c5e6499", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T17:16:23.585Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ba52f623ff2b763dc404645cd0467cf1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T17:21:23.109Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f7c725e51e25ff29c7de44c6819e0e47", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T17:26:23Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f69c3745459026523d95e59e25ac4f35", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T17:31:23.369Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f0e889e30cb86e687b6368499390ee7a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T17:36:22.857Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a9041361719c119db61053eee2ff7854", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T17:41:23.034Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bba1a2074c22afaf50b0d8744e9a8c92", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T17:46:23.788Z", + "quantity": 118.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7d9c2ad7b6eb9aa4e0198144a363881e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T17:51:23.437Z", + "quantity": 124.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "124d4c6f81d9f7b95c0f1f3eb0fc4a23", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T17:56:23.614Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cb594ea16d09bd0e07a54f7345447c65", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T17:56:23.614Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d7d9155771eaf088b654171ab9845443", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T18:01:22.74Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "025a512c91f38653d787b7fbc3f87319", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T18:06:23.577Z", + "quantity": 120.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ead75f3303a8fc822f71d680b579d469", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T18:11:23.125Z", + "quantity": 127.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4bd2a64282d566db18e31f0e72c58e22", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T18:16:23.308Z", + "quantity": 131.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "401d3fcaf38b7b3342526ecf0e087284", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T18:21:24.757Z", + "quantity": 134.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "640cb6a627006178e9b152b2f057f3a9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T18:26:23.361Z", + "quantity": 138.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bc8d0caa8b0cb5a3dfb24abee09142e6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T18:31:23.336Z", + "quantity": 140.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "80555bef9d89f12040a992ea36b07ec4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T18:36:23.124Z", + "quantity": 140.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ed3fdc8b73d0c2fd9213e967e304b85c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T18:41:22.74Z", + "quantity": 139.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b22dc525468aa950858b20e76575c682", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T18:46:22.987Z", + "quantity": 138.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4666022870e92e6985d8b9a936360d8c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T18:51:23.396Z", + "quantity": 136.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "906ba7a477bf4cfd22db69d20c449d8d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T18:56:23.492Z", + "quantity": 135.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2e2ed5247c9302d756df320b96f6b6e9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T19:01:23.261Z", + "quantity": 134.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "10fbb2e240b02e7fd625437864b5612f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T19:06:23.599Z", + "quantity": 132.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cbd7097e0c23c5669b486e5373269123", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T19:11:23.615Z", + "quantity": 131.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "96285d75514a82fd396f42b0cc0e6ffb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T19:16:23.501Z", + "quantity": 129.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7074c1bc76298a9ea401efa557fc654a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T19:21:25.098Z", + "quantity": 131.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "95a2f467c029b45584432406506051d6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T19:26:23.335Z", + "quantity": 123.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f9a924f5cb7c0565f74ce66c03644bde", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T19:31:22.774Z", + "quantity": 118.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2d77e13f4e9e25a72f250004b6f514c4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T19:36:23.214Z", + "quantity": 123.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "83d4b4da6673c991e61674dfeec0ee0a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T19:41:23.121Z", + "quantity": 121.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "dff4b4be1f71d012eeeabd012e8973d7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T19:46:23.331Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "56c5269960013808b79df94ff35e2844", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T19:51:23.392Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8fcc5eadd34fbc44b7f21db6b4e97e04", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T19:56:22.775Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "644bba0319923d4e8673a01ff35c3589", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T20:01:23.188Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a5e1df0fe7aaa678d35361cddb5a4e91", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T20:01:23.188Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4fea17bfb49ae0f4c8640b923721d20b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T20:06:23.319Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "82d5412e8a709256bf9eb9bd3dcf55a1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T20:11:23.244Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2ecaf812e1bdc332809dcac8b405dea7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T20:16:23.185Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d82c84fe72df3c93ce5c53306ae0bdd1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T20:21:23.446Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0b4f61ef25ee9dd23448017f24fee284", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T20:26:24.027Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ef95b37f87a45d45083546aafba7f182", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T20:31:23.529Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8689cd18ccc7076a9e55e62a727137ee", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T20:36:22.819Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6dd87ca8665594b6a0ed0b1be87f614a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T20:41:23.084Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5cbc7075f0f4fe3b0839215e81ca98c1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T20:46:23.223Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "844b8cac71fadd9c00dced051460bcd5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T20:51:22.862Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e1f8bd52aa51c5c1d06e8e0a7ca65298", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T20:56:23.166Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "28d4c98e4b036dd0c4918f51af694e17", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T21:01:23.354Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b0bc1aec78fefb644b267bce1afce116", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T21:06:23.501Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4fa43f1c37270ec736d0be057f7289ae", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T21:11:23.316Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4cdf0d2665f25317a9afcd8b2fa16d8f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T21:16:22.879Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e2babeb9c197e677e6403cc5b3eb2a72", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T21:21:22.876Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "abb57b19d132e40f0610cc2491be2d1c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T21:26:23.393Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bc8ae5f2f93b754a5e95c13d11d606b8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T21:31:23.129Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8bf76f97fea6f984a8ae3af99919bab6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T21:36:22.961Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a3ac8ecff477179eb6a4eaef38b3a31b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T21:41:22.961Z", + "quantity": 126.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ac1f18b142d83672dae6a11d96f40d6f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T21:46:23.268Z", + "quantity": 132.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "76619444024c03e8c3206d0c8fe46fcb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T21:51:23.556Z", + "quantity": 144.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7a0aa43e2824a7b0a67aa98eec06c263", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T21:56:23.033Z", + "quantity": 154.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1b95b6eb9523dbcb4b3422f8ce89febb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T22:01:22.706Z", + "quantity": 152.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9bacbeb7f649dc7b87cf7b654017d687", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T22:01:22.706Z", + "quantity": 152.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "928c14afd5780a5e6290a8a955d73755", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T22:06:23.304Z", + "quantity": 131.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "68d0aca74a8ab07e373d6e37f7c33b9f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T22:11:23.213Z", + "quantity": 120.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2a46c50dba15f943214a135b756d1181", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T22:16:23.161Z", + "quantity": 118.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3b0048bc75f9d4c97baf50fd2ecfc8e3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T22:21:23.36Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ed094f5fd2570f049b461a1c14ac004f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T22:26:23.416Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "979725b07215380e9bf5891e0fe9ef25", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T22:31:24.752Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b7d833ab2d7b40f81c12553bc16d576a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T22:36:23.202Z", + "quantity": 124.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "14bc83b3b56ca02e0d5693288cc01a48", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T22:41:23.233Z", + "quantity": 128.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "50dd9278df40976b32040765a32acc02", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T22:46:23.255Z", + "quantity": 129.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ac9fc6fcc98923385baad7f14fd0f792", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T22:51:23.179Z", + "quantity": 133.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "92ef727963bed8434a2e65e21af4ac24", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T22:56:23.283Z", + "quantity": 136.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f45f5260e52cf3475f713e0dbe61ae22", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T23:01:23.596Z", + "quantity": 143.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "423a01d9cd92dd1c7e3fb9ee9f88f88a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T23:06:23.416Z", + "quantity": 142.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bfae26905f0e34878498e6e91eb82089", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T23:11:22.893Z", + "quantity": 150.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ede3677e5831df6831abf2ec7cfdfa48", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T23:16:23.561Z", + "quantity": 154.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "95254849a2677ba3d6f7b87615d4d61d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T23:21:22.806Z", + "quantity": 151.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8e5bdbce83bb09ff969fc6dfd0988c9b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T23:26:23.276Z", + "quantity": 150.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ae5cb5c3b30046be904ea886a5c7b5cf", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T23:31:23.721Z", + "quantity": 148.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b1a6162b8ab638a540cc4a17676f04f9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T23:36:23.098Z", + "quantity": 145.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "33b6af7022388bd597bb4cfba7e9dc26", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T23:41:23.024Z", + "quantity": 143.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "714bfb290b2283a85a6daaecd89fa59f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T23:46:23.617Z", + "quantity": 141.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e49a74fa36755a5da822ec255caa1015", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T23:51:23.524Z", + "quantity": 139.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "911d2dcfb988d717689bd7c1937a7727", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-25T23:56:23.265Z", + "quantity": 135.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1c9160518ec8065c7c0b9219e8342e97", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T00:01:22.964Z", + "quantity": 130.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9de4238fdde14504008615a0fdcc4a86", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T00:06:22.786Z", + "quantity": 128.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "44da97cc73ef1c4b434ad51a7cf2d1bc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T00:11:23.469Z", + "quantity": 126.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "03fdd50ab345bfa3e88d8eb85c17e321", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T00:16:22.906Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "14657f1d7256a957e1cd961bb2fe1113", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T00:21:22.757Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "57b7d2f7061e824fd7a63d4bc6ad0a5d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T00:26:23.529Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "de8c7744f0ad8409644353a9fd0e7db9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T00:31:24.733Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "44b0e0fa36ff91596af0dc4e082351d2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T00:36:23.5Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9ca2e7bb782b5eae09bb76846dffc29f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T00:41:23.164Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "122b59a7f1258145db40d3b900afb885", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T00:46:23.116Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "761cf96c037b05834e44b70c8af237e8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T00:51:22.942Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9538806b82a1969ddc357ff96f51deba", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T00:56:23.237Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c226a76fc91c98f05c8e8d37f511326e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T01:01:22.835Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c31ff13971e6e11bf27f69bd36e6cd9b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T01:06:23.064Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "15c87cf87d59703da348c577ed793dcb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T01:11:23.572Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c2ef677791639328d6619b848f98a2bb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T01:16:23.408Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "162f5cbe5b42bbd8b96dd64493485cf3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T01:21:23.105Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a446b07aba58e2144b1ff8165775364e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T01:26:23.496Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "07624d74cccf84a1b523ee9526263c6e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T01:31:23.64Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "50b5c900c70812d6e7bed99943d59c32", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T01:36:23.104Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ea3ed320547ac4c4046d27a19723e01b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T01:41:22.929Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b53dd66bf0b3d77b1c1eeaea50eb3568", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T01:46:23.35Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "581ba02116f6bae51a46a0cfb95c1ec4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T01:51:23.52Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c8680a1c10ecbe33d294837c83005151", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T01:56:23.598Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2a9b7e0138c2dfe8b351cf45dd610ae4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T02:01:22.866Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a34ef9ad7d2fc916f592f0ff74b642b4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T02:01:22.866Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "821bf3a6d0e60f5cefb94622887f1b37", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T02:06:23.165Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3bc2e8e60631f5752df1c1bf665031a9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T02:11:23.656Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "972a46fe528749e5267e7f8368c3126d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T02:16:22.963Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a4f1b8afda5a8964bfc377197ec539d1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T02:21:23.281Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bf062b64a6051074592a6f0ff489a212", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T02:26:23.686Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "927df98197efd5df574dd513c9c18dc4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T02:31:23.657Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2c22e355aad282001ca1eb39c899b1a1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T02:36:24.607Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "692f88e972821ecedf05ce78808f2cd8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T02:41:23.667Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c75eed9b503224cae0043246238bfee6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T02:46:23.136Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "879ec54eda09726753ddaf0d2564eae1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T02:51:23.566Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b98ee7c5f575083caf5899b09dbdb17f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T02:56:23.835Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b2686d968019974ebfcbd67d18af1fbf", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T03:01:23.549Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "606d605e7f81cf376f71a63839924ee4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T03:06:23.767Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "98cac9c47f735df115323272df87fb73", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T03:11:23.454Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "87d339b3a879a2505c1b86e25450c050", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T03:16:23.049Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "131fd90146789cadd20aa01931b58f29", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T03:21:23.635Z", + "quantity": 91.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "938096a31b196686255536b9c90af8a5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T03:26:23.807Z", + "quantity": 91.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e51850c65f4af60af9a3fa812b8fe31a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T03:31:22.96Z", + "quantity": 90.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "19d79116fb20822e93faa56551fd0e30", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T03:36:23.123Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a72b735f8353cf567f0cbcf3cb450785", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T03:41:23.235Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2ba37da700bfd042dbd752d198796328", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T03:46:22.957Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2f376b36fe24bf6f41dee89d1e1be6f0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T03:51:23.601Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "46593bd7590eadf53bb0b3f36b76c990", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T03:56:22.99Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fc12a156ee0115d91eeb8f96108e498b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T04:01:23.115Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2cf80c77768c4b75042adac05ad5313b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T04:01:23.115Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c2047dd4b5bd582fca4c8b849a7065ca", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T04:06:23.656Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "06bf36d5d465e78fefa9ff77b2187cb7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T04:11:23.45Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "17b127bcd888af45b31f95f7edaea3e3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T04:16:23.301Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "05c3a71ae91c92760cd28326fdb32bc0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T04:21:23.105Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0c789ea01e185bc38c301e3614dd3f58", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T04:26:23.412Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "586eea47088341b50ee7b4ef75ea774f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T04:31:23.119Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9385f49d140cddb420182b9233165c5c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T04:36:25.182Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f60be92f2add378e0d4f4274c2f62b6b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T04:41:23.819Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "05e40065918d74762684c20bd9ee1983", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T04:46:23.507Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7db4191b9984199e32914e4a115dda9b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T04:51:23.733Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "16fafdf075b1401337d16fce98ad602d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T04:56:23.039Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "17d3321fbf72ddd27cae3a49a4615eaf", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T05:01:23.555Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "142ccc53ad6525b64d0a25c984243c7e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T05:06:23.349Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ae76f921cbf3e0f5e888b7f3532c595f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T05:11:23.424Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2637d7862950d0c5462fa875ebe34352", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T05:16:23.932Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bef79d0f5d8aab65d6ca4b84aa1bc2cc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T05:21:23.107Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "11da1f3715b76fea0b607e100c98b4ff", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T05:26:23.294Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d0d0d4aa4849925571449664ca130b00", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T05:31:23.412Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e223701e5c40202b6f9532b55371ac07", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T05:36:23.166Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3e8b03606684e0dedc95b75633bdfa64", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T05:41:23.57Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "54431453254a82647189e7af4ee6ebe4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T05:46:23.56Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ffa3c40682381755d3776edde9856379", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T05:51:23.817Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "dded5d8571c774aea29ebc35094535df", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T05:56:23.241Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5312025e5531984f721ac296f2579d7e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T06:01:23.293Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f086635150f6cbf48bd1fdbf0a527ed1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T06:06:23.804Z", + "quantity": 118.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b54317a58ae5e759c055920b2e9909af", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T06:11:23.419Z", + "quantity": 128.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b080d771e3d2311f99c11b11ea1860e2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T06:16:23.607Z", + "quantity": 137.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "df07b41ca164d4f5b1f7792d2b0c4120", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T06:21:24.415Z", + "quantity": 140.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b48516bf0f44739ada6cb420864c535b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T06:26:24.016Z", + "quantity": 142.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "03d8cc3b43e8774fec3f992a9ad2dbf7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T06:31:23.883Z", + "quantity": 144.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2cc523e911cce65a0d51cc27e92ec3c3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T06:36:27.568Z", + "quantity": 143.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "750507b9821db6f4dc3a067360f3411d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T06:41:24.505Z", + "quantity": 143.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ca73be513b66b2937b0a60d321252f5a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T06:46:23.737Z", + "quantity": 141.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5640140d8c666924f8d3c57b9333ecb7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T06:51:23.586Z", + "quantity": 141.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bb319354994e916f5fe10e7f900f0db3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T06:56:23.413Z", + "quantity": 141.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "dd74ecc608e863d0869bbcc7c1ef3617", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T07:01:23.783Z", + "quantity": 141.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "646e3ebaa65c33a2cdc39bb91786cadc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T07:06:23.326Z", + "quantity": 140.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "62dfa81ca4afa70fb2483af9f5c18293", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T07:11:24.03Z", + "quantity": 141.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f4f12f2c9603cceb0d5f8a6409967df5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T07:16:23.881Z", + "quantity": 139.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "52169bd295739fd9ba6abbbc34c65b45", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T07:21:23.057Z", + "quantity": 139.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "149849fd31a53707c4b03aff39418eb0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T07:26:23.096Z", + "quantity": 133.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "555e04e1d8e9e28951e0e01911ed2c84", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T07:31:23.29Z", + "quantity": 134.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "28fecd56bdbf8dd2f55c08e45bebd774", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T07:36:23.233Z", + "quantity": 137.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3af72eac392513abefe127f683a5387f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T07:41:23.758Z", + "quantity": 136.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "78b74b6f9d2f14b3f699e7b5000a23d2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T07:46:23.261Z", + "quantity": 135.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "588d346f7e4c33a7d4785f50ce5e4b5a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T07:51:24.051Z", + "quantity": 137.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "79299bf18e190af4221ada6176eeea6a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T07:56:24.262Z", + "quantity": 137.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c836ab9c9a9a03787d936140114bcbf8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T08:01:23.307Z", + "quantity": 135.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "13e05ce2795273499345058711efe3a2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T08:06:24.243Z", + "quantity": 134.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ed7e6c22a3f6aacf36ca50f179b8c611", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T08:06:24.243Z", + "quantity": 134.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8620ed9ba3627c28d2c7aa0ea15b0263", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T08:11:24.25Z", + "quantity": 133.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3804b103a10f9f4d0d9efad4edb87720", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T08:16:23.304Z", + "quantity": 132.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9d111b9587ca52a22bd4239d49abbcd0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T08:21:23.821Z", + "quantity": 130.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "00f43c9b9a6def2e996823fdff22cf33", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T08:26:23.469Z", + "quantity": 123.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "113f8c3b51c037805344da01d5e4cbe1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T08:31:23.58Z", + "quantity": 125.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3570b96237cffe1617b675f854f02e7f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T08:36:23.902Z", + "quantity": 127.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ac3a7f824fb918eed7ac5d179d8697a0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T08:41:24.992Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "114346c7d30fe95fd4813fe26f280e30", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T08:46:24.07Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6c0361b82d4de0190591258d9c874224", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T08:51:23.916Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f1f91607b2f8c667f5d8982a2e57d17e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T08:56:23.725Z", + "quantity": 121.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2e003bf1c9a8e2f33b8ca49812611c43", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T09:01:23.578Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d714522f6e6322486be362b7f534fb24", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T09:06:23.675Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9f284d6d98a4192b972af1a356a0ec41", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T09:11:23.298Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cf44fe1196dab63309574a31959b0778", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T09:16:23.588Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2141339c6234d30f55021432dd740f8e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T09:21:24.117Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "014a78ec4fa498d147f2d50fb3996279", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T09:26:23.422Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "97fb5120feb51dc41d5063c6e47da728", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T09:31:24.17Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "231a05841ac28701d41cb1a8215fe783", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T09:36:23.827Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f41b445b3bf51c643b32a912e909eb4d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T09:41:23.946Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e1c45aa74c301dee9394c009c22bf1d6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T09:46:23.775Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e4509fd98fbbb452c7673377fd4d6f16", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T09:51:23.602Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "650bb45cb90a21ee0d54af8c3fed5d9a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T09:56:24.119Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "618ffcb353da39d89089851d3f83136e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T10:01:23.586Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "673c9dd361f86a8b86122cb8f67cbb6a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T10:06:23.672Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5e8e5b03fcc3dc027738c8d8e060cf5f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T10:06:23.672Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b73c95a104e2f85de2badbdd583cd084", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T10:11:23.545Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "001ccf2c3d2d4bc3aaa5de7626f5c506", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T10:16:23.252Z", + "quantity": 91.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3b4dc388db77a656cebbefdf1a8e2878", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T10:21:23.85Z", + "quantity": 90.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0ae299ded231af88390a6afc53635775", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T10:26:23.973Z", + "quantity": 88.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "14c8fa3b67e071e704d716c193b9757e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T10:31:23.804Z", + "quantity": 84.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "db12d059e10ea8629abda33d37ee9952", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T10:36:23.62Z", + "quantity": 84.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0879d82cd0623e346517360c2962b80a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T10:41:25.051Z", + "quantity": 85.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "915029bd7d1210272f6de6edd2ee7754", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T10:46:23.925Z", + "quantity": 83.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "64db74ec4ea3facc74402346e63a6163", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T10:51:23.429Z", + "quantity": 82.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1eb839229484e095d468e4c1806642e8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T10:56:23.518Z", + "quantity": 80.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bff11ce9fe009d430683ce1cf21beebb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T11:01:24.165Z", + "quantity": 79.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "440069f4112e2e70ee1a8e5eb4cb0114", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T11:06:23.673Z", + "quantity": 80.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d267b6f4aaa182a9e5c77b2651cbd0c9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T11:11:23.56Z", + "quantity": 78.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4754b9bba0a4c9f2df36d80dde46c230", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T11:16:24.034Z", + "quantity": 75.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "382e0b7a6b512a3cab3534409a389fbc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T11:21:23.322Z", + "quantity": 76.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6d54a79f5405195e94d4b1d761503290", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T11:26:23.912Z", + "quantity": 79.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "564130b9df25a21d2b48b75d48d85e76", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T11:31:24.1Z", + "quantity": 77.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3b31ba51e73aee924a0c14224794aac4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T11:36:23.286Z", + "quantity": 77.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "950379048c06055713cd8275c4bf94dd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T11:41:24.127Z", + "quantity": 80.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "181548eecb6dc199c8209de2b8010221", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T11:46:23.949Z", + "quantity": 84.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a807da03a47494bb02fe68b5f5e9d4b9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T11:51:23.388Z", + "quantity": 87.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "26d146291ad07b2e52f6ef4d4bd3bd8b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T11:56:23.772Z", + "quantity": 86.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "05b5f7f5cd11af651afafc9bdc8124b0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T12:01:23.368Z", + "quantity": 89.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "503f9ddc49bbb2e8b9cab98bcfd62289", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T12:06:23.382Z", + "quantity": 89.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fe71944c5871e4a38cc4ecbf7617a359", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T12:11:23.406Z", + "quantity": 90.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a1cf58eff8208322c172b9cf5b860e73", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T12:16:24.277Z", + "quantity": 91.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d7d37b10cd490b7f3c7f9b08102f4843", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T12:21:24.516Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8400f836e3e09a8c620ec003d3c93919", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T12:21:24.516Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "21423c916b2aceed368706fb86b43bff", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T12:26:24.066Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f1a8c2e2ba8338ac694679dfbfa4247c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T12:31:23.299Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "32e3f15787dd22fc49781d7d8c1e285d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T12:36:23.774Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c3a05a25f7d55cf93cb3ce15285753c7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T12:41:25.399Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0665b023e4f6a9d204cacfb304ea27ce", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T12:46:23.775Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8aa14a7c5a90cae12f302598d70316f9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T12:51:23.672Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8e0be9c75d1056b36c21d548183389cc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T12:56:23.658Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "27748a3580de4811f33e9d7c62bb1780", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T13:01:24.1Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "91bbaf01d4b808bec5651cb395ecf70e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T13:06:23.767Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e42050035eb428e1b5a9b2e866b8a55c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T13:11:24.121Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "31633123a8fe053fca5d61402141b8f9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T13:16:24.034Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "90d3910247d8b0012099091affa1dbbe", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T13:21:23.707Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "11a48b97e87e7642d9bebc9a0f82066a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T13:26:24.35Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3632695c1dab13ebf53f40b9268533c5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T13:31:23.999Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "353af60cbe22e5a43b6fd0573d79e1ac", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T13:36:23.528Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a00a5c6d73272be7c70298d03c4c6d4d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T13:41:23.844Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f02c8720ea6ea86e2e3e4d6079d9b147", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T13:46:24.142Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8d2bb943f9e1de86e9a079d93186fb3c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T13:51:23.853Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4a04401e520af23cd920cabb5989c8a9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T13:56:24.232Z", + "quantity": 79.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "edfb1bf98af5c91a16f7ddfebf21d34a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T14:01:23.836Z", + "quantity": 51.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3f7eb83839272ee6ca7478b34a2355b2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T14:06:23.695Z", + "quantity": 39.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bfa546d6dd7e2c54b06027f7f551a54d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T14:31:24.101Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c8aecfd8298ec5d48615625553b7f1c6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T14:36:23.705Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "29b3952a8f7d6244e6ecdbe35d07ae12", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T14:41:23.725Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6931403e82f7cf9c07877ab96f1318eb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T14:46:24.731Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0788c23a0ef5a10836c5ed6a7ebc86a1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T14:51:24.372Z", + "quantity": 120.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "067ccbc1a7c6e8a714690e80c4e15c3f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T14:56:24.219Z", + "quantity": 128.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9f24216e060b4f1a93aa58860e17634c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T15:01:23.581Z", + "quantity": 136.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5dab0cde3b8b68a3b496b92956874b0d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T15:06:23.907Z", + "quantity": 135.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a446e572d739de71531386d902f360c2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T15:11:24.112Z", + "quantity": 144.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c3246dbd70c4d791d3e50fe3fa02da62", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T15:16:24.139Z", + "quantity": 151.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "46354107d868ddf2436ee479638bc810", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T15:21:24.221Z", + "quantity": 154.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cd52c4788fa834088809a0f1242fd4d2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T15:26:23.989Z", + "quantity": 156.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d311e5a6327b97fd5c2734da6391b24c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T15:31:24.415Z", + "quantity": 158.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "36d231d30b2599e4c7464675d55b8e5c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T15:36:23.792Z", + "quantity": 160.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a189218b65c123fa701acdffa343a434", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T15:41:24.011Z", + "quantity": 163.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e599c6363b62a12680f726104735f63c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T15:46:24.113Z", + "quantity": 163.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0ff23f5913430c739c7991da43f98cd4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T15:51:24.046Z", + "quantity": 164.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1c621a02ee96d8b99b67e517d6552a6c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T15:56:23.666Z", + "quantity": 165.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f7512431f7eae695645490307dee725f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T16:01:24.111Z", + "quantity": 166.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "340c8cb3eaba95fffb054275dccbe780", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T16:06:24.42Z", + "quantity": 167.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e669acefb78aad4114a9584711a11084", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T16:11:24.167Z", + "quantity": 165.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "569ff9e6d33f25e2b12961df13e15e4b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T16:16:24.155Z", + "quantity": 164.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "61231bf327b5c7e8520a894771e23d29", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T16:16:24.155Z", + "quantity": 164.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2386c5fb9aef732603f309da3384ba6c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T16:21:23.867Z", + "quantity": 165.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "aa0d38f8e45ef25f21bcd6542a3dae57", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T16:26:23.919Z", + "quantity": 166.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2e4de68bdd0e50cbc6f0fe70c2c602e9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T16:31:23.919Z", + "quantity": 160.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2df1a168f11fce6deaea45c3dfca4690", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T16:36:23.585Z", + "quantity": 163.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e43085314ee316aaa99864c05f621e1c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T16:41:24.104Z", + "quantity": 166.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c6b7bda4b9c6bbad8cf7a79b63f115b0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T16:46:23.59Z", + "quantity": 162.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4e4ab125f7d2702201d9a05888bb4d6f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T16:51:26.063Z", + "quantity": 162.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "799aeeb6612e93c6926913b39d8a0698", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T16:56:24.321Z", + "quantity": 163.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "40e69bd871ae76b1267aa6aa332b827b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T17:01:24.267Z", + "quantity": 163.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cd0fa5d9e1ca40b48ea10edbf360d678", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T17:06:23.691Z", + "quantity": 163.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e76db43dc50dbd0b9b48b564bafe96cd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T17:11:24.097Z", + "quantity": 162.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fde84243faa225f803fe49d4502ef169", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T17:16:24.376Z", + "quantity": 161.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9745137b8cd03780574068780c407b03", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T17:21:24.487Z", + "quantity": 161.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "afb3acc12aaa43bcb6fab3652214c190", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T17:26:23.775Z", + "quantity": 161.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8412bb40610ea5508a827ccb16319372", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T17:31:24.098Z", + "quantity": 159.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d57b65d4c076b9219174f3a4188c2d28", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T17:36:23.683Z", + "quantity": 159.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ea8f323af63e06a98d4d9c7945c6b0a0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T17:41:23.547Z", + "quantity": 160.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9bf73fe01ea01e5a4e6327e6150fdecd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T17:46:23.926Z", + "quantity": 156.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "835fb35c409ab6d372932d3d8fbd4fae", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T17:51:24.299Z", + "quantity": 167.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a5a946f545c9a1ac34faf8f27fd52740", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T17:56:24.373Z", + "quantity": 158.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e43a2ce6730b7d7526781eac346d78c8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T18:01:23.596Z", + "quantity": 147.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f58384d2934db514d42ef872caea55f6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T18:06:24.431Z", + "quantity": 150.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f4a5427b8f0c00de5154c4220c559024", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T18:11:23.704Z", + "quantity": 155.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fc7b8f88fdbc6f156b6d85ce3863ec47", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T18:16:24.203Z", + "quantity": 154.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fa94923e8bcf8ee25b1f46cc0ba4ef81", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T18:16:24.203Z", + "quantity": 154.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "340c654195fe281d64a4bb8f412919f4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T18:21:23.805Z", + "quantity": 155.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6ead22664ef9da3e07c6de0f8d9a1fda", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T18:26:23.667Z", + "quantity": 155.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "35ed5bad0c116fcf1118b63f744a6bcf", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T18:31:24.372Z", + "quantity": 155.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3cea731a3e7094bbb730a04a812d2a56", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T18:36:24.071Z", + "quantity": 157.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5d2c8dc4ec8c18e622f59320ded1d77d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T18:41:24.512Z", + "quantity": 158.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "faed4d5c7aaebd89e825987a22b84cfb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T18:46:23.644Z", + "quantity": 156.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "be99e82a8012b371daf86b7f6c9dd967", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T18:51:25.486Z", + "quantity": 157.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "958271df8faed4b35df2c5cbae8204b1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T18:56:23.868Z", + "quantity": 155.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5d99f4987e2e137115ac7eb5dbe46549", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T19:01:23.894Z", + "quantity": 155.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "31166a934801d0835b9d3f90a063af72", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T19:06:24.079Z", + "quantity": 154.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b58ac3a9fc54567054bb74f091d74631", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T19:11:24.312Z", + "quantity": 152.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9a9b2c73378ab2ea74441e6c2fee4826", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T19:16:24.489Z", + "quantity": 152.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3246db754156a583848be01f76071c4a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T19:21:24.515Z", + "quantity": 150.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d95f382df3f467581dfd9f53b4e234c9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T19:26:23.642Z", + "quantity": 148.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "301f16c0d0d0d1d01f44c3f15b1b3a1e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T19:31:24.102Z", + "quantity": 145.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bcdfa38972f39dad00f9dc49f8a18046", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T19:36:24.211Z", + "quantity": 141.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ed17099c89f31f7ad1bbce57ab7e890a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T19:41:24.568Z", + "quantity": 142.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e4ef7ab59a4d72899883f7fb207baac4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T19:46:24.184Z", + "quantity": 143.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9695cb319b4071ae609b7a5725a67661", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T19:51:25.325Z", + "quantity": 143.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b7bd2f5399bbecbe888852c4fb095930", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T19:56:24.417Z", + "quantity": 140.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "00af6228e0e0503f0f6b2452534685f5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T20:01:23.723Z", + "quantity": 147.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1ab06171c92c43251374dc349021bf0a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T20:06:23.643Z", + "quantity": 159.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fed0b8e9f67b14869161d1e8ef27db2f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T20:11:24.37Z", + "quantity": 167.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6c70a56ed95e529a513f191b307e6c59", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T20:16:23.793Z", + "quantity": 169.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7e55860b8c9b1d2fd4b22fca2822fa89", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T20:21:23.673Z", + "quantity": 178.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "70dfa8cda81de4ed2747c135e388b622", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T20:26:24.613Z", + "quantity": 188.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "acc3f24ae0a5ac979230c31a005d5167", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T20:26:24.613Z", + "quantity": 188.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bcb4ff73507a6da43cee7d9361d299b9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T20:31:24.385Z", + "quantity": 193.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f0018e4dcc46b8b247c717512bcd59b7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T20:36:23.695Z", + "quantity": 199.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "07010a83bccb2a0883c14f04168789aa", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T20:41:24.041Z", + "quantity": 210.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4d4da55b068dd545edb205f039ce8fd2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T20:46:24.531Z", + "quantity": 221.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5724e2e8fde9e1680ec912b622ac7971", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T20:51:25.179Z", + "quantity": 222.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "510550be744ba4b3944e6abff209ef44", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T20:56:23.964Z", + "quantity": 235.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "db63f6bff0c23620fbcf924b938116de", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T21:01:24.323Z", + "quantity": 243.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c6b0ec3f031a6a21e643bb583f5bf450", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T21:06:24.12Z", + "quantity": 249.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2067e35201773db87abdf9119f8ccc35", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T21:11:23.965Z", + "quantity": 260.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "91baa22fd5e5b74e74ea633ad4ca07fd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T21:16:24.052Z", + "quantity": 269.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1c9ebc7ce2af70bbb439b5de3cdb02d3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T21:21:24.573Z", + "quantity": 276.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d022efe6804999ad2ec735da0912f3d3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T21:26:24.224Z", + "quantity": 277.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0b44abd512489fc98d2295ed66872e89", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T21:31:23.723Z", + "quantity": 281.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cbeb790f35c06c03be58bdfd8fff1f6a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T21:36:24.301Z", + "quantity": 284.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b39da0a7965a15d3c82689f53c7fd4ba", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T21:41:24.058Z", + "quantity": 285.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a301ccdbe93125d8d22552af6fd65a86", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T21:46:24.656Z", + "quantity": 292.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "734992f851b7e1c116c1945abe6a721c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T21:51:24.28Z", + "quantity": 309.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "df26a442a8ccf92f36a8e275933364fd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T21:56:24.627Z", + "quantity": 294.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "acc05eddd7cddab908b11a86e5ec2343", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T22:01:24.078Z", + "quantity": 263.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "282d8b18767c4f4b44912194b3b10f0e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T22:06:24.499Z", + "quantity": 251.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a17da339e72ceffe0c06d49ed3c4da70", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T22:11:24.476Z", + "quantity": 252.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "793739a5dec42f452401e53867777143", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T22:16:24.31Z", + "quantity": 238.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cd2f7123cc381f4739f01a98bb47ca83", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T22:21:24.447Z", + "quantity": 217.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4c62cba6c33c836baa96224fac84898e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T22:26:23.748Z", + "quantity": 209.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d70035b8660358e85947c483d0f1db27", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T22:31:24.578Z", + "quantity": 207.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "88a7b40a90a0dfbed822a92fc19f87da", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T22:36:24.156Z", + "quantity": 209.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "25e567b43e13b755c7c185cd57f581a8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T22:41:24.729Z", + "quantity": 214.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1d1b1853d4148a09b433565582effcb6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T22:46:24.812Z", + "quantity": 217.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d82ef06fbcd72f10db2c34efe85d05aa", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T22:51:25.492Z", + "quantity": 220.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3036b2b9e85c2efecc5837351f09d470", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T22:56:24.03Z", + "quantity": 220.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f3ec2ab8e8320620f8024f7fb009055c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T23:01:24.526Z", + "quantity": 220.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "029f514b8f0b5a7e4072344a461bb62b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T23:06:24.719Z", + "quantity": 217.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8597994bd782b65b366bfe3d6b3102c4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T23:11:24.211Z", + "quantity": 214.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0a2e614408627994d53013e99345fc1e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T23:16:23.766Z", + "quantity": 211.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "12489fd5c75f060185f6f5b346a304f5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T23:21:24.643Z", + "quantity": 209.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bfac71835c75c7030cdebbcaedd9021d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T23:26:24.47Z", + "quantity": 209.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "08d510b10e6ac311e606491e2b53a417", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T23:31:24.755Z", + "quantity": 202.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9dc02867ce8901cf79cce1f8f13e042a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T23:36:24.755Z", + "quantity": 191.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "675b575df5d5c1cee09fc68d6d444971", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T23:41:24.806Z", + "quantity": 175.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c7ad55ee003ff54d2f12d73a38b6e050", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T23:46:24.325Z", + "quantity": 167.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f8f948a15e8d34de06e652509e979b3c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T23:51:24.073Z", + "quantity": 158.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bebd122d46aa12117d9a5591f02093be", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-26T23:56:24.135Z", + "quantity": 152.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "49a32eb301b0acb44e1ca9ad9da1026d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T00:01:23.776Z", + "quantity": 143.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "beb89ea50df57c09acee0f10a5e37d59", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T00:06:23.852Z", + "quantity": 130.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7a19bb98a55da53960a2776fef9cec51", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T00:11:24.832Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a33be154414a638701c70c72014bb063", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T00:16:24.353Z", + "quantity": 121.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1bc4ce60ba8a6db482d0e05b31f042dd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T00:21:24.174Z", + "quantity": 123.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "509b461eba128232902fd4e41b9b71d5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T00:26:24.285Z", + "quantity": 121.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a6349aa66b412b814d69e645bdabd305", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T00:31:24.551Z", + "quantity": 121.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bc16a6254583dc75bfb2c589040f47e1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T00:36:24.456Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f956750f1e5d30298e0c789b1dd77ee6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T00:41:23.903Z", + "quantity": 120.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7af29edc993078fb36ade7484e13a7ae", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T00:46:23.966Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "100d5a4f79808687a5f732dc1629bb76", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T00:51:29.162Z", + "quantity": 121.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3a26168ce4e04a526f524c128e0f400b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T00:56:29.162Z", + "quantity": 123.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "dbb40363b77334859ff9f9734dda3fa1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T01:01:25.805Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5a49775f3bd1a9474f18031a6f7696ce", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T01:06:24.689Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bda33b2cb0e27cd914c2f3acff8fcf1d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T01:11:23.938Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a1a3c39d4cabdd6dda261f136d115ed5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T01:16:23.82Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2578e85145e8a8f1676664884a23818f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T01:21:24.165Z", + "quantity": 87.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "99d605bf2d6f84ee0efa8f5c0d33c9fc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T01:26:24.423Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "35fd328467bc263b51662412bede43c6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T01:31:24.624Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a6dd2f7b5449e78352079e133374f1f0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T01:36:24.064Z", + "quantity": 91.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f240c345e347d031badcd5858858616d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T01:41:24.664Z", + "quantity": 91.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "157f9d7793bacbddee81204c439c12e9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T01:46:24.792Z", + "quantity": 89.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7a28942ab7ffb9d1ab3a93730ca4fdad", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T01:51:23.87Z", + "quantity": 86.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a6f26d52b973b7ebc6a3b43c168c6f67", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T01:56:24.424Z", + "quantity": 78.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "822eaed0eb2119e4ae23384c5dfe8059", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T02:01:24.6Z", + "quantity": 75.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "48745bee9c43382320b9a0d9f95751cb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T02:06:24.213Z", + "quantity": 75.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1a309d216573f228e8200dcf95eec709", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T02:11:24.612Z", + "quantity": 75.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0385bfff2762c7a2ea6e7bfa37885636", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T02:11:24.612Z", + "quantity": 75.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5abfd5f2f31000ff8847917376e16894", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T02:16:24.612Z", + "quantity": 71.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1342e523b6d1b52aa0abf717c9c8a3db", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T02:21:24.198Z", + "quantity": 73.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a34816301c0fbcce28d52d73570b7663", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T02:26:23.953Z", + "quantity": 76.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "eb33863d7aeccfd82e2a031cc0af5338", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T02:31:24.021Z", + "quantity": 76.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3f12d35bb95df78a1c533747f479e708", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T02:36:24.373Z", + "quantity": 77.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3ca21dea210f07b615294d3030e84246", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T02:41:24.028Z", + "quantity": 80.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7b83740b9b3a52e26b1688e87c76800b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T02:46:24.813Z", + "quantity": 81.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f5c143a52d42ddd4bac761c71ee95110", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T02:51:24.225Z", + "quantity": 84.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "aad06510b15a8bcd4f2ca34ec3db1f0c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T02:56:24.376Z", + "quantity": 81.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "38b6f154c1f437f3cf6eea849973d11b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T03:01:25.133Z", + "quantity": 87.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b6ae6a46858e89c1fa4ac0c89bee8a23", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T03:06:24.749Z", + "quantity": 88.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "498388ba1789d41f72d9052fb63d23fd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T03:11:24.002Z", + "quantity": 89.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ce384676dbbf3d1ca9f7d2636f1f48a7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T03:16:24.114Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ceea131af306906c957be45bde379a72", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T03:21:24.698Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e70de5709913cd4542793bf37909515d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T03:26:24.698Z", + "quantity": 87.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "37bd2f110a28465b979d65b6f30ed80e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T03:31:24.624Z", + "quantity": 89.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "70cd0e1b0bfc13056aa594d65ea3176d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T03:36:24.062Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4e87389c7b5458c3c9b7714a01c6b1a9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T03:41:24.754Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "eda19528813d6a774af385b3a3d1baae", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T03:46:24.094Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "86600c10df8eeda7c2b47a41bad99170", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T03:51:24.14Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3093e186abbf5ed0913d2315a9256394", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T03:56:24.899Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "16c8205fbdae1e47a4a95a034f7423c3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T04:01:24.538Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "61cdf0b1ddd08c32bbd7bd50f0c67153", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T04:06:24.883Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "298310d203e338c868c9568e2b6caec1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T04:11:24.153Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bb3ebcd4c029e18fc7f7f031d3b33866", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T04:11:24.153Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e25a7f6a126c9720741bc6cc197ecc4e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T04:16:24.001Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8970b8ef06156cf997d23adac5ba6cdc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T04:21:24.559Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5223be3a46f67e66298bce0838411399", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T04:26:24.111Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d3fda5fe2e3987ac90c20acc91178251", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T04:31:24.787Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c3a111e6320952399362a044979afda1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T04:36:24.141Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bc8327be29431d444a1cbd4bd3f790f9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T04:41:24.406Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a337bdd30f1ade8486d5f6d98ab67fc9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T04:46:24.349Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d55fd2e29a48331ce38c4a71e2361dff", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T04:51:24.029Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "88cda5521638cb4d241ed92907f9510b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T04:56:24.815Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "14aded497535d17c240d4d1d46103774", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T05:01:24.579Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c5fd9f041a3ff42959d0137b4ba5dfc7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T05:06:25.614Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5a107ea5466e667c4581fab32682a8e3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T05:11:24.741Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "42b7e8460539beab4a7e33c77bfd7845", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T05:16:24.511Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "da7d94b75e7b107b7a15d707585dd1b3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T05:21:24.448Z", + "quantity": 88.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "57c487e787377ece074a1002a8995cff", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T05:26:24.712Z", + "quantity": 85.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1f3c6ad53ffae1260f8a26b90f25fd05", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T05:31:24.014Z", + "quantity": 86.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e305388593e7408861e37672d211127c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T05:36:24.484Z", + "quantity": 86.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a902d04b99aadba96a6c7e1578d7d90e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T05:41:24.28Z", + "quantity": 83.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d208f81ae1b8ea9744db1227283b5f49", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T05:46:24.913Z", + "quantity": 83.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6c7d7cd6ca4eb3b966ea8144e17dc51f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T05:51:24.861Z", + "quantity": 83.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "faeb033e8a7642be7bf95f9a1ba07ee9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T05:56:24.632Z", + "quantity": 82.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3673ca24d6f198624fe943466234dab1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T06:01:24.488Z", + "quantity": 81.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5805d24aa714f59da9910e0fdbc7acf7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T06:01:24.488Z", + "quantity": 81.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e0504d6db81970db859271d317a6a5fd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T06:06:24.896Z", + "quantity": 80.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "da3b48901eadd053744367eefae8959c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T06:11:24.653Z", + "quantity": 79.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4c1f2280ed60f3c5a6feff732caeb0aa", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T06:16:24.502Z", + "quantity": 79.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "505013dcfc2510f20b0cb440610ce919", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T06:21:24.548Z", + "quantity": 80.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d9c587ef9c805bcf996037cc3f7a2e0a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T06:26:24.529Z", + "quantity": 78.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "38876cd23e181e443c42b3aa9a261574", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T06:31:24.476Z", + "quantity": 79.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d4cad472c7d0d6c6bec2b234a363d3b8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T06:36:24.039Z", + "quantity": 79.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b2820e91fcc695a27fa53f767e7b89d7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T06:41:24.888Z", + "quantity": 80.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "50c679e4d73a2240f48d840563c3001e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T06:46:24.077Z", + "quantity": 78.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a976cf6333d938f0c0fc048070458298", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T06:51:24.625Z", + "quantity": 77.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fc029c417ea771f7c3ea09498f8ddd01", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T06:56:24.814Z", + "quantity": 76.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d30cda1882c5fcd05b8aa74fd753ca5f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T07:01:24.795Z", + "quantity": 77.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0c0c9e8d655f2fc5f138bf2ae2599e1e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T07:06:26.135Z", + "quantity": 77.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0613fcd91e9bc249455257f4d9ac1987", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T07:11:24.265Z", + "quantity": 74.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a52c0e37b5a64f921908ee5095ee97e5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T07:16:25.091Z", + "quantity": 76.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "306cd4faca0d254a46cf8ba24e5f14f1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T07:21:24.509Z", + "quantity": 77.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "13f2ac1be8d26cfedc06d3fc653196f4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T07:26:24.063Z", + "quantity": 79.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "859e69d6d5bcee6c07057b91e8dd872c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T07:31:24.224Z", + "quantity": 80.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "12f6b8a7526f40d81800c2c41360faf9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T07:36:24.376Z", + "quantity": 80.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2ba89d753a93eff8f9647eaeb8e5634f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T07:41:24.727Z", + "quantity": 78.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b12c3675af7b7ce235c04618786be376", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T07:46:24.214Z", + "quantity": 79.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b473621f03f594440803e40c6e78ccb3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T07:51:24.253Z", + "quantity": 80.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1bea161ec05984e4cfc919981a368e4f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T07:56:24.734Z", + "quantity": 79.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b3fedbefd7e18167acdc1016009ca6fd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T07:56:24.734Z", + "quantity": 79.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e6950a42e30d66a2be1592219ad5cc02", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T08:01:24.371Z", + "quantity": 79.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8249a2cc18a14c1d3d2dbe888991ca37", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T08:06:24.978Z", + "quantity": 78.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c00b39f3b4eab9486b229d862c1016a8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T08:11:25.024Z", + "quantity": 78.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a39dde10f1d10b1918577e573f9fef2f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T08:16:24.728Z", + "quantity": 78.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a9696a6306edbcd63a77949c4d1a88d5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T08:21:24.705Z", + "quantity": 78.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2e4479226938ec086936082c613d86f5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T08:26:24.878Z", + "quantity": 81.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "049d4758c8674230d24ff4c0b0b3ccd0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T08:31:24.745Z", + "quantity": 80.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "652f4c243d7d7f8a9e8ec2d17fcf6d33", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T08:36:24.538Z", + "quantity": 77.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d562e61f12c37599cb24355d21da490c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T08:41:24.206Z", + "quantity": 79.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "97c5e8330ae2326936b6a5fe5b917d53", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T08:46:24.148Z", + "quantity": 81.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "13daf4d32e965ce0640c52701beef02a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T08:51:24.986Z", + "quantity": 72.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "56573a4bfe73b6ab0bd1284dfff46429", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T08:56:24.17Z", + "quantity": 44.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "381a3c3881917e04359fd29c2643edae", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T09:16:24.305Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bfcadb42a1948ab3d18ce5a08eeaba72", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T09:21:24.603Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a151a89d4cc4458ff4a905bd1bbe0981", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T09:26:25.029Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a2221aed4c82f6491d0c13dcfce2f8e0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T09:31:24.774Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "da0ff867c14aa9250f577728093c28e0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T09:36:24.167Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "52069d3a651fcb314d4461b4439b8e3f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T09:41:24.793Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e4c264467c6bd2eb2fd5afa61db2e7f1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T09:46:24.826Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "078937e6b60b6bd5fd91b4795d4e283c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T09:51:24.642Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0c44aed771c54d157cd432ed1fedcd34", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T09:56:25.144Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7c6fa061f9a99adbf32ce74aefc8ddd6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T10:01:24.481Z", + "quantity": 118.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b3f024cb913695baf1e2924c9e6ebe71", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T10:06:24.51Z", + "quantity": 120.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9ceb3d6980a164a18398591efd850e62", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T10:11:25.091Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "36173213dffbb95ed31036371433bdc3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T10:11:25.091Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "eed469d3b679a9541a489bb765e3d7b1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T10:16:25.16Z", + "quantity": 118.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "74bb9d09cfc38e472439eef39ebfd662", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T10:21:24.599Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bde569c9ed97662f6cb7df3866ae6ffe", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T10:26:24.973Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7c5287000bb3db3b6d61a2c8c331c30b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T10:31:24.662Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8169622a62b8f6f44cb3d5ac1d9069bf", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T10:36:25.144Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a943e2f8d973a1f9fbdfa9c0bdd4692d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T10:41:24.205Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6f68daf9ca7e105c8381a9ac775bd6b2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T10:46:25.122Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1033d69ab811701bbf2fd45e83c6f795", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T10:51:24.741Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0b150ff2eb0a9e6822a349752f921b6d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T10:56:25.071Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "95f95358b7a635a2413cac5f8329dfcf", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T11:01:24.719Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "66e92dd60bddef76114106f78b9aca1f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T11:06:24.239Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "92aba77598c3b1f50928734bfd9c5644", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T11:11:25.058Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "be9166467fbbe779d3a097d8f78cb82a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T11:16:25.498Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "983c61766193c390dca9de8646f810ca", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T11:21:25.074Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "eef4b7dd7be8e29f44db8473578e5db1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T11:26:24.831Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9b353d8d06c698fa5fcba5bd4966ba44", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T11:31:24.354Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "68cf17d82dc14ccfd58cb6517a87c9c3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T11:36:24.742Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ee0c506bdf81c03c54186e5e549fe934", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T11:41:24.929Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9129a145b8dbb7f8c6b150ec36ac6dc9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T11:46:24.775Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1256cde1b5bffee5e702632b2a01b7be", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T11:51:24.485Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6952929757d0b30bee1f548c2c80bde1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T11:56:25.061Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5ce8ec9e854a2b20cc4a1d76968dce0a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T12:01:25.208Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c45324d8d9c57eb6087e953c8cde7d27", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T12:06:25.155Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "332e3520d04f46019dfabb1aab9e3b48", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T12:11:24.284Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b53aa7567e9bacde40f34880d2c94751", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T12:11:24.284Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5936bbd93cf3cc2cf84e4c55f72adb0c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T12:16:24.559Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cbbba8d7029c80d5b05144fbcc3b01da", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T12:21:24.611Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8b6debd24ca5e2ccb235bcf358bf4766", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T12:26:24.95Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "18f3a868703d790658969db3cb8431fa", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T12:31:24.392Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6487b55da373c99c4875bd452d706b39", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T12:36:24.998Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bfd00f08bb6a4042bef4b2dfb8cdac1c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T12:41:25.264Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2f38618059f935e9c03211ce2185b506", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T12:46:25.032Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ba4e250b990a59b3ef38ac4f01d8d3a6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T12:51:25.531Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bec5d7c3584881bb01bf2774cde2cf76", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T12:56:25.055Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bb646681903298c4f1e7ea66e8854a18", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T13:01:25.212Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9081e9f989e252eca7fc623be0242cd0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T13:06:24.778Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8829046a7cdee084c1c52412be4ee9dc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T13:11:24.758Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fb32097404aebbe971c66960cbb4040c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T13:16:24.994Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3a449cee7bfa31ffb84c6e97363bdc16", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T13:21:26.114Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "50ccc861e2f4a1f4b8bdd83f5b684bfc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T13:26:24.88Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c39fc84908112e8feab53bc9f1afcaa3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T13:31:24.855Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6675605493cadd64f9b570ba9f52761e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T13:36:25.308Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "08d2518bc4f5843bb7ad4f2b9ecd0e79", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T13:41:25.767Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8ebad5712e5362cf2435be5b513aa595", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T13:46:24.729Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e354bd60239158f25504548ccb6a99d4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T13:51:24.339Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "29fd9dfb1bb551325eb1327510727517", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T13:56:24.908Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1f79f07e726dad3c68f917acdaf8cad4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T14:01:24.349Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b0623530538f3723adacbdaa34068881", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T14:06:24.769Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7c50202805afc8bc3e9480ef0c10be14", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T14:06:24.769Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "542bfa57551f04deb2b88e9dc7022449", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T14:11:24.943Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "752384fe462b2db0fed0a97649f7566a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T14:16:24.561Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ed4b311bfbda560da443e013634c0fc7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T14:21:24.961Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "70786f5418f7d7af80eaccc0e8fe7fa3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T14:26:25.145Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fc934b47271813c7063d2bab9971e9a9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T14:31:25.021Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7aed80b78fd77a14765e9a8db8be9728", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T14:36:25.289Z", + "quantity": 123.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "67ff34ffc86897b0a6fd915c600f4edc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T14:41:25.316Z", + "quantity": 125.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "644f1e7172e919b6b2e79edf993fffe3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T14:46:24.629Z", + "quantity": 127.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c05e924988d9fdbe437c42cf3e6421ee", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T14:51:24.486Z", + "quantity": 128.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a916af9dacc18bd225b35e7647330110", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T14:56:25.034Z", + "quantity": 128.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "41e39894d01207073a941b98e8d18351", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T15:01:25.103Z", + "quantity": 128.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c6bf18d4b444ab795cc4183099981205", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T15:06:25.206Z", + "quantity": 123.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d6791a5664706320b0b56afe5440eb25", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T15:11:25.154Z", + "quantity": 126.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8a35d6fcdfc4453650579454bbb2cf3e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T15:16:25.134Z", + "quantity": 129.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "92861249af495c7a9e58f52a17bb4ab0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T15:21:25.925Z", + "quantity": 128.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c1ccf1e63bca325fb810f0f7f96892a6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T15:26:24.98Z", + "quantity": 127.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3bca44a85b5ad1bb274f2d1d274b8627", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T15:31:24.827Z", + "quantity": 126.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "11e31164bde5820b17ad0caaef02432a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T15:36:24.93Z", + "quantity": 125.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "300e58cf00a0ae924c4cddac57543170", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T15:41:25.084Z", + "quantity": 126.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d4a6ba384a606d23d3879cbeebc7fff1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T15:46:25.171Z", + "quantity": 126.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "39daf336aa1533cefedd68b55961f98c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T15:51:24.479Z", + "quantity": 127.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4ac072213b40f0caffbd6e0702f7ec1a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T15:56:25.4Z", + "quantity": 127.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "85e2217711fc928c4234d4d13493e315", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T15:56:25.4Z", + "quantity": 127.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b07200e8aaf3f6036852b2e7bee8fd87", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T16:01:24.891Z", + "quantity": 128.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "65e9356102512eab9a1b260533d42f51", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T16:06:25.073Z", + "quantity": 128.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b9131947f061a74de03ccc1fefcd634b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T16:11:25.174Z", + "quantity": 127.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0abc65627f79aa4ab30fd4d5d9c68803", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T16:16:25.032Z", + "quantity": 123.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "059dd306a29fe5429656d73c40bfe764", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T16:21:25.242Z", + "quantity": 126.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a21e553a2cee1fc040bca44fb407a0d4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T16:26:25.282Z", + "quantity": 126.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fd5e49ec3fe0ae3897fbcee38f7b6f99", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T16:31:25.19Z", + "quantity": 126.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6d14cd30caa28e28294438eb4410c08d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T16:36:24.477Z", + "quantity": 126.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "787758e5112928eae3750d429c861015", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T16:41:25.295Z", + "quantity": 126.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7100747d82a8507477a0554d55260a17", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T16:46:24.549Z", + "quantity": 120.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bafd5773bf751997d87e9431b6ed3311", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T16:51:24.989Z", + "quantity": 118.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "96992168eb69cc15d14e2f10d0b937db", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T16:56:24.702Z", + "quantity": 124.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e4552143a84635e3422ebc3820ba4610", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T17:01:24.795Z", + "quantity": 133.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c9323137558d9d200ae18555076b06be", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T17:06:24.556Z", + "quantity": 149.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "43ca68b877e44f41fc700457e31380f3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T17:11:24.933Z", + "quantity": 134.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "96fdb0aa6c065c9e7ff7006742138ea4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T17:16:25.137Z", + "quantity": 121.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d792ce1c28882b03e4c57a8db8dbd3ac", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T17:21:26.135Z", + "quantity": 121.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a7054e2eaef6ac8cbff96094823ddeec", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T17:26:25.423Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "db8ac0749182a46a313445bd2f9ba1db", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T17:31:25.072Z", + "quantity": 118.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "da1488019d0cfeaac99833f139dccd62", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T17:36:24.693Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b5d40756841c30eb3ba8845350afc162", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T17:41:24.784Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "188c5ed77b2238f9772cae39555f5c74", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T17:46:25.316Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "be2a0e572068529279b7d9c501420d6b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T17:46:25.316Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "46fa237ad059a9dd62ab6426b9ab3162", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T17:51:25.221Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5769ba1b07003b93a2ae2d14b668ec27", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T17:56:24.952Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "18bed0d808d5955a85e566bae9ff6294", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T18:01:25.211Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "82efd4aca71782b4441f3fecbdca8022", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T18:06:25.308Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9b5286765803b498aff7b771805bcd54", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T18:11:25.229Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f3241b6736df80f8263bddf909237ac1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T18:16:25.013Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4f3730baedf1edf7a4b8ca9a9b68fbc6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T18:21:24.936Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b929bb36c961fead62ede7bdb92de884", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T18:26:25.467Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "477f841b26c828db6073d289648a21d3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T18:31:25.555Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "aad75c72913205531c80bef805b9e811", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T18:36:25.551Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "303c720b7706d1ed81c2e12d71973f7c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T18:41:25.235Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2dbe5e7d5132516be4f9ee1b8e07ad24", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T18:46:24.735Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7164a52b462e9b10e7f2559b55e13200", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T18:51:25.216Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e2b9a9d00e4c56772b85e7585f15d133", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T18:56:25.252Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "03b31e145fbf098cc70c96360d524e0e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T19:01:24.694Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8c17e4dccad11379a77b950a3f3ed9b1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T19:06:25.009Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6945e803deb78ce91454a69a4bb5c04b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T19:11:25.386Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "749aa87b43643334a4779c0032faaba7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T19:16:25.418Z", + "quantity": 120.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "33617f646d9d92f9c06f352dfe206f30", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T19:21:25.333Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "18b00cdc5eca81422b86829c19df64d5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T19:26:26.902Z", + "quantity": 120.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "007f3b1bbb6b6acf41a5ec603847547a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T19:31:25.388Z", + "quantity": 123.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f997e9868e72be9678e46d54d6c5e2b2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T19:31:25.388Z", + "quantity": 123.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "edae5dee5167d71e4aa52ad5f114a9d4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T19:36:25.569Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0a6fcc05996d846bc64a808fe66ac108", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T19:41:25.624Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "47eb1211c1a9f514075a68aa4038b46e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T19:46:24.656Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fec786f15d3c7656b6a7195936e1beea", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T19:51:25.446Z", + "quantity": 123.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "605d4de4f9ff3a9e61b5f6b01d509ebb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T19:56:25.053Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "98f8bc303e8d002c27dcd31eba4c5a88", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T20:01:25.281Z", + "quantity": 120.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e74525e1ff3704a319bb5d85419ea1f2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T20:06:24.851Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c64d1e4cb51dc0923b5c28c21775de91", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T20:11:25.631Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "dd56eed6ded18d21e6274f65e73f86cf", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T20:16:25.044Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8eddc0ebf076f5ed47edc83a66ab69e8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T20:21:25.062Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1e56366363304b8ff4103babc11fe829", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T20:26:24.767Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c8b8079b34b939bff86c7980635e29a7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T20:31:25.655Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ae56596b0530f17bbf49de85f9568d8b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T20:36:25.553Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c29e9a371278789660c228dfc63542be", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T20:41:24.964Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4e7e29deffb9f27f2abfc3a126d2287f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T20:46:24.981Z", + "quantity": 88.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f9b8fd52fb68ea38338d3c8856fcb2ce", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T20:51:25.267Z", + "quantity": 78.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "74e1742c14286809d38c78a0a8e8c916", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T20:56:24.791Z", + "quantity": 77.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "30b8841aaf8796c7dc0afa06fd2bae44", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T21:01:25.649Z", + "quantity": 74.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cdb001de91f51c2a1ca662c5ad428197", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T21:06:24.802Z", + "quantity": 69.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "421eafc8d1444a4e9b64c1deebd109c0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T21:11:25.275Z", + "quantity": 70.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "81a09b56908b6b3420b633c7fff4cf34", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T21:16:25.66Z", + "quantity": 71.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3d93abcbda143a8446dee590cdad4fe1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T21:21:25.693Z", + "quantity": 69.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b7ff81786ba8b3520afebacf4a7e2737", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T21:26:25.391Z", + "quantity": 71.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "aa4555e5e8631cf51818c92267be7563", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T21:31:26.711Z", + "quantity": 80.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1e99a0ef76e9b8777fd413c38c268981", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T21:36:25.677Z", + "quantity": 87.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2c7f1277880c8effb1e55639d4cc6c9f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T21:41:25.291Z", + "quantity": 88.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "016b130ff906cbbb164f2df6b97561b1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T21:46:24.918Z", + "quantity": 90.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8b27e56c15369038315d6bc8817ff6b3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T21:46:24.918Z", + "quantity": 90.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fdbb3c951a545253fdc6491eef6088fd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T21:51:25.654Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bc964efe0388e5c1432e7a297c2f6954", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T21:56:25.027Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a9b0c0d7e1b3db776e724da557162b65", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T22:01:24.826Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4ee44e9162bab88fc7eb757a2c69a8d4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T22:06:25.706Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "136097fc2c61c805b9791eb24fb0ae05", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T22:11:25.052Z", + "quantity": 118.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ff3280ebca4c19d4d590658276a2e88f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T22:16:25.292Z", + "quantity": 123.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c10376bf5b5fba9aaa6490ca755e4860", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T22:21:24.881Z", + "quantity": 124.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8151f49fbdd66d901695cbbff9f83fd1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T22:26:25.067Z", + "quantity": 123.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "844851fed26b77fd809a82bedd0f6303", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T22:31:24.836Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "38a6e6568c54e918f58c819c30179c7f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T22:36:25.479Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "337f6a9521f8df689df22e8e55d0812a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T22:41:25.739Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "538cb9cee1ee3e2a849e050875b86376", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T22:46:25.693Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "17f493afd535fb39cfab65c71b7495fd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T22:51:25.434Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "dfcfee8a7c57a13e83ccb0f1ff0d0b70", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T22:56:25.599Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2756af551fa9a042119b3aeac33dbd52", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T23:01:25.122Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8ce25d5f90b435f00f84b497191598d8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T23:06:25.705Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "774e143c3db23eac4e29cea877de381c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T23:11:25.736Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d82ce0ff7263c5ca22517bad6775d47d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T23:16:25.757Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f9af3d8c2ff7cfa4d305ee4296a62de1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T23:21:25.098Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f4a174a7f606e4f469ce2eb668b3fd6a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T23:26:25.407Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "db758c621c902cffa5ad877f5f9fdff2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T23:31:26.918Z", + "quantity": 87.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "67ad454be7907eac3b606c4412bc699b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T23:31:26.918Z", + "quantity": 87.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "572509bc350b35bbc419ea2ffba04557", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T23:36:24.837Z", + "quantity": 81.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a72ad7bb434812d1333f845bc78cb5d7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T23:41:25.589Z", + "quantity": 77.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f5ead6864a48a2f98e7fb48d5ef9f5e6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T23:46:25.669Z", + "quantity": 78.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8bb867e88a5c679dd6d7e1b62f92da56", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T23:51:25.773Z", + "quantity": 74.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1746ca0de192a443b573f514f26619e3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-27T23:56:25.549Z", + "quantity": 73.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e3aaa92c2ae4eac51dc3dc04db5e3c2b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T00:01:25.574Z", + "quantity": 74.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4c5963492337095ef3808beace2d791d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T00:06:24.929Z", + "quantity": 75.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "747540d457a153f37576ceba7399a376", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T00:11:25.505Z", + "quantity": 75.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "89c995c19d3d9267cd79f192498577ce", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T00:16:25.432Z", + "quantity": 73.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d28d0c4ea12b27fc2f1b4af6e5c38056", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T00:21:25.854Z", + "quantity": 73.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "eec7a9496bed185ab80321c96bc99efd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T00:26:24.907Z", + "quantity": 73.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f998921e4f2ed986b4877cd298c94482", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T00:31:25.677Z", + "quantity": 72.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "95ed7f23c232ce956b21d703ee4c85db", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T00:36:25.726Z", + "quantity": 69.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9e5c65b7e9915c87341c1924771d9b06", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T00:41:24.962Z", + "quantity": 74.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d765adda1e5fa69d8d06908bce11dc78", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T00:46:25.606Z", + "quantity": 74.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4791d86c871626cec7738c3e74abd488", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T00:51:25.305Z", + "quantity": 79.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fa00f9bc73659b829fcece99071bac0a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T00:56:25.494Z", + "quantity": 88.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ed274bb6bad53a2f5825663b4c9f619b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T01:01:25.453Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ed8e32cf4e211f250f589568a4547b64", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T01:06:25.628Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b6a4b1928b54ce24a3635017c5ad085c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T01:11:25.68Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "236ea6b62ea7b633b2e9a41ef6a6c6cc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T01:16:25.077Z", + "quantity": 138.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5183b41dba9002b99662c87e7804a8a5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T01:21:25.168Z", + "quantity": 151.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e066e16c3b85b1141fe2866474f93cf4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T01:21:25.168Z", + "quantity": 151.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2059c8d7cd02fde9df7de5e7d8e79b57", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T01:26:25.668Z", + "quantity": 147.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "83a399fd534e9f2fa8a196e3c7c7e90a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T01:31:26.542Z", + "quantity": 156.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8a0b3f52835bdca1985fde9c13dea5b0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T01:36:25.329Z", + "quantity": 155.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d2abf5f8770ba8194c366fd21ea0e305", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T01:41:25.369Z", + "quantity": 139.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ca5538a338ef9d1798c329fddb2008b7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T01:46:25.501Z", + "quantity": 138.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "baf17c091f9e48f9793fff2428aaea5f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T01:51:25.725Z", + "quantity": 135.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "931b785a5aeb302f30ec0a40e23ff714", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T01:56:24.934Z", + "quantity": 133.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "09658abfc256bb3aaf69bf42a1ae77c0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T02:01:25.759Z", + "quantity": 132.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ee69f02c6917ba6a91d9f401164a3f98", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T02:06:24.942Z", + "quantity": 130.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6ff1ba09aec6eeaa484b85e1ea33a5cc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T02:11:25.688Z", + "quantity": 129.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c76473ea92f7dd237a4ba9bb1fa7f0d9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T02:16:25.355Z", + "quantity": 128.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9e88af373da4d274cde4f01404d38339", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T02:21:25.476Z", + "quantity": 127.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c2762b3de7cf4870c2b964e8d2220c6a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T02:26:25.761Z", + "quantity": 125.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8175240889185532476e9ccaf02c1794", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T02:31:25.737Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "159588c8d1fe4451996eb07272c50edd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T02:36:25.576Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5d3ace0e6beed97ce1095c483cfcfbb0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T02:41:25.261Z", + "quantity": 121.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cfab919cf72ec5890e13e69156aef294", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T02:46:25.967Z", + "quantity": 120.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e200d12cee65654cb2154f12cf6c7181", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T02:51:25.761Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "161ccb016a61ddca2f4ebf4c59774b5c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T02:56:25.201Z", + "quantity": 128.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "10224232f3c4fee19a3fd9409aca9570", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T03:01:25.876Z", + "quantity": 137.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2816cf42ca26c0cccff7a7a814ce8b5a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T03:06:25.652Z", + "quantity": 140.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "59963ffd5121b7a1baa7bd3f3fe7cd4b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T03:11:25.619Z", + "quantity": 141.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "27b291a4414220a8f3bb53db0fdc77cf", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T03:16:25.514Z", + "quantity": 142.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "318eaef6dfe25b320920bdb421dda0eb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T03:21:25.514Z", + "quantity": 139.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bbf36a2201f5c32711599c1ca14a9172", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T03:26:25.45Z", + "quantity": 142.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ec9b2f50c8464a5058d83abadb3181d0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T03:31:25.594Z", + "quantity": 141.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "419594d7a1179414ebc3f941abd3c0bf", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T03:31:25.594Z", + "quantity": 141.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "acd82883255f450810fa4775a08564a1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T03:36:26.828Z", + "quantity": 141.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "748258504be2449c51c321f7a37a58a1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T03:41:25.37Z", + "quantity": 142.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "19dc7231a94162905b2b64396a82e69a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T03:46:25.828Z", + "quantity": 142.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7e38996c87f5ae3027b0ae256f77c2c8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T03:51:25.734Z", + "quantity": 142.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9d078e9076e52e8846ce067cd3a41902", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T03:56:25.767Z", + "quantity": 140.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "87dc81adb72b7b58658ae9ef73939077", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T04:01:25.743Z", + "quantity": 136.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3945d787c9286cb5bc5cf224009ba51f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T04:06:25.43Z", + "quantity": 134.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "128ac386a11cf493153e17a5075f99d9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T04:11:25.649Z", + "quantity": 132.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b47d969c8e448d32f1818be93adff686", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T04:16:25.844Z", + "quantity": 130.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "eed332a34d4e118e78c4dff433018c3a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T04:21:25.945Z", + "quantity": 128.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f5cb8f2626a64fe1675486c009ab0f23", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T04:26:25.307Z", + "quantity": 125.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b00f4ebc534b6fe6044754dd38922e65", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T04:31:25.196Z", + "quantity": 123.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4b6ab84697be2a7d7c8db31beb6ebfd2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T04:36:25.595Z", + "quantity": 118.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a10b22915eb825a0b526b54155da7022", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T04:41:25.548Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "44478cde30b99c4be5c11014236c1e5e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T04:46:25.697Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4f9b69d30396f96f2f5c859b0e40d2de", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T04:51:25.977Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fef847df7e6cd17edb22d00ac293c572", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T04:56:25.301Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "68e84d1b8deb4d932040a876886dbf34", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T05:01:25.664Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5b966c699326e552cd18e69c0425566e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T05:06:25.766Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4f5f022603924089a9acf2745e9ec2a9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T05:11:25.826Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7ea52244ec46433be226098ccd3edd7f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T05:16:26.021Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4db52c34df7efc1fe0fe401e37f9f00b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T05:21:25.378Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cf70c60e093056e8855bb85eed03dd50", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T05:26:25.593Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "de22550c958faaea4a1e784100a2936c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T05:31:25.74Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "951d494e869a7c3e142b83ff5d33e3b1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T05:36:27.459Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "45d87eb975f5b2c82f3e0fa555631828", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T05:36:27.459Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d629251b6ff0d3769569cce8d3319cac", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T05:41:25.529Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ffa482b822d5ff6448e631ab76541e88", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T05:46:25.616Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ea603a5bd56728ccb97049e4d252cb74", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T05:51:25.217Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3ce43a167c3183e880acb86c6be542d4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T05:56:26.863Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1252536d1a0a3f24cf83cef6ae545a02", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T06:01:25.511Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "38778176a4549f8472cf977134a3a23f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T06:06:25.244Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9d2e91fbed93719b45ba3f215165333d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T06:11:25.77Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5a0a8dbb8ba05f694c9b0f3b8673966e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T06:16:26.112Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "acbef0e54d7d6d42b0c65d98de8a5ff5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T06:21:25.529Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fa8784ccabedfa6f59f1179872e17f0d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T06:26:25.796Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b68ebb4a292119721d544103e84753bd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T06:31:25.659Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "dd1700dc101d8c697be6cfdbb1c419be", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T06:36:26.113Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fe80d2f560409a65675b9ab973b33545", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T06:41:25.661Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bc4d32222189d9f8cb1e1650c7284b53", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T06:46:25.144Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d0a01ca13de921e62bf23f7c1cc52a06", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T06:51:25.63Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f47ce72f8fec6cb59666bd42bcff3f9f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T06:56:26.027Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "42cf6dbfd280313ed0f5540c62cb2974", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T07:01:25.409Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "626b43b917e37492e642d01124bb8987", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T07:06:25.415Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "68468a35dbbe00fd822f5e9fd7c1b202", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T07:11:25.179Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1c1e5d2085fde9211778bb7756819857", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T07:16:25.465Z", + "quantity": 120.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0cc9ddacdf5dd6beda915337b9830aae", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T07:21:25.824Z", + "quantity": 131.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e331aa63cf62f1ffb74285a5121c6a7d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T07:26:25.904Z", + "quantity": 127.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ae3c2bd821add36d3e5006f3cbcdd904", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T07:31:25.44Z", + "quantity": 128.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "affc9ef0fd56106712c26e7fdba9ce13", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T07:36:25.963Z", + "quantity": 128.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "05c80e9d0ab4da51e6a51e50ca9ca531", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T07:41:27.398Z", + "quantity": 131.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7a14f5ebb45f1f9778097d491eafe174", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T07:41:27.398Z", + "quantity": 131.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d327cc2bf6515dd5ea1b76f104ce91a5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T07:46:25.605Z", + "quantity": 135.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "22e7ed174be578d1be3cda287ed94598", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T07:51:26.151Z", + "quantity": 135.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9ec73ca5d31ea5c76f9c0af8ccf0bf5d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T07:56:25.735Z", + "quantity": 134.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "77ee55427b9d74216ec854fbbc73a302", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T08:01:25.922Z", + "quantity": 135.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7c250f3e7806109f778dd84024b51c4c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T08:06:25.448Z", + "quantity": 133.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "516ecf3fb89c5e389b5aef10ea6441b0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T08:11:25.282Z", + "quantity": 127.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3c10690aded8de97c892b2c94cb7718d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T08:16:25.813Z", + "quantity": 130.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "90a35fde875e4f8d89d546c1de72fe25", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T08:21:25.668Z", + "quantity": 130.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e3ab83c68367ccb7e080b89fd1d0dd54", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T08:26:25.529Z", + "quantity": 127.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f59f582e6b09e5c6d12799d46e17cf52", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T08:31:25.988Z", + "quantity": 121.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "99a356c17b58d45758aa5218810ae539", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T08:36:25.528Z", + "quantity": 126.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ece8caaca46cc832ee0d41a3b903189d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T08:41:26.049Z", + "quantity": 126.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "14b8f2559956988400900381d870bc6f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T08:46:25.66Z", + "quantity": 121.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "26ef616736ea95e9224ee93923b6d1bb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T08:51:25.419Z", + "quantity": 121.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2a75693c215effdc78d5481035ac1a48", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T08:56:25.793Z", + "quantity": 125.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c1ab66c5560d7943887701572c355f72", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T09:01:25.949Z", + "quantity": 128.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5a446c33bdd6abf1b3b6f5af1e5504e7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T09:06:25.729Z", + "quantity": 125.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ee6a82591bfb2fa7ded16394e9918bec", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T09:11:25.815Z", + "quantity": 136.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3eb2e3cc149beaabfe7772a5cce495cc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T09:16:25.564Z", + "quantity": 157.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "34fc50a0f27c166dcc805c774828f410", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T09:21:26.039Z", + "quantity": 158.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a33950569347377dbb67286e1aa24565", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T09:26:26.148Z", + "quantity": 157.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d2a4373f52c239050a577275c41d5eb1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T09:31:26Z", + "quantity": 158.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "923efe00f405a481ced632601beaccd7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T09:36:25.943Z", + "quantity": 159.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "724095faa1ea909575322bf132c1d5b4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T09:41:26.421Z", + "quantity": 154.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d96897090e122cacc52fa51709f3c32c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T09:41:26.421Z", + "quantity": 154.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e4eb1e3d015028e7561a23c4d268b2b7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T09:46:25.645Z", + "quantity": 156.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "911efd945910cb4b3418ce6731a15731", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T09:51:26.168Z", + "quantity": 160.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d84fe3ede43e7486b5b505a6ef726531", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T09:56:25.344Z", + "quantity": 159.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "96706147f4391d052599a1abcc6f94bc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T10:01:25.852Z", + "quantity": 155.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "38b8d5b2486ac82757993a2b7710c8a8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T10:06:26.136Z", + "quantity": 137.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "150cb33b00f45c93c237d88d2c9a5968", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T10:11:25.386Z", + "quantity": 135.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4afb2b27eafba8fe58c090c28d951fab", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T10:16:25.525Z", + "quantity": 135.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "efa7ea5aa62284ec199381c0adba85e8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T10:21:25.641Z", + "quantity": 134.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ece4731034958ae56ddfc50de22c12bf", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T10:26:26.02Z", + "quantity": 133.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "78086067fde847cf457a86dcebf1ebbd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T10:31:25.359Z", + "quantity": 130.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4adc84d1e4639e17293bec7b43e6c771", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T10:36:25.513Z", + "quantity": 140.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "09d4d1905cd28db64c3d75fc5bc3a1b8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T10:41:25.529Z", + "quantity": 164.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8d64bc0c819925ac0d9506eb3db92b8a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T10:46:25.895Z", + "quantity": 162.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "12354aefc1603695b5726fe29c12f9c1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T10:51:26.258Z", + "quantity": 156.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4d17affd6260587da1d3a6fd8dc4e884", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T10:56:26.257Z", + "quantity": 153.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "746f8033342d347a3d5e9cd521a1d85e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T11:01:25.7Z", + "quantity": 137.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "381ac4cd3c9029279c24f2d33f37498d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T11:06:26.189Z", + "quantity": 133.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5aed87827cb15bf169bdda36f36cc69b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T11:11:25.802Z", + "quantity": 133.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ee186ca0b7c5447bedd3e9988fafabdd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T11:16:26.019Z", + "quantity": 131.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "00e7119f25d271269687f4b3d32ab8de", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T11:21:25.671Z", + "quantity": 138.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ce7f485df70ced2b7156359c0ecda3b4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T11:26:25.907Z", + "quantity": 135.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ee5555001718579ea5bde8515186be67", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T11:31:26.035Z", + "quantity": 130.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fb558883c627b891244857a32cca2b5b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T11:36:25.478Z", + "quantity": 135.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "075d23380196cd44dda35f5a845a5bc3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T11:41:27.367Z", + "quantity": 137.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "057f0224b36d3df495496e986b70247c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T11:46:25.67Z", + "quantity": 135.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "166d7f7dc9d4917f0cec4ebb07671aae", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T11:46:25.67Z", + "quantity": 135.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "199572d5145c8c6b46d8db219a022d7e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T11:51:25.69Z", + "quantity": 137.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "363e58aeddf4e8ad18b1751bb842496b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T11:56:25.989Z", + "quantity": 133.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "91bc93a624c9b63da8bf342a896a5b59", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T12:01:25.673Z", + "quantity": 138.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "200ac394b129fb8dbec7d42c7992b091", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T12:06:25.761Z", + "quantity": 137.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8ad6b55db7a58477d9adf4b60e15fa53", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T12:11:25.695Z", + "quantity": 136.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3689a0ded6754719dde1b8a7bcc63efd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T12:16:26.143Z", + "quantity": 133.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "093e0615131b1bbad8374cf24fc4ad6e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T12:21:25.757Z", + "quantity": 130.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1f622816f00e005b782c5ff4977268bd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T12:26:26.344Z", + "quantity": 129.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0d5aea194edafcefc5fecc8deaca1b0d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T12:31:25.954Z", + "quantity": 128.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6930790346fa0110f2c62aa543b9bc00", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T12:36:26.006Z", + "quantity": 126.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a70e8b40b9e5159663cbbd3b9a7a88aa", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T12:41:26.073Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "79e3ab441bda2b3733499efe2310166a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T12:46:25.508Z", + "quantity": 123.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "88b567de1b41f6cd92d102f47242da8e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T12:51:25.863Z", + "quantity": 123.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1dded2bf49608f1a488b2ef31f4bd741", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T12:56:25.416Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "99c660c52dc4817118c533e5fa71bb26", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T13:01:26.094Z", + "quantity": 120.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b8400ed3f33e980d54d4f49882e74457", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T13:06:26.397Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "27a4ba71eac8ef2384c8079fe30ebde1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T13:11:26.123Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "77096f317e8613515f54de75b90e2102", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T13:16:25.861Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "15f7350cf327077e848831d09b9ac41d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T13:21:26.107Z", + "quantity": 118.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e2e8cb82b19f2c66051ce14027f3b1a5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T13:26:26.041Z", + "quantity": 124.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "84103e52021c6fe14bbacdd23fdee25d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T13:31:25.424Z", + "quantity": 121.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9201138fa0c671593bf500b2c45d71ad", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T13:36:25.893Z", + "quantity": 118.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1ce67310e91a9a0e2149428fe1f47921", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T13:36:25.893Z", + "quantity": 118.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "00d52406a5528229cae6d1b2ba9a37f8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T13:41:26.333Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "722499f1bec3462a40dd306abf1f7f93", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T13:46:26.782Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "af630b211dd220a61b9908f20d8198a2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T13:51:26.178Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "de63f4553464f4ca67d40716da91730a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T13:56:25.945Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4e849a065f6df23b475ce4e001d288e7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T14:01:26.027Z", + "quantity": 87.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8806f9b59343163005842010e00327c3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T14:06:26.314Z", + "quantity": 88.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "589364a1a5eff9b948fc4c544ff200e2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T14:11:25.813Z", + "quantity": 90.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3fcdf9884e659e1dff9eb42a9717c80d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T14:16:26.864Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9d4978baa4b073c93eb95d8005797bf2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T14:21:26.072Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2bdfd70967f652d8ab10bdfea73b9a27", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T14:26:26.426Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e1fdc09fa374516ee2cc79568a2e203e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T14:31:25.605Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ce3666f3d87c523a6cd0d155c16e1511", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T14:36:26.361Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ca6d685f454ce468a32c0b4e5cb21230", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T14:41:25.655Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a4129087cda8b6c649afdaabefb4ff4b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T14:46:25.931Z", + "quantity": 88.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b4d0c53b794b311810699389864685e1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T14:51:25.533Z", + "quantity": 91.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d495b06bd635c61a6bcfd2a8bff1e5d5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T14:56:26.378Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "21f8d4b7c40178f96bb7979f014f2f55", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T15:01:26.221Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "50ef9457117473acf23047a4690c3bce", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T15:06:26.332Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4c143cbc09a6f0d2f98ee2ba51fc575b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T15:11:25.895Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9939bbee3453641ad19a75bbb3520d2c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T15:16:25.531Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "05ff3868abee185dd0d472191c231d51", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T15:21:25.638Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c14a6f2996770ab2fde0e3d35c184087", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T15:26:25.813Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1037a325fb03de5596f4a332780bb94d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T15:31:26.309Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a04b6ea87f224644af10f20a3784af30", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T15:36:26.187Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c6ee7092348a94e6aa9e1b93262fa001", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T15:41:26.015Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "77925a5b33a7a0eb085d55480a8fddfa", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T15:41:26.015Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "329b68efa0b69325dd07aab098eb52e1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T15:46:27.043Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "658cd49650b78ebc56ec90470b97f313", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T15:51:26.457Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3aeff3fe7e45617e149ed888aaae4135", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T15:56:25.576Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "23edd8a84b19e3bc42284c98ffbff817", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T16:01:25.953Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c9cb05d2ad855ef30f9e6755a9855677", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T16:06:25.548Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "29dfc46efc28460f16c3373d6f67604c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T16:11:26.046Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "adfd47595d125cf7da9d5f720d31b754", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T16:16:25.653Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "21186d58430698f16a3c1a5eb785e46b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T16:21:26.44Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7a83b433073c482e87c4dd4393826d2c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T16:26:26.209Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "542272566af82834cafa00d64286e817", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T16:31:26.498Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b9ac22bbc143a893b903bdd9398207a6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T16:36:25.838Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "13f6689b5be10388366631b2a581629e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T16:41:26.269Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "37516dd10801f5aa23cab508dba31040", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T16:46:26.23Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "88bed5c6acfce81a5de39d734e848d44", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T16:51:26.289Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9bd640d6b78eceb838d0054ecf280533", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T16:56:25.741Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a651f882938ac266935aa801247f70f9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T17:01:26.287Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "657a0467c4a2e4d4434414aa4dd5e9b6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T17:06:26.441Z", + "quantity": 127.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c3ef7825ff267bbc42bc2695905d88c8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T17:11:26.316Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9135b9a75edb75cc4f102c0e9cda2074", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T17:16:26.033Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b209d5db91025b5f3ee7d30396c11515", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T17:21:25.856Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e086d6db4854fe73bfe7ac29c9126aa0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T17:26:25.85Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "249dc7e8773cee08359bb357a0a277da", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T17:31:25.934Z", + "quantity": 118.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "87fbc8510e18dd5c72d814d23bd10c99", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T17:36:26.495Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "124178c7aace9b5be302ba20f0f0924f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T17:41:26.102Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "27a7693f2b89d004a1399fef24c862ff", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T17:46:26.107Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a245100d789060db0ef95ea746b72a6c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T17:46:26.107Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "102deee93268cfd89d9c0d6caf90f5de", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T17:51:27.276Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "eccc5b0c11c6604fc9048c99b0c968ed", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T17:56:26.401Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "dfe04d909a2396d54ba223ceafafb66b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T18:01:26.439Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6387357637488b471e65a3f6a9c5be50", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T18:06:26.484Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5f76c2223ea04e17d26aeb5f1e43d23a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T18:11:26.186Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1a07c21843153c58f12244e9415cee67", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T18:16:26.381Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "543647b3b48778073da53c3491907f23", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T18:21:26.272Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b6e8079ae6d073a80e460e5eecc40bb0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T18:26:26.653Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ee1b6009be031a0af2251a3211aebf1e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T18:31:26.207Z", + "quantity": 124.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "071193c667a7b94f5a4cb77c9039a9f1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T18:36:26.558Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4228722eabca1b10a4138948ec88237d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T18:41:25.69Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4a149347d16719157683433ef380cd7e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T18:46:25.945Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b1d3139f834ed24ebcd25639fb56586b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T18:51:25.794Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1ec6673cbcc1f3043b917cf41355c0df", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T18:55:55.859Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fb02f29b767cb8ee0b39065b0832bd06", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T19:00:55.859Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0c64cf2ec86a6852c01fd62ed8c31895", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T19:05:56.856Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a0385b8cfc40f161d560a5373c3e63ee", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T19:10:56.35Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4a3daf6087b0b8333bbad1e7ac1bddc0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T19:15:56.523Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "44e3c02d1e27f0a368785d9df9470eb3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T19:20:55.774Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cf555dac412d9d79561b5455ead3b930", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T19:25:55.624Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "89cf083772d393fd41eb2f9e3c28e3fb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T19:30:55.771Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ec01b4993e01c94e366933454d7a439d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T19:35:56.49Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "18f8572d93dd3e32c97757da66266247", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T19:40:55.562Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "49531e8c32352aa1970ed5daf57d59d6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T19:45:55.91Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2460fb589ae155d98290d2b5e5e628e6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T19:45:55.91Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9dc454c472c8c90d27324b0b2dc91da5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T19:50:58.025Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "94c7d8dc97208167c753ccbc0b59a8ee", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T19:55:55.871Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3f4ae61c7ef50bf5a7df05686602d14f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T20:00:55.904Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fee7754f37ab8c251d64904a3022c65c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T20:05:56.45Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cf3b8e2fffd35c998380741c4679473b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T20:10:56.244Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "85b11e0f7ae28b0ec72220f86bcc483b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T20:15:55.622Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4cbeacd3b995a3d15ada01c36cd6ac78", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T20:20:56.45Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6c5462f61074301630b349c4bf02d6a2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T20:25:55.884Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "edba6bf06d4dee8af8a36c1a0dcaad1f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T20:30:56.316Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "71298366d2699ebddd5bfb6022cbcc29", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T20:35:56.24Z", + "quantity": 120.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "df1745a057d5c35e289547fa9cb945bf", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T20:40:55.641Z", + "quantity": 125.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "88f183d57756dfa202e48904f362a691", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T20:45:55.707Z", + "quantity": 128.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5ac601c9826b1a8eb42d355cc8c32d9a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T20:50:56.241Z", + "quantity": 133.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "95841e329f2bb9dc37c182f7683a7aef", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T20:55:56.248Z", + "quantity": 135.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bc1898d6b7fc52f0bff009f52f4eea81", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T21:00:55.946Z", + "quantity": 131.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "aaafa206bb6f0a222cc50efbc462ceea", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T21:05:55.652Z", + "quantity": 132.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6c5b26267bcaff04b6a6575e444f65e7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T21:10:56.357Z", + "quantity": 130.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e832724237017373f4d1b8cb7fc11b5d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T21:15:56.533Z", + "quantity": 128.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3f451c82dad2c18fd15e6f6b211287df", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T21:20:56.395Z", + "quantity": 126.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "903846490cd9fcfbc19bca63b9597b06", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T21:25:55.66Z", + "quantity": 125.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ceb81fe02be155822e2426770ef7daf9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T21:30:56.276Z", + "quantity": 124.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d9fb0c55beb73e2fe473f6c9c57078fb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T21:35:56.207Z", + "quantity": 120.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c2fa0dc1ece0d01289a2433eadcb245f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T21:35:56.207Z", + "quantity": 120.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "06ce27176f4853c1ec8ac63b2faf5fc2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T21:40:56.365Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "62744e275c5cb8e791b1c142335030e1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T21:45:56.372Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "aa5dd1b564de271c694d1db211bbc101", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T21:50:57.267Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "290bf0195582799edc601f6929e0d7e0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T21:55:55.915Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bbe5388de73792ed0b81e75924c46837", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T22:00:56.052Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "92f2f2e9729ff4288591f97ca535fb5f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T22:05:56.468Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b2ca983eea36eeec3f55d0ea8a710900", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T22:10:55.896Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "be00aa4d60af69612f4b314d4947e9d4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T22:15:56.571Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "67c21b994a4c86bdb86882ae1f691648", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T22:20:56.309Z", + "quantity": 121.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c25245895a51be702bc2cc07f15d2413", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T22:25:56.262Z", + "quantity": 129.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "106d1683e013f9cf0c4093e9701f354c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T22:30:56.349Z", + "quantity": 142.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cdaa8d003546f4d11e883fafa6358b7e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T22:35:56.367Z", + "quantity": 164.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "38a268eceef8aea4c5b3e8f38eeeaee3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T22:40:56.522Z", + "quantity": 186.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c43d58fc7189af6686e927fde58da87f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T22:45:56.535Z", + "quantity": 181.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6695fcb0190448c7f0d5b3131a36d0ce", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T22:50:56.505Z", + "quantity": 182.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b17e8dd3d8162171198b1a39ba9fdb1d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T22:55:55.972Z", + "quantity": 190.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9eeb47a645421f1b78de0a251a65f973", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T23:00:56.394Z", + "quantity": 191.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "60d1a46f7d615bde9b4a2d496b100371", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T23:05:56.445Z", + "quantity": 187.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "88b3469b8e82a370bc94aa875e1125fa", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T23:10:56.657Z", + "quantity": 181.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bb64a66b348753888413e900f4f4e74b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T23:15:56.521Z", + "quantity": 179.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fdf46e7ed1c39b9293aa0ffb73ddf2f8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T23:20:56.616Z", + "quantity": 175.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "08b2d0e4b5e5ae4345dc5e842cb275a3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T23:25:55.815Z", + "quantity": 173.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4e513dbc95a4747b15f947ec5b16f148", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T23:30:56.284Z", + "quantity": 162.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3de058a0819f2ee86b2f5e79b0536aeb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T23:35:56.557Z", + "quantity": 157.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e335b08fc5521dd0f38cf9ef24d5a809", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T23:40:56.137Z", + "quantity": 152.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9ba6b452b8a540d19abe731f5f480ded", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T23:40:56.137Z", + "quantity": 152.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7d34eba77a4a075cb16c4c8e7b5fedfe", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T23:45:56.652Z", + "quantity": 144.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bd9c5a3b2244a531dab4d0c5ddd85b9b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T23:50:56.097Z", + "quantity": 138.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b915c6016242abc36a84bd5956ad5d74", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-28T23:55:57.375Z", + "quantity": 134.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "831de7bf23f3ced2e273dc2a5e940344", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T00:00:56.402Z", + "quantity": 129.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "031db7e013ead91ef2b01f58b77ae3d2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T00:05:56.678Z", + "quantity": 124.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "904c9d6878893631701d4f4f12bf0ebe", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T00:10:56.416Z", + "quantity": 121.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "19eb5b08378afcfd80afbf216ac7605a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T00:15:56.114Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "24664fada868e69bfcc089b991534a2e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T00:20:56.556Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7cb49b59b05b13f224d32c2575d69619", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T00:25:56.732Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5811d6abdb764081fd406a97c52bb08b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T00:30:56.466Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1bd64a75af1b6dbf38ee673296175ae1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T00:35:56.645Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c71c2fc25f26817bfd8330fbe46bde18", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T00:40:56.114Z", + "quantity": 86.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5899aff8b9c09a8cd0b668b0d1d814e2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T00:45:55.853Z", + "quantity": 77.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "02bd7f7faebf5b45c2843130a4aa92a2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T00:50:56.393Z", + "quantity": 80.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f37bdefd537aa033ba7fa18854afe142", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T00:55:56.498Z", + "quantity": 80.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3b42c7659899d707421d62b2b8415552", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T01:00:55.945Z", + "quantity": 83.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a799fd2eba4864b9317ace9e30bb647d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T01:05:56.642Z", + "quantity": 80.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cf6cb667f68c0c935544a6d1716737c6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T01:10:56.446Z", + "quantity": 78.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d93f9615eda041f614c77874bdf0f0ce", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T01:15:56.433Z", + "quantity": 76.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8d4eae3656b7103ada0636d12f451915", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T01:20:56.005Z", + "quantity": 76.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "81fdaa566e70bb3b655a1504a3ab7ee0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T01:25:56.304Z", + "quantity": 78.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "41afaaf85599392a1dd95feafc182510", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T01:30:56.785Z", + "quantity": 82.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9c72a0b522f1274500c8f9987db96387", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T01:35:56.772Z", + "quantity": 84.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7961cd4ee6ac4c002924d1535c3ae6a4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T01:35:56.772Z", + "quantity": 84.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "16a6cfeafd91cc168c69973a0d92d631", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T01:40:56.551Z", + "quantity": 88.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "23f6266abacf00556767c6ed06635f4a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T01:45:56.43Z", + "quantity": 91.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e0d442fdf7d1780354083e597b630069", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T01:50:56.459Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "da687a3d1a6d7a760118878d0a8b2d8a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T01:55:57.33Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f12151f72e736a8e8a9b4d14dbc27aed", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T02:00:56.842Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c9a3539eaff81e604ac565d702d25a31", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T02:05:56.868Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c33b336f37aef293fb8f843bb551b885", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T02:10:56.813Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2ab46daa811b79490374f16ec905251c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T02:15:56.042Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ad80011d01149fd2b1d2983b4448c2ad", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T02:20:56.106Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b6cc7e2700ef9bdeb7fd7350d531186a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T02:25:56.62Z", + "quantity": 90.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a920d7584d50b9299dd070225b1f8abd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T02:30:56.667Z", + "quantity": 86.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "dc8aecd672b480168fa215074d6f3f95", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T02:35:56.233Z", + "quantity": 82.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e21abe721372c7a3c26168d62737f239", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T02:40:56.661Z", + "quantity": 80.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fc16604b0a3bba76a74bda50b26bc2a6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T02:45:56.668Z", + "quantity": 74.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d8bcd33275f110662871398220e6cf81", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T02:50:56.198Z", + "quantity": 71.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0dd189cdeaa4529ac518198011597ccf", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T02:51:02.198Z", + "quantity": 67.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4aae1df94f989846847fd9981c890717", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T02:55:56.852Z", + "quantity": 64.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "144650d96a1a5f109625764f84cfd33a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T03:00:56.038Z", + "quantity": 65.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0f84500799edb2ebf12c25b722eae2ff", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T03:05:56.435Z", + "quantity": 67.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1e4af1ded32c0a5a9c722c8ae4edbd52", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T03:10:56.636Z", + "quantity": 74.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "90be55084db4c4daf739c6e38feeb24c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T03:15:56.879Z", + "quantity": 81.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "db7e6c64bc14cf8780b3fb06ae94db77", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T03:20:56.066Z", + "quantity": 87.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6e683fdb8e7eb87de3ac83ccb9febf82", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T03:25:55.95Z", + "quantity": 91.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e5e8ffafaeec45da0803952e02b80969", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T03:30:56.13Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2b41e2ce0118c6c2c8c40fb83bab6109", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T03:30:56.13Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "54401884e6486f8249c72d4167f759c4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T03:35:56.194Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a96033ad160a61a5bfcd632ebf4b5100", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T03:40:57.043Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8c7450a00a5df2adbe32bca768e2ae3d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T03:45:57.043Z", + "quantity": 89.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8b0d0aa8dd1dc1cc7aa1a003f287817d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T03:50:56.333Z", + "quantity": 88.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5ba19d4491e4371bd4e60d841439b065", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T03:55:59.02Z", + "quantity": 89.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "32d1ccbd93f6b18bee03b7b1dd8fd7c3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T04:00:56.657Z", + "quantity": 91.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6b6c2b7d3f3648524072ef6c6156613e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T04:05:56.65Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b671fd4e80b8724603315780966a52e3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T04:10:56.881Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ad2155d88eb7fb761fe857b1c242d955", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T04:15:56.756Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8402b1a4b22e45221e65775c8223e78e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T04:20:56.437Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a5a47b427643e2666f2e3db61d184fef", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T04:25:56.121Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "77e34d50dfb1fe1b6bda87933d2ef8e7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T04:30:56.365Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bc529794ab23889082c5fb78071f3a1f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T04:35:56.691Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d0a0ca368f7401dea97c8796fcf4241c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T04:40:56.74Z", + "quantity": 123.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "451aff51169261e12abbfc5f30701318", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T04:45:56.259Z", + "quantity": 126.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e055b393a752143ae91b570275dc1b27", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T04:50:56.966Z", + "quantity": 125.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "26553a74e79490e810d1a3da1afc974b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T04:55:56.748Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "67ec7872d9ac89d5a0fd46636c85f128", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T05:00:56.395Z", + "quantity": 121.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "906dfc0c7283de5803ec2c05b1df7412", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T05:05:56.616Z", + "quantity": 121.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ef6d9d484758829114fe21a319f7b050", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T05:10:56.628Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "80b8312c24e36abf1850f97146875cac", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T05:15:56.568Z", + "quantity": 120.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0271146a67fe6ac16eed95d1e8f15753", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T05:20:56.106Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "71bc1eb8757c2fa1ceb78c9c5afc95f2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T05:25:56.936Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b989769a7bee5e2c15f25cf868aa7544", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T05:30:56.498Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cbfd2c21874a6b05bbd6aa2ab5e90a87", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T05:30:56.498Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6df1ffda29ce833dfce1224be2ff2920", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T05:35:56.9Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "638c2d5026da0e4c483a51b303350034", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T05:40:56.63Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "259aaf44323adbcbbb090c219205e838", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T05:45:56.869Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "53cbf13c3e5465de2e693e7c04ebaf1d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T05:50:56.741Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "41b5ba4d0dbddb3d0c88622559285e36", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T05:55:57.292Z", + "quantity": 120.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6c9f3d45648a93b7cde675756ec2ab45", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T06:00:56.509Z", + "quantity": 126.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1d9b568833b28bc36e219c3ecb8d0e0b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T06:05:56.114Z", + "quantity": 129.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "96675b882e0281f7c86f855b69e4e854", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T06:10:56.67Z", + "quantity": 134.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f2b8912128d1182b7678863b2c76f279", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T06:15:56.66Z", + "quantity": 136.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "060808126f48bbe38d457eb353c5f122", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T06:20:56.663Z", + "quantity": 136.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e3fd17b089b679f665268db4a9a000ac", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T06:25:56.256Z", + "quantity": 136.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3bfbb3eccad3c8dc11f4caac0049dcb9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T06:30:57.005Z", + "quantity": 137.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "67ddd19a1e8e9af5cacea6f7e7894ff6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T06:35:56.259Z", + "quantity": 138.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e52b8693cda3ba1f603ed434a22060cf", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T06:40:56.693Z", + "quantity": 140.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5122494c568da0481fe078c0eed38e3c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T06:45:56.298Z", + "quantity": 141.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cf95b27d0625461c5b34661b8c6469aa", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T06:50:56.999Z", + "quantity": 131.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c316dea7d4a56793187de17f046f32aa", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T06:55:56.75Z", + "quantity": 133.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e68714e2e5147e4c95a67dcad4b762f3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T07:00:56.543Z", + "quantity": 138.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "97da9f01d2113d22db30da4b53e206f4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T07:05:56.861Z", + "quantity": 140.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "21a84a20983c268948f0e2dac66c404c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T07:10:56.13Z", + "quantity": 143.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c3f42cf34fdfa068d983f458a1de8414", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T07:15:56.999Z", + "quantity": 144.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c68d49b76ff008c56e7d02726ea1898f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T07:20:56.558Z", + "quantity": 146.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ce2cd6a4a6320267806e8b9c28537bf0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T07:25:56.834Z", + "quantity": 147.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f662867e30af1b25c70e49aa7f4e1a29", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T07:25:56.834Z", + "quantity": 147.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4718ce2ab202f2a99c9a6855d9fd202f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T07:30:56.15Z", + "quantity": 151.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "667594ddd51840279a38e73510d84bf9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T07:35:56.95Z", + "quantity": 166.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "addc744bc93136bad853ffea089d30f3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T07:40:56.647Z", + "quantity": 169.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ad3b6f64a615cff7aabd9a47946b4e99", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T07:45:56.794Z", + "quantity": 170.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d9813bcfd228da349478e2f4e9b8e04b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T07:50:56.261Z", + "quantity": 170.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "513d8cb800349a8128e398dfbe8d1e46", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T07:55:57.709Z", + "quantity": 171.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c9aea11c2f44b6890c9a734ddae1e50f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T08:00:56.513Z", + "quantity": 156.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "821f1a149a989e3d89855fcd53c8e921", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T08:05:56.921Z", + "quantity": 154.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9188168eacf29cf3c1e5560e79851f5d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T08:10:56.311Z", + "quantity": 156.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c054c58ece2b1fa054667d41561555b1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T08:15:56.297Z", + "quantity": 152.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "31b567912b1638349a534d5ba0807e8a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T08:20:56.943Z", + "quantity": 154.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "becb2d2d2b64bcc2910a43921cea6d3e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T08:25:57.075Z", + "quantity": 174.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "61312e7b1a0336fea04f48bdb4cdee91", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T08:30:56.603Z", + "quantity": 178.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "457ea7c1367d577176cbb1b7b21cfb3d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T08:35:57.051Z", + "quantity": 178.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3e28b8b653b37082e791f6ba3c173490", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T08:40:57.128Z", + "quantity": 178.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4680ef491380e791637a8d3139f9178b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T08:45:56.295Z", + "quantity": 178.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "987d278f76786e63b4b4dea69f5c5a0c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T08:50:56.956Z", + "quantity": 176.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f020bca9af479db28010575e28d20e27", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T08:55:56.628Z", + "quantity": 185.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a58e628d01b5fd0795ee430fe90c235a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T09:00:56.805Z", + "quantity": 190.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ec51c51522236e4e32de27cfea0a1db3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T09:05:56.913Z", + "quantity": 179.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "dbbad1eadaa99f04cb7994dc3b4bd8cf", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T09:10:56.48Z", + "quantity": 178.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "89814008fa0c7c31d61fa565d0463834", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T09:15:56.951Z", + "quantity": 185.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fa246e957237e744f662d525a987bf10", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T09:15:56.951Z", + "quantity": 185.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "12c918cea259d0eb1673c2c0754352f8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T09:20:56.344Z", + "quantity": 182.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ec9e4bbfc4cd6f679e2df4a4b9c096a5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T09:25:57.055Z", + "quantity": 181.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "405ae5a51c73766903eb3c80e267b059", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T09:30:56.533Z", + "quantity": 171.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e3d4da05ebb30e175c11f6438f954b29", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T09:35:57.171Z", + "quantity": 173.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c6d7ef879364b978444184279904f13a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T09:40:56.753Z", + "quantity": 175.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "578fc5956cf7dd83e46495bbb5349f10", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T09:45:56.583Z", + "quantity": 174.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e54e8e6093db3ebb2afbf6323fe60641", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T09:50:56.676Z", + "quantity": 178.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f91e8b7a5f5cf9a456f36498bdba8946", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T09:55:56.872Z", + "quantity": 168.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "916126e659ed94a042847a8f7868b69e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T10:00:58.396Z", + "quantity": 164.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3fe99c01933bbda7c44f422c56dba204", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T10:05:56.217Z", + "quantity": 148.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ed9b8a5a1964b7e9c64b8a34fd874e73", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T10:10:56.222Z", + "quantity": 141.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2f18c0fe5295091f5214c9f833fc37aa", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T10:15:57.209Z", + "quantity": 143.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e2d26ab55cc572a720b7093becf7a5a2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T10:20:57.138Z", + "quantity": 141.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4354f46abd62d6c91a86b35bcc2c66a6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T10:25:56.862Z", + "quantity": 140.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "02f48a3cdadf89250ed54cc2bea6ee53", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T10:30:57.134Z", + "quantity": 138.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2f51e6c22a7b1530f033e7455a6c5382", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T10:35:56.32Z", + "quantity": 139.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c71b516fc540638b1d7ce65a71bbe07f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T10:40:56.509Z", + "quantity": 151.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "74dcaa613495e53281ba5e24f361ef8c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T10:45:56.958Z", + "quantity": 173.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3e2c2638d8b32a22b84470b9853a7a5d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T10:50:56.904Z", + "quantity": 168.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "329cdeae66a88b94990ed78b0dd00883", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T10:55:56.763Z", + "quantity": 158.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3fd34552ec7175e8a454db240bd5754e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T11:00:56.744Z", + "quantity": 144.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b6ab528137062838715793f02ebc9b2b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T11:05:56.913Z", + "quantity": 147.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7dca7e63b3fb35e848757fc9b7d2f2dc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T11:05:56.913Z", + "quantity": 147.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8d340a9301eec5ec58963b0443431b4e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T11:10:56.505Z", + "quantity": 148.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5ac565ec86cca7084d925fa1e61d1baf", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T11:15:56.54Z", + "quantity": 157.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ecb0610e904d878169d36d65c984dc86", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T11:20:56.388Z", + "quantity": 151.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "12da08533e4341c8be5089643512e0ae", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T11:25:57.147Z", + "quantity": 142.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2ca4cdc58b61a487741155f2e3c948f5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T11:30:56.824Z", + "quantity": 135.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f849e9cf81cbefdf8603b8dcc568ec83", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T11:35:56.681Z", + "quantity": 131.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5389c48fbc3cf60c4cb86252f5cbcd6b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T11:40:57.082Z", + "quantity": 131.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2ca5b16b0f9e6df674ea7ffc4a7e4cbe", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T11:45:56.89Z", + "quantity": 129.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "60e769f16723dc6c33d9563f76cb0d8e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T11:50:56.592Z", + "quantity": 126.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a65ffd880d3a4bd8ef8b975efd655cd0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T11:55:56.952Z", + "quantity": 123.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "74a034cfc78f6e45bc8148cab25f965e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T12:00:58.396Z", + "quantity": 130.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "54c98272109d08692ebc0152648a2ab1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T12:05:56.805Z", + "quantity": 129.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2b00836729b18c6ab0e28fa907eed307", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T12:10:56.38Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8c3d18fca4d0b9d00dc711509e819f49", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T12:15:56.95Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c23c396d832fae6c2b23fe57412bbb7d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T12:20:57.288Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "250e483a43f8f772f34e06bbe53f09f2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T12:25:56.357Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5aa5c41d9691fa62d9bd30cfb56b4a14", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T12:30:56.605Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9f4ef52e52e71f7035f1bc397041c737", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T12:35:57.083Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "25dfaa2bdfece444d37f1f3a12fa6090", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T12:40:57.057Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e1ddcdbdc599803e269bc9d691db3ab9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T12:45:56.799Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "89d894ecd554096a56127aa2839314c9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T12:50:57.286Z", + "quantity": 89.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "651e608c16907fe5f037ac67b6ad1432", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T12:55:56.512Z", + "quantity": 88.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2c6973f8f6411519cdd328ab627fe7e8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T13:00:56.969Z", + "quantity": 85.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "411f066ceb4fd21d1b3b5991300b461b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T13:05:56.935Z", + "quantity": 82.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f863a0fbfe2939b9485cae20a8dbd280", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T13:10:56.61Z", + "quantity": 80.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3c8a20c861fcd1bbc7c3af93e3ea5ff0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T13:15:57.132Z", + "quantity": 81.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "609a14092774dc2ac78098c649d410c8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T13:15:57.132Z", + "quantity": 81.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d96793a816c86ae885bb5ce5ebdb0f8d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T13:20:57.21Z", + "quantity": 78.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "69325f24e59d2d9947fa705aeb2073c4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T13:25:57.086Z", + "quantity": 76.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3782afa7e43750473fec87fff986af79", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T13:30:57.099Z", + "quantity": 73.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d1013164ca35980a9485cb63497dd3a5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T13:35:57.203Z", + "quantity": 67.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "09a277a0bb02dfd79eced44d077fd276", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T13:40:57.261Z", + "quantity": 68.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f3d4fae38e4b449dfa218382db51c0e9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T13:45:56.616Z", + "quantity": 67.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f441e730e7cd4f4c9f5b150e6108f56d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T13:50:56.963Z", + "quantity": 65.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4e20d9e1538ab2846c08afddebb63983", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T13:55:56.748Z", + "quantity": 64.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b6910bdc6bac131f33ccad3f677b6821", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T14:00:57.883Z", + "quantity": 62.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f59cf3bf2cc7f2cb6742e1433f41a501", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T14:05:57.41Z", + "quantity": 59.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e953b928c1d2ea57f1c913975d8c6016", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T14:10:57.115Z", + "quantity": 51.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8d9c01a69db30fa673f03eee2a94ac04", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T14:15:57.334Z", + "quantity": 59.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "caed52b50dbbb91dbbf20d201f77127b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T14:20:57.364Z", + "quantity": 66.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "06182bd7eaa97c9e71cfa20ca2faeb00", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T14:25:56.99Z", + "quantity": 64.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8e768897f3c5b6e453942dc1540dc3d1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T14:30:56.445Z", + "quantity": 67.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e361a25ac8e7dd501f2b3b5d914f2df1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T14:35:57.361Z", + "quantity": 70.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "749ee29e384c40260d0820b88af78645", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T14:40:57.368Z", + "quantity": 74.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "33fd5a063605084032ba4f80d0a69a10", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T14:45:56.764Z", + "quantity": 79.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "84fd42967d6e654dd64c8126c925a929", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T14:50:57.287Z", + "quantity": 77.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d17970321de378c58aa50965d7f4b33d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T14:55:56.903Z", + "quantity": 87.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5d44ad1c00d934bc88d765469ae3e60a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T15:00:56.971Z", + "quantity": 88.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0b05d30581b242447d6a2c75db970e61", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T15:05:56.924Z", + "quantity": 91.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ad316289d8ad8fc7b149df1abb8f7bf8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T15:10:57.41Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5a46798a6ccdc72b9d44c3dc3a5b9a45", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T15:15:56.955Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a054a0de3269a334056c567550ead8ec", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T15:20:56.994Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ec412d61dd004d24e083060793fa832f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T15:25:57.245Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2e85872e0b9c764a94eb0db4ca362917", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T15:25:57.245Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a9e6a2d61c3b5e2eeea598bd74900631", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T15:30:56.61Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8153d5fbaa7450fc8df087f37ff3c992", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T15:35:57.379Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d3b174a8511458891e7f770874f4f3b3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T15:40:56.981Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ae5704c389986fe91d261f6dec3a176a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T15:45:57.09Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e3e7f4a6b5620c9f288b988d2ba20930", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T15:50:57.135Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "40d8edaec55cfae00dfb7a51a5a56598", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T15:55:57.181Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3444f482b5b160bfcaa01b77d6de7cad", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T16:00:57.16Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7cb221b0bace3f346b5ed6b31dad6dda", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T16:05:58.194Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fa0a27b6ef25230d5050f9ac090587c7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T16:10:56.883Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c635060cad3f218a40b583deaf627e5f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T16:15:57.25Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6b3ff89e952edb174210d663e77a6f19", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T16:20:57.006Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b76098358ba7622095be89d5cf762a51", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T16:25:56.616Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fb2fd58435e3f8c08de20be0851d68ca", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T16:30:56.882Z", + "quantity": 126.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "99edc5bd12e51bd4fd704019407c5beb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T16:35:57.374Z", + "quantity": 132.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "004aad75444866bf2e220f2030e3d728", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T16:40:56.618Z", + "quantity": 144.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f593a1574ff961af399ebc98201ff409", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T16:45:57.083Z", + "quantity": 153.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c256b0ebea0425652cf4313c046c0b11", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T16:50:57.168Z", + "quantity": 150.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f2a8850bca7817a9631ecc2c496d024b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T16:55:57.039Z", + "quantity": 154.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "efa69f9cfef97933eea16eb3119172a7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T17:00:56.625Z", + "quantity": 168.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7975c2862e242bb19afad6fd76d00c3c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T17:05:57.029Z", + "quantity": 169.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6627f9aed66bfbc0e57bcb60a564dc3e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T17:10:57.308Z", + "quantity": 172.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c4ab96fb05ee60e3726354e2011670e7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T17:15:57.204Z", + "quantity": 174.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f92021a57ca72c271da3920df9083cd4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T17:20:56.742Z", + "quantity": 173.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7ac0629bd3670e47239ecd4158ead708", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T17:20:56.742Z", + "quantity": 173.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9df374fce7396c93b1b91d0e6646d49a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T17:25:57.402Z", + "quantity": 174.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cbb2a6727fdad08d8638bcc95ae6c02c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T17:30:57.238Z", + "quantity": 173.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5c1d1e0450bd9ef6ee37bce8a5b90974", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T17:35:57.508Z", + "quantity": 174.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "82bf673e4afdb139c6f8acf88177bbe1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T17:40:57.448Z", + "quantity": 173.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d5d9aba01ad896f8e9daf0a8da661b51", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T17:45:56.807Z", + "quantity": 172.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d8672239d1eaaf87def5073013fb37ee", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T17:50:56.995Z", + "quantity": 172.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "74f82ada5a66e1cc747afb65d0eae758", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T17:55:57.37Z", + "quantity": 170.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4fa8ccc70466a888283fd19a85ba7824", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T18:00:57.193Z", + "quantity": 166.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2050f433762fc75e6f1321121b29dafa", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T18:05:58.659Z", + "quantity": 166.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a8dbcc8cbf123f4c1b2c744d50a362be", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T18:10:56.901Z", + "quantity": 167.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "83d6fd231a6ba68d89b345cfda693461", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T18:15:56.884Z", + "quantity": 164.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "106b410430413ee1c8af04327ce2d380", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T18:20:57.336Z", + "quantity": 162.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "90fe70298a19c5232e79d62515a7bef0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T18:25:57.541Z", + "quantity": 161.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3a0969275b8463ca055854a16b855350", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T18:30:57.307Z", + "quantity": 159.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ee85aff845221c1facc5aaf4f0caafe9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T18:35:57.463Z", + "quantity": 157.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "43b8feb357fe3d0dbd38979bd67bd158", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T18:40:57.436Z", + "quantity": 157.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7a4e3ef44c6422274cb32ce8ab54bdb3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T18:45:57.448Z", + "quantity": 154.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bbea56f362d73a2632291c92c30ab432", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T18:50:56.875Z", + "quantity": 151.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "50280a5aece0ee3d546744de9a37afa8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T18:55:57.415Z", + "quantity": 153.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "361e13309dfaf673404e3a449f684ea2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T19:00:57.12Z", + "quantity": 161.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8171a08384cbe5fd462ae5af4be24e7b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T19:05:56.713Z", + "quantity": 148.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c02e39da52a511625d2894df22eac980", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T19:10:56.909Z", + "quantity": 142.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7d553ad2104cbb40ff71f4359d84517e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T19:15:57.396Z", + "quantity": 143.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d273ddd060abdb49f8959509ac4869a6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T19:20:57.519Z", + "quantity": 135.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5c523b8e4ceb5d13078bd0ff7c72da71", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T19:25:57.374Z", + "quantity": 134.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "32f0ccfe7259244519b31c3f41d3710c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T19:30:56.746Z", + "quantity": 135.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b7cc55517f1cf38ba098c3c1c8353cdc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T19:35:56.68Z", + "quantity": 133.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4187c575d543aba9352ac4fffbe1c7d8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T19:35:56.68Z", + "quantity": 133.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "68d970ebceff19032fe56294f6ace0e8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T19:40:56.892Z", + "quantity": 129.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e7768c9fb4503b90caaa1b069d68afbe", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T19:45:57.147Z", + "quantity": 128.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "624c31182364f6ed484e6430b54b1d7d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T19:50:57.291Z", + "quantity": 120.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "17841092bd52e7d651d9c3f3cc33e694", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T19:55:57.172Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b54f7b1e35f1e2a22ba164aab0bbacde", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T20:00:57.364Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9bffa0941a411d6c2808ae5bae131b90", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T20:05:57.286Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "267331261fbc3ddcb7ed739089637d64", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T20:10:58.485Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ce15e2f124db537055b2074759288bdf", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T20:15:57.617Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b68f85b3f2a205f51d457ef83c805a62", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T20:20:56.88Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "31d64bfb916d0b99e89e83af6298852c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T20:25:57.355Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "41a862977123739763af7a669de7968e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T20:30:56.645Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e092b00beafc913fb3baa283a41a3c52", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T20:35:57.196Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a7f6850ceff5dbecf800b496b009cb61", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T20:40:57.633Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4de2820b60db9323f081d69943f1e735", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T20:45:57.512Z", + "quantity": 91.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3056d2a2339940d25f97ea721ea52fe7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T20:50:57.358Z", + "quantity": 88.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "afa9a12858220fdb99dd70fca4c8f4f5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T20:55:57.475Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b00a6d478d195c584cf795fcf8e2110b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T21:00:56.846Z", + "quantity": 90.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1c3ed033e08c50dfaf0f49f0368e0956", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T21:05:56.706Z", + "quantity": 87.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3ff42a249a79757e7df3fd820708cd55", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T21:10:57.58Z", + "quantity": 89.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "115a5602e214b2e78d57ff31d0f79b80", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T21:15:57.381Z", + "quantity": 87.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "458a74390b7e2806422e5a18754613f8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T21:20:57.334Z", + "quantity": 84.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6c8f6537899c7c38e28501cdfe5d9cb3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T21:25:57.364Z", + "quantity": 82.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "af01929952c8ab43af08570e02a79cce", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T21:25:57.364Z", + "quantity": 82.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2acf26859830ce71100c7038f197c4d8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T21:30:57.619Z", + "quantity": 82.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b55a183956b3eeea737b3ae4506b5b2b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T21:35:57.236Z", + "quantity": 81.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "05a7255f8edfdac035fe33d25562a242", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T21:40:57.615Z", + "quantity": 82.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "053680b937921643d4c61bd8865d774f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T21:45:57.668Z", + "quantity": 88.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fff77d8340bec83f91ffed1ae65d47f1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T21:50:57.572Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e3d42f13adcffadd8ac6f07ef569d92f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T21:55:57.572Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fade470da0671880953393f250cbb807", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T22:00:57.523Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "75f457c925b8547a35269522278561ce", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T22:05:56.863Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0011567473e24fedbc72c14790286a94", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T22:10:57.391Z", + "quantity": 120.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f23d94f0815cefe6f2f1ded2eb65378d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T22:15:58.71Z", + "quantity": 126.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bc6f31ed4eafb3ce612a2e553e7456cb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T22:20:57.635Z", + "quantity": 133.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7355e9776cc8ec0a1df5edefc5754050", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T22:25:57.661Z", + "quantity": 138.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8b9ad2c3968e13d63961e6e4ae738278", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T22:30:57.665Z", + "quantity": 145.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8f5535a0697eee6d9edf17d5c9e797c1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T22:35:57.387Z", + "quantity": 152.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "622dbb1df30c9e63f46a2d8ae39b8b96", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T22:40:56.887Z", + "quantity": 158.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a2b81307eac5755f78d77780ca9eccc1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T22:45:57.228Z", + "quantity": 162.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "845cac17605bfdc39a3147fbffec38e0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T22:50:56.852Z", + "quantity": 166.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e4462f731812aacaec406ecb8417ca1c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T22:55:57.159Z", + "quantity": 171.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9fd861e0a426fa69e54539920599da36", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T23:00:57.36Z", + "quantity": 174.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6c7ad16b26c4147b8826d1d59e07ac0f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T23:05:57.371Z", + "quantity": 177.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5bc9d486c441e096135ce7c29f5ca93d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T23:10:57.646Z", + "quantity": 182.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4e6675c0118d947645bec4eac4303d76", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T23:15:57.719Z", + "quantity": 186.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "523e7682aa7a841b599b29e72a707bdb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T23:20:56.775Z", + "quantity": 190.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "17c81efdbfab8770cff87adc4be75ee9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T23:25:57.429Z", + "quantity": 196.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5d228d22fa3b1107576d8122f801751a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T23:30:57.693Z", + "quantity": 189.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c93b42b3ee621b9a909f1c0c5291f04c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T23:35:57.704Z", + "quantity": 189.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3972693fca61a70f4c7c61ceecfe7ae4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T23:35:57.704Z", + "quantity": 189.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "02e55b4b46874eeb0091f028e4391bfb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T23:40:57.564Z", + "quantity": 191.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "097f34cc7068d61ed362423baa7cf1c9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T23:45:57.331Z", + "quantity": 194.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d4b92a7f4c3a427396bd11b001779b0a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T23:50:56.955Z", + "quantity": 195.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a632676d4ae601885b4ef48d4acae3c6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-29T23:55:57.129Z", + "quantity": 195.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9c76188cda1b6267b8322e23877b38ab", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T00:00:57.633Z", + "quantity": 190.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "eb75c63d79f6ac9b2199284314c3709f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T00:05:57.381Z", + "quantity": 183.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1c9daf8ea9f0f971c96f6e52197bc24a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T00:10:56.837Z", + "quantity": 179.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9258d85325c8cb9aa854a374799eb22d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T00:15:58.928Z", + "quantity": 183.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "59ed4a16567b52eabb93356bd3f904d2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T00:20:57.679Z", + "quantity": 187.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "45c4d916fc84e0c5156ffbe7afae1336", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T00:25:56.874Z", + "quantity": 185.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "03e4eff585009f406714575a64bb236b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T00:30:56.929Z", + "quantity": 183.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9ce67ad2d0da972b38933a9d913c74bf", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T00:35:57.59Z", + "quantity": 192.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2ef9fd4928e88b38d08557cf9b778354", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T00:40:57.763Z", + "quantity": 192.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "800f8cbef88136e3905ba656a6c62bfc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T00:45:57.111Z", + "quantity": 193.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "05f1001dc9a6bcd24400f566d31deedd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T00:50:57.794Z", + "quantity": 192.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "69782cde8795cbfe3a53243d94407385", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T00:55:56.876Z", + "quantity": 192.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "889393f57a632700f97e5ea79aa026a9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T01:00:57.221Z", + "quantity": 188.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1d2761710c9c6b9e2770b0b1147b9c48", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T01:05:57.532Z", + "quantity": 190.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ca3a892f8c99d7d7e1c0ef304044c48e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T01:10:56.957Z", + "quantity": 192.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "71cddaad939cda2e7acace3c5373b51f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T01:15:57.051Z", + "quantity": 195.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ae2633c3e25b283507778a998e7201f0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T01:20:57.031Z", + "quantity": 194.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fb341c469a7c6d1abdeda3667cb2a7fc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T01:25:57.775Z", + "quantity": 194.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3532e9a254a4078d53808118f8d003fa", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T01:30:57.77Z", + "quantity": 192.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8f8ce77d8a8bfa40f8dd57fb6b7f216c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T01:35:57.65Z", + "quantity": 199.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9d21582876eebff539427211717ba273", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T01:40:57.799Z", + "quantity": 199.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7245425168940dab9f5f84c0d640c29d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T01:40:57.799Z", + "quantity": 199.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6abb1c8007eab03af0d43ec25c6a554b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T01:45:57.744Z", + "quantity": 188.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f2e92165ea00819e9e75e15434562b2a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T01:50:56.984Z", + "quantity": 181.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7276a184ccd25180679c1869af9353ba", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T01:55:57.323Z", + "quantity": 176.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c92b7087235ca0e0a1fb7203d80cccd7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T02:00:57.549Z", + "quantity": 172.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "612900f1a5c689347df4b6a59db26f6b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T02:05:57.811Z", + "quantity": 159.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5db627219250340be53dbe44c41433aa", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T02:10:57.457Z", + "quantity": 149.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7554e5690062f35f77fdf7e89ea989a3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T02:15:56.958Z", + "quantity": 143.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8ca5f0c96c82a0dd42bd717e2bbcec99", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T02:20:58.719Z", + "quantity": 139.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3cf2617a5411615f50b064a80cac5db8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T02:25:57.25Z", + "quantity": 134.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "dce2e394c6f28015eeca586059d2b17e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T02:30:56.949Z", + "quantity": 141.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "39b43da136043ad8c71068c25d7bd6b2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T02:35:57.709Z", + "quantity": 143.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "14076459892898b86f6bef30f5b5f581", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T02:40:57.035Z", + "quantity": 140.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f4b84a03ac8dc2bfa614abb43b6ffb62", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T02:45:57.599Z", + "quantity": 145.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "378b26aa8036660bf9bfc30b20feb622", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T02:50:56.994Z", + "quantity": 138.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cb8a261ccce76555423195d16e83c5e4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T02:55:57.582Z", + "quantity": 132.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4befe09546e35ec0356ad41e5546db6a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T03:00:57.612Z", + "quantity": 132.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f2f59f72ecca1f27c65ffc6589337cfe", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T03:05:57.493Z", + "quantity": 128.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f204d1badac5ad25f15d3799cce09199", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T03:10:57.335Z", + "quantity": 123.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "dd15041ba0115b5a67021b92828610e7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T03:15:57.187Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7b1da05aeb19269a59052e274995eb5d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T03:20:57.453Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bcd2e136b0fcbad2fc514a45b250227e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T03:25:57.731Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1adb62bba7a666ca880ebde9924ac519", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T03:30:57.478Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2040c55459884d7f4a5ca4f273594ff1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T03:35:57.433Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8fe02144031882a0e19372fb5ffaafa6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T03:40:57.2Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a8e25dd9afd2ac9e26840ee52c785438", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T03:45:57.064Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b706ab4d45dd6459e9a1b99ff6145d6a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T03:50:57.235Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3fa8eb548f83e7cfd3d3c85d02e0a762", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T03:55:57.414Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "85d0de54715c15c9c1bb0508bae8b5b2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T03:55:57.414Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1b55d529e755ea9959b549931ff273fd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T04:00:57.269Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e54c3f1418b86739ec7a5c42f4b3719c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T04:05:57.755Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "692e815effa7a45305ebbf6316cdf87d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T04:10:57.508Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7e3c52206b7bc5a76cf2219036ba39b0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T04:15:57.563Z", + "quantity": 126.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c64867f1e8bddd701cabb32b342b6a79", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T04:20:57.686Z", + "quantity": 134.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a9cad77b56bf2ff8ac3069d9e4e0711c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T04:25:59.452Z", + "quantity": 138.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a0873c0eff69b7f7e2de6aa59dd62903", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T04:30:57.487Z", + "quantity": 142.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5bafec2306a2fd215d943df70de51a4d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T04:35:57.673Z", + "quantity": 141.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "836ba56e2019489b929a4834d9fa87c3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T04:40:57.552Z", + "quantity": 138.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "edaa7a847d87d99f362d21d693059bc2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T04:45:57.542Z", + "quantity": 136.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f28e0c9a12af5fbb411e89db3415db07", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T04:50:57.525Z", + "quantity": 139.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e41c0e6258bf5ab48a820a1e23fbf053", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T04:55:57.505Z", + "quantity": 139.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0de1d665d4d906e8921e2b9d91d509ad", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T05:00:57.537Z", + "quantity": 138.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "676a177e67497104c732f517e7c871b5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T05:05:57.694Z", + "quantity": 135.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6c783790c9e3eeed675c60e25994268c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T05:10:57.588Z", + "quantity": 132.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "df7a21a43425d46d6518f47cdcf9963d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T05:15:57.067Z", + "quantity": 131.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a482fbae0891e5d6a9731a99971c40e4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T05:20:57.092Z", + "quantity": 128.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "848a4e006c0084e578a3fe0b5b74f65e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T05:25:57.983Z", + "quantity": 125.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9ad0039162026f58f0ee2064310e9e26", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T05:30:57.226Z", + "quantity": 123.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7fab09439f1b1adea8b429e951aeeadb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T05:35:57.477Z", + "quantity": 121.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5143960d9b01be7dba5ab21c0d7511ec", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T05:40:57.614Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2e6459467732eddcadc7152a0f6d7d60", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T05:45:57.605Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d1bae58a59ae68b8d8393c6ef41144f4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T05:45:57.605Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "98a795c5bba83df23895d5fc56bfddf2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T05:50:57.851Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f5b15945f5e100a704400f00160e6c51", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T05:55:57.172Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a96aaeded92fbcf9467116f7405fa356", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T06:00:57.232Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0ac5b3854c3ad9fa86a09697861086e0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T06:05:57.745Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0861e159bbb255fb3d05e6ba370b01c3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T06:35:57.755Z", + "quantity": 39.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c822935655954f5e47c54585f37e3c13", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T06:40:57.195Z", + "quantity": 39.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "80525b98bda82b6d55df5534eb90e233", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T07:05:57.627Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "29e106be45740098562bdeab7755eef1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T07:10:57.477Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7ae0179eaef44f18668c0ea6c074e48f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T07:15:57.873Z", + "quantity": 84.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f41d8cf3855fdc42863de3ea88f0d667", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T07:20:57.688Z", + "quantity": 84.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "63d1d3103bd92922f6796fb0586ffa96", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T07:25:57.606Z", + "quantity": 83.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f6af2990c7cdd8409857f46091276e8d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T07:30:57.506Z", + "quantity": 82.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5f4635f0635a921d9229bfc50ba48a14", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T07:35:57.851Z", + "quantity": 86.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ebcf8a06aa787404cc711d8a93d43f27", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T07:40:57.757Z", + "quantity": 86.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2bdc7d7531effe22bb62a4d8f6244598", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T07:45:57.134Z", + "quantity": 85.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "806f45f4ac73644ddf61b40cdf62bcfa", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T07:45:57.134Z", + "quantity": 85.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5cbdeb49ef2fddac75b1beb467906f46", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T07:50:57.438Z", + "quantity": 84.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b733aa376d4da7cd207add10aefeced3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T07:55:58.075Z", + "quantity": 82.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0731f1b9d79cad32b034d22ff946ee1d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T08:00:57.424Z", + "quantity": 80.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5adc02247f5f5b4b012e58f44537ff4f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T08:05:57.876Z", + "quantity": 70.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "512937b0ff5c4691d22945556b0f8288", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T08:10:57.31Z", + "quantity": 67.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7c75af638a230ecc59990e5d64760912", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T08:15:57.755Z", + "quantity": 69.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6fab92065434decef54aa108b7ec6366", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T08:20:57.586Z", + "quantity": 70.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f815ea682c729c2431cfb6f104db1874", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T08:25:58.006Z", + "quantity": 69.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1ad059fffcc6f46d7766a6e0a6cf8a38", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T08:30:58.345Z", + "quantity": 67.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e2d956b939d5c061dc7cc9a67f9f80d2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T08:35:57.783Z", + "quantity": 66.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0d564874c36e509a115288e204c13f3e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T08:40:58.085Z", + "quantity": 65.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b9e0f2152e87d07f28d0fb1c76a748a2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T08:45:57.897Z", + "quantity": 66.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6d1d9497d76fd7bb8523c5820f1c08bb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T08:50:57.3Z", + "quantity": 75.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7c4055be2d1ef286118c61c57811b1b3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T08:55:57.382Z", + "quantity": 78.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e02afdada745af7fdc48ee4c79e9211f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T09:00:57.572Z", + "quantity": 73.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9010beb05cd2a16b797d517734a7e365", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T09:05:58.074Z", + "quantity": 73.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1f7213a86349f9aa88fb36c7c80b60c7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T09:10:57.575Z", + "quantity": 72.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a7745608523e0348a9508a25dbfca445", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T09:15:57.668Z", + "quantity": 66.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c1cf6f076977fd90353d357c0b94b694", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T09:20:57.624Z", + "quantity": 63.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "40f408212fff03d48ceebc6249443d73", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T09:25:57.444Z", + "quantity": 75.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d84eaab6648c0fb37a787aff23a35366", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T09:30:57.512Z", + "quantity": 75.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "126c549ead73a607ac1d9ea8091c8f23", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T09:35:57.975Z", + "quantity": 74.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "12704e6e23a85c50b29ca47ec263704d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T09:40:57.283Z", + "quantity": 74.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f3b95b1d4431d220fdbef7544f0d8d67", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T09:45:57.591Z", + "quantity": 75.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8c8714017f279f777a593800fd9f05b2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T09:50:57.505Z", + "quantity": 76.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5a6ef14c6b45978fd309cbd7c60868d7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T09:55:57.712Z", + "quantity": 76.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "65d0cac96c78f200b8dde25cec1900f5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T09:55:57.712Z", + "quantity": 76.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8c3256c50be03843a126690b8eedfa27", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T10:00:57.144Z", + "quantity": 62.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d8ae9ab318b4f6de84e3548f415f6247", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T10:05:57.739Z", + "quantity": 65.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ab1d6f874121555a5ff9140ca6ab0f88", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T10:10:58.036Z", + "quantity": 71.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a152eb0c4c30a902b92bc317ef0e7abc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T10:15:57.28Z", + "quantity": 72.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4f9eb34d582127fddeb498820b954958", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T10:20:57.804Z", + "quantity": 74.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a61f07d91a2d554df7a39cdf03d61c69", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T10:25:57.818Z", + "quantity": 74.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ec8366d6869ed0a194d2e1115e10231e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T10:50:57.904Z", + "quantity": 39.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7a1d729ce5609d5226ed906c223be4da", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T10:55:57.257Z", + "quantity": 39.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f75001eab144ba7012dd61bc965f16db", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T11:20:57.913Z", + "quantity": 124.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "891040bb3bf2e8ac36fb8a9367b57972", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T11:25:57.795Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a931e2a230fcc2c4779109f8fcb6cbfa", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T11:30:57.522Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b210dcdcec0c64353f9d04d093d6e355", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T11:36:00.811Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0c369c183c9fc7979fb2c29f291fb2f5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T11:40:58.134Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "56dff269782937e2925310fb5dc7745f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T11:40:58.134Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0d77a28c08236ee4073d436d784c7d9f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T11:45:58.134Z", + "quantity": 124.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "67d51978673ad563ea749a585e1a6e4e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T11:50:58.134Z", + "quantity": 136.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "458099fadaba81dd8a5a8877394ef497", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T11:55:58.134Z", + "quantity": 151.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "437c2a7aa597747c7f73f4aed401b045", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T12:00:57.885Z", + "quantity": 157.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b738fd0fb879926e1b2404d571080a20", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T12:05:58.002Z", + "quantity": 159.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "60c7eb5cbe6be55e6e0177acad79e728", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T12:10:58.056Z", + "quantity": 162.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "039734620a6f785d7e76f7a9cc3dc3d4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T12:15:57.893Z", + "quantity": 163.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0bdc95291504b2c5a05773b065848dc5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T12:20:57.913Z", + "quantity": 154.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f254d7bb7efe15bac1aa4773e82fab1e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T12:25:58.153Z", + "quantity": 146.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f4f187b4db6cddea54c95db807213833", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T12:30:58.07Z", + "quantity": 143.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0d67dfb05ba812a961ef84d63e38ce63", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T12:36:00.388Z", + "quantity": 140.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f0e479f74bf8b03c1df1282d45948121", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T12:40:57.403Z", + "quantity": 137.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d441f2524997e5a5e51fefb12a107278", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T12:45:57.99Z", + "quantity": 134.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c6b09edb8dd28baddbf57ea7edd5258d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T12:50:57.816Z", + "quantity": 131.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8c0c7e8811e06e0b286432072cd115e3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T12:55:57.497Z", + "quantity": 128.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fddec52fc02df30418fc85108fa1875c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T13:00:58.096Z", + "quantity": 125.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bf83b9d7be7bf10c708ccdd776586b5a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T13:05:58.108Z", + "quantity": 124.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "604f543a99b5806c5b3930b51dac41fb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T13:10:57.547Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bd494ca434d6efcd91c4f7d7821d1ed1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T13:15:57.944Z", + "quantity": 120.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a6a56359e21fda1215715043a8d90b98", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T13:20:58.084Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6daa0543c14b80d8602167773d67817e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T13:25:58.189Z", + "quantity": 118.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8e391f333c3175c6c343d2385f5529b6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T13:30:57.457Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e83f33f3abc5337c85df5dfab950f027", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T13:35:57.373Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cae46e196e200e4c0681a9b8c71bc39d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T13:40:57.913Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0d100d020f56896037829ec16106facd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T13:45:57.448Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7f0dcc94d6224efe45af3621db2adff6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T13:50:58.121Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f8d216285fae6c9deec756cd75cde708", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T13:50:58.121Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "65c0b79c1ce0fac66b63b81269535ed9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T13:55:57.874Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b34830648f7770c2a7564fa1bc250d60", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T14:00:58.293Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "48c4f714e290e6f34935ff96bac284f1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T14:05:57.77Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f3eafe2b571bddab08c76901858e822d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T14:10:57.597Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "abe3d1abbe777adb0fe202c566d0d170", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T14:15:58.028Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a7968ac8b91539b681c8e7899e2fddd6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T14:20:57.899Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "16033f3f1be49349b7dc82836cad67c9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T14:25:57.566Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "130941dc12478360ea1451797d35edb0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T14:30:57.663Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6c7a44ae205187f66908db44637a984c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T14:35:58.088Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "35c444cf319dad87ae569c597b973e31", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T14:40:59.574Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f8b3fbf89da429e21daccd6240b0d03f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T14:45:57.956Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "904ee1c5451075e9901102e17d5e86a0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T14:50:58.572Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6192761e9489b9efc288bf04851e887b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T14:55:58.333Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3131eca5885896b3c0354132ffdd5586", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T15:00:57.879Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8542aed109100eeb00e0dc931fb2e171", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T15:05:57.34Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0136df27d38e1d28590168ff657c869e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T15:10:58.345Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3de3a263514ed898c1b1a9cfdf0f9720", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T15:15:58.019Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f39fe68c892b84a2e9df070e8d262766", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T15:20:58.086Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a8759de58493eb57f0d93ed69c8ee637", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T15:25:58.66Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "432dc86c0217be7bd9921769e9cb459d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T15:30:58.411Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "02d836f7da0f006e77f0fbc2834db351", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T15:35:57.815Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cfb8a3ac9ec0a9a9e6f07b94dfe770aa", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T15:40:58.207Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "17415205c894637e3c687423ec46f0dc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T15:45:57.774Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "da16ee1f7b786b73eab1652e2ca8eda3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T15:50:58.287Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "69c5778c46f62c41d6f3341b024bedf8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T15:55:58.287Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "89ba1e6ace4edb22e680ba5a8d692b49", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T16:00:57.94Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "82b2d6f580644f8489845481c848266e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T16:00:57.94Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a0e5fec02aceda5f1c89a55ef0aa63e7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T16:05:58.096Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1104491f56c6e6d23a18801f376aeb49", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T16:10:57.494Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6cbca259ec8506a7aac40c11f76c84f6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T16:15:57.49Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e3607c04a28af84b8e6bdbaac94972a6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T16:20:58.081Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0744660e10c41b2fed3b641008f448fe", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T16:25:58.009Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f861eac2c126322fc8a8bddeafd94f99", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T16:30:58.139Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a470323d3849eb78819ae62f79d5b31c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T16:35:57.354Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e46b28e1e3791f3bc1d8968292f596f8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T16:40:57.919Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8b45f367b72f75715c02e4ab08e21390", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T16:46:00.698Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a5cc6c1f1d1f66a9e3a2dd9424933a68", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T16:50:58.226Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "948b51986e53b8c0e540d81ebc9308fe", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T16:55:57.486Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "66fe52a3b2b0f0c715ff3726c5a8a26c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T17:00:58.047Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a47a9e6334f7d16f4871b2dc7455d55b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T17:05:57.389Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "99b9f9a52ee255f4a4e333fe27efd3b1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T17:10:58.368Z", + "quantity": 89.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "94dacef6df5cfdeb7ba19ffab620ab5c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T17:15:57.973Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "88c79503573719a67925533f8407edf9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T17:20:58.144Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9a6212baf83c3e67b92743abca2dc1fd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T17:25:58.022Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "807af3e7cbc93682cc217edb86d9041a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T17:30:57.459Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e52e7ab3866f84290b4fe25e787daaed", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T17:35:58.226Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e70d63d4c52bd59a135cd8617cc2ae1f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T17:40:58.015Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d4d5133194f3db9d8027fad6aca78b19", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T17:45:58.04Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a7046d4c59f0ee65cef61d7cea9ca263", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T17:50:57.814Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a575f6afb4216d37f583765f8311ca4c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T17:55:57.753Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "46780231c57056f19f97cbd9cc41286e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T18:00:58.516Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "25838641ff1e3498287d1bdb66be80a0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T18:05:57.84Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3276552a056a8b80b2a8e24ea291df57", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T18:10:58.34Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "33c0ff3a46753b343f853bd43c1edfd2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T18:15:57.77Z", + "quantity": 91.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d75274b635ce98bfea3b1f4dd930f96d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T18:15:57.77Z", + "quantity": 91.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "aef6c20a04b971369521f0ee1de4bc86", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T18:20:58.407Z", + "quantity": 88.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "19e70ee2bc33a417a9cc227dded88d2d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T18:25:58.262Z", + "quantity": 89.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1b5f8aaeea0856d03d65f55d994de06c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T18:30:57.561Z", + "quantity": 89.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "58a311752fa4d0a394b6c33c7fd3845a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T18:35:57.61Z", + "quantity": 86.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "03beeb895e6a5596affc42e26f999274", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T18:40:57.585Z", + "quantity": 86.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "64a9b453d2410cd4a6f5f8cd7c43373d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T18:45:57.616Z", + "quantity": 88.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "426f36b67c5c535b2e76a3e5b4064c8a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T18:50:58.848Z", + "quantity": 90.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "da3e2959f4a853345a04ee4b1536bdf0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T18:55:58.277Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2e2632949a57869f2e57e975813de2ca", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T19:00:58.264Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "49d88a430dde304ed2ac5a8599a4e3b3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T19:05:58.398Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "77e0ec005d06e02eab404938fe749167", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T19:10:58.409Z", + "quantity": 90.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "135804801940142f05839ae966dc1dfb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T19:15:58.434Z", + "quantity": 88.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7529eb255f8be63ad87e56853e11f3d0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T19:20:57.494Z", + "quantity": 90.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "210bd9b964abaf8d56b3133fda2ef933", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T19:25:57.926Z", + "quantity": 87.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f6ee58507b8134665196e647b3b153b6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T19:30:57.812Z", + "quantity": 90.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "081af32f389371599cba037121b0f557", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T19:35:57.64Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5b08645b181cfdb91c3ad2aed3364b9c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T19:40:58.213Z", + "quantity": 88.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "519778a3516b77200112de706a58f6f4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T19:45:57.484Z", + "quantity": 79.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d3644122a46d84e63c131df3c168a65b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T19:50:57.943Z", + "quantity": 85.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1df403ee5a85d3fa2f14f3a9aa678315", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T19:55:58.173Z", + "quantity": 90.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6e81a40e886060078868636b8eca2529", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T20:00:58.021Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8f5cea2f2d53bb45c8dd88be712bf232", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T20:05:57.898Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a07d3b2ce5ce578e1798a7dc65a2befa", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T20:05:57.898Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "105c8ca16ac8e9cb18e8abd6c39a99d4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T20:10:57.855Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ab34e5aa6e14c6aaf4b26b817e68b016", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T20:15:58.054Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a0b52d7bf9c84eeabf66ce5feb97d9a8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T20:20:57.593Z", + "quantity": 132.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9b727e267fabdad04f5437fdec21734d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T20:25:57.878Z", + "quantity": 127.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "16ee3dc9848ad2fb66f3f85f6f6c60fc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T20:30:58.357Z", + "quantity": 118.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5bb93306191fa7a29c266016a1db8750", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T20:35:58.252Z", + "quantity": 118.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3056bbc9568f6adbf9b4f8474d97063b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T20:40:58.028Z", + "quantity": 123.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "26a6108c0c03792554468db5473ff971", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T20:45:57.858Z", + "quantity": 131.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "be45b8f83837d6058cf85f139bf6455a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T20:50:58.345Z", + "quantity": 136.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f912c2eab70dcd85eea79119b6a4b3d0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T20:55:59.492Z", + "quantity": 140.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4e6b40540564bc933c2ba62da7ea895b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T21:00:58.239Z", + "quantity": 146.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c176064451a3290bfc712ff4597965a1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T21:05:57.804Z", + "quantity": 151.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "99cfd924d4195d4b80f10c339e8f7d98", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T21:10:57.708Z", + "quantity": 151.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ee42600b463da9d779e5d502baf5b698", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T21:15:58.315Z", + "quantity": 151.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "27f5485d1a1aa270f3f582a89d427396", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T21:20:58.348Z", + "quantity": 151.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b18dc8383fadef8163af20612713f501", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T21:25:58.501Z", + "quantity": 155.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "865d351ed64a5e2a688e307b46b94be4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T21:30:57.611Z", + "quantity": 157.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "45bb8c311465940c8904b6fad73d45c0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T21:35:58.194Z", + "quantity": 159.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "683955dbdaebcd8d28c933d4d6291267", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T21:40:58.156Z", + "quantity": 163.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "56e3de220ebc7c019b3fdf8bbaa2dee9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T21:45:58.106Z", + "quantity": 156.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "330e5961c7c58d956c70c97f6fa6da2c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T21:50:58.518Z", + "quantity": 159.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3676ffb281b8cb4e0750d7259cc0c27e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T21:55:58.277Z", + "quantity": 175.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "40ab17ecc8a5fb9a7e3126fa838df9b0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T22:00:57.649Z", + "quantity": 180.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d660620293dcd1dbe344271d5aa3d152", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T22:05:58.176Z", + "quantity": 170.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2223356a2d1067c75ff7a76c8c73d28c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T22:05:58.176Z", + "quantity": 170.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fa893aada88f782eddb64189fea3a3d3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T22:10:57.811Z", + "quantity": 166.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8f9e5c805f1f02d3047d8c5cd810cfdc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T22:15:58.568Z", + "quantity": 164.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5479ff9439b8e6bdbfebb0f29a44c97b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T22:20:58.301Z", + "quantity": 162.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "81aefce762dd5e2cc0d8913dc4083200", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T22:25:58.428Z", + "quantity": 161.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cc6b374e939ef0adfb5c5090a47d7eb8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T22:30:58.624Z", + "quantity": 157.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "622b6cd496717d398acaba16d1efb60f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T22:35:58.545Z", + "quantity": 157.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ff344e97272a14020c4a1797fda5100c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T22:40:58.514Z", + "quantity": 154.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b25097ea4813da4cedd414e75b2ec0e3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T22:45:58.563Z", + "quantity": 151.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2de5023312d020fb9124695fc322233b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T22:50:58.268Z", + "quantity": 148.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2357ae861d748ec58cb6509e81e0d2cd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T22:55:58.611Z", + "quantity": 145.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4231cde60aa19180565a9c05517a7469", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T23:00:59.135Z", + "quantity": 143.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7a10e701fc239c93bc8657774415fae8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T23:05:57.903Z", + "quantity": 142.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7335d4b0adae14389685bed4a89bce0a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T23:10:57.769Z", + "quantity": 140.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "86d51898098835c5be464dc9ca37b3f5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T23:15:58.492Z", + "quantity": 139.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1a3e934178a907c550c7932a622420e9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T23:20:58.361Z", + "quantity": 137.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4547100c4c129cea81f7d247c9d21211", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T23:25:57.682Z", + "quantity": 136.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b68ee1dff19f639c73c493a8a4dc48d7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T23:30:58.297Z", + "quantity": 134.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e1b465aa657eb129998fc5fd9b77c50d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T23:35:58.063Z", + "quantity": 133.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1203be0cab678dd6eaeace4db0e0ca2c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T23:40:58.399Z", + "quantity": 131.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "245ab7cfac700ac852d163674fab3054", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T23:45:57.946Z", + "quantity": 129.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "32530b02c26d4e7b40c78402fb3123aa", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T23:50:58.687Z", + "quantity": 128.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9a31dbee9958d884a4e33ba7da2b8795", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-30T23:55:58.001Z", + "quantity": 126.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9919e4b7b4f73dbed277e86e76ee8fd9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T00:00:58.291Z", + "quantity": 124.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f5b3b7277d9890e829842fd864ab04a7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T00:05:58.042Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ad92d48a8ae31f8f9cd67e6bb6380303", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T00:10:58.364Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6cf7fabe855d82992600ba225ad93003", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T00:10:58.364Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1fdbb4daca718e50e74d8f10d6b41c4e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T00:15:58.345Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "70de7f410a7c3a6cdf18909af237d29a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T00:20:58.682Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "868dd25e1012048df58486a99fc0e1b0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T00:25:57.91Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1b7b8916607014347eeabcf270ed9e55", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T00:30:58.478Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3af1891fe541e2ee12e4ade8cc133636", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T00:35:58.541Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "057bf10278d998824b1f7cca9e9874a5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T00:40:58.439Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4b560e76920fefedd4c100703bf7324b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T00:45:58.671Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a759d1a0dc22d9a23ea2f07a6a271744", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T00:50:58.045Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "375e74605df88fe8845648ae1498d423", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T00:55:58.229Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "abfc98d85502b81c2d20d5eb574665f1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T01:00:59.034Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e16d294e0ad9c095e543b9b8c33a9f2c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T01:05:58.144Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b9b0b91fc96b0318fb756cf54b2dcc8f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T01:10:57.805Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "aa17ee382a7a21c3d30518c54071632d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T01:15:58.805Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2eb942c5274b26489cb83fec748a6ed9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T01:20:58.706Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "01809f1958f5136330e10cf5d21b9125", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T01:25:57.837Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "043caa09f35b061c7a9c15f5cc5bf768", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T01:30:58.251Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a3a43aec95d21f5f53c17eaebef138e0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T01:35:58.758Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a6cf8dcbba2e82cd8d0c780e6c56e9d3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T01:40:58.15Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b18c7ad4bcd1652967b888bf73ce53a8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T01:45:58.628Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c66095b9cdf46750097c9e02ede960be", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T01:50:58.605Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bbbe5ce2fee5a04647c81f176247787d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T01:55:58.013Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1f56b526fd5d8a1e30ed1e0ceb379d40", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T02:00:57.864Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7f95bb4863b824fd171ec45be94845d1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T02:05:58.008Z", + "quantity": 87.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9aa9d86a1ffa809256916253dcf24f9a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T02:10:58.334Z", + "quantity": 88.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0f6d9e6168aa27a778317be60f9b10d1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T02:15:58.728Z", + "quantity": 88.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "adef53e88eed7d34c6b5ef87ef07a0f4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T02:20:58.317Z", + "quantity": 87.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3aa8661f558c6ec742012438628bc78c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T02:25:58.555Z", + "quantity": 89.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "be073c2d06adf54bd10ae48253281021", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T02:25:58.555Z", + "quantity": 89.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fb71c9b1bd345af0d107876c1c419446", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T02:30:58.218Z", + "quantity": 89.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "adafc4373366766370f832214a506044", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T02:35:58.724Z", + "quantity": 87.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "19a7cb31551ff2579899dd5a653c7293", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T02:40:58.413Z", + "quantity": 87.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "68f5f6c5eecb80bf1298608fd271a3e3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T02:45:58.822Z", + "quantity": 87.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "55e7948418a5c28ca271ae7ccb22617d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T02:50:58.012Z", + "quantity": 87.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4fa4a658b343b45dc63a82d5f02dfa0a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T02:55:58.72Z", + "quantity": 86.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "64f137619081b77e3ea0204181f4f8d7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T03:00:58.059Z", + "quantity": 91.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5219e9fad15b441001b51920ac602dd5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T03:05:59.297Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b528dbff10de6611c0437e6766ac7fec", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T03:10:58.486Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "636ddf6ac26efa3639579030d52ec550", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T03:15:58.489Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "317a3c4c01a6ac73d1c1e2b995f161ee", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T03:20:58.521Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1fb35ca1b6f48f75f9cb72455fdd23f8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T03:25:58.282Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "71b26d7c2e442508df1a4a898a2db182", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T03:30:58.048Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "25cb8c7a90fb19c7cfcd37f46d4eef44", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T03:35:58.714Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "019efd6d0156f63cb980ee96620dca49", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T03:40:57.998Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2bb9168f67b02ee4f983181aba4cdd23", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T03:45:58.814Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cafbd5e6a93af73c8567b13566a971ce", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T03:50:58.463Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a0f3b192a8656fbfc6ca86fc5535350e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T03:55:58.275Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1b4afe7cd844a831ff56452f9592f3a3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T04:00:58.442Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7dfdc5ce40e3886b69df43b2a08d356d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T04:05:58.199Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a0061bab27dc5b46eb5cebb8b7e8246a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T04:10:58.82Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d98ed4d645ec190f90b8ebf3d37294f1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T04:15:57.929Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "515e6c8ad8d58c8d5ecbb1cf4945f22e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T04:20:58.29Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1e7d0549a1be24d8721825567f43a576", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T04:25:58.529Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d6591e803cba01feab7f1d84550fa058", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T04:25:58.529Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "549330620d2d965e5773b4e3716fbb71", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T04:30:58.57Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "501a9ccddc963f6a834deaac4dcd052b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T04:35:58.398Z", + "quantity": 91.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ee6da3f324bb0da66f5f80e5d81c9938", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T04:40:58.314Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "75133d86506597dc5af7c03a60c8d6de", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T04:45:58.536Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7d1fb207528b946307418d9df220a1f3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T04:50:57.979Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "36b98ed3b73c01bad5056857ab091075", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T04:55:58.904Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9139e6bed1bceaa6832b173b7daaf67a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T05:00:58.891Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6c9ed7c1587ed22460dcb92fe28e01fd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T05:05:58.807Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "066bc5819d45efaa19a8d690e188ffa4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T05:11:00.156Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "846ae9a814860a612680c4db9bd6804a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T05:15:58.052Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e10b5cba24db880a595b1a656c941db4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T05:20:58.297Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2dad929f73a30d67e6c4824f30ffda5d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T05:25:58.761Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7425d9dc506d8aaae9bc1ba2039e07e9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T05:30:58.987Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "213c2019ece4e158b652ba399b2725a5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T05:35:58.006Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cd1044090c68a9d7e5f831a4fefff288", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T05:40:58.276Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b228d5b58f789dfacb749b1c9abe1d70", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T05:45:58.334Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a7ad23419b414bd09494897789d1eb40", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T05:50:58.08Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0702edf93ea9f7b3cfe93b8757201cf3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T05:55:58.37Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "795410867416093d251697c86ba47ff5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T06:00:58.644Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1df5ac36fe5dad1fa185dc1e30907b65", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T06:05:58.724Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5c1cd5e6f348fb84e26ac0d44a3d48b5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T06:10:58.255Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ca1cd523d738add115712e66b1c54845", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T06:15:58.165Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e8893c3d285473d99673e3fd902fb1f2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T06:15:58.165Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "59facec012cfd4b57af71315d648559b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T06:20:58.874Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "62e627fd0294f8d83baa57359aabd6e9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T06:25:58.423Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5f93b7737206eb7f6f3512995f773e84", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T06:30:58.402Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "dc6d1b8b055dd6a70fb0e1f90eb54037", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T06:35:59.014Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cd884f92e54adbd7f10d5725c5f249eb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T06:40:58.33Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1782a8aae89a88dcaaafad38c11b68bb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T06:45:59.138Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4f52c40894a8da2d6b2573f3e2750188", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T06:50:58.99Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e8667dcfc76cb05474790e9321739b67", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T06:55:58.589Z", + "quantity": 90.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "285b7f78966191bfb150b822c758b7e7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T07:00:59.082Z", + "quantity": 89.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "909c0d4b7357730290c351bfc3dce49d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T07:05:58.938Z", + "quantity": 87.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4a1f2d22ef1e292acb8a164f3e17ac6a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T07:11:00.216Z", + "quantity": 83.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "105047ef7f4dea16eb9550a777f58e14", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T07:15:58.787Z", + "quantity": 85.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f5b5f6c01e31c4d0ca4c798bbafc35ad", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T07:20:58.684Z", + "quantity": 85.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "abd4efcec702b59a3d706f57721d08a2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T07:25:58.366Z", + "quantity": 86.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8bc06d297fa1782b91834c2ebb590555", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T07:30:58.876Z", + "quantity": 91.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "819c088f42d37ceb46e97ee8950ad358", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T07:35:58.778Z", + "quantity": 90.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5ce2432c3a528eb7a3b61d1a7bd60f44", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T07:40:58.907Z", + "quantity": 90.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "042e57cc3db8075299f77e29b67a7bf8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T07:45:58.698Z", + "quantity": 90.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8fc36d31798e115094cda25fc8278bd1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T07:50:58.748Z", + "quantity": 91.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "41fb18898f3f41518d4298af11fb648c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T07:55:58.385Z", + "quantity": 91.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8754e7b1b99fb4277d3e0e48be199b94", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T08:00:59.075Z", + "quantity": 89.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "066f28c2325deb86842239d2935acb5b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T08:05:58.987Z", + "quantity": 88.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "47cb5926368748c079016cc774b5e22f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T08:10:58.41Z", + "quantity": 86.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1e853e1a6172b0618f773f19bab336f1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T08:15:58.857Z", + "quantity": 87.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1c8f320eddd154d7c288de2a84c1aa47", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T08:15:58.857Z", + "quantity": 87.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e50d5d096a150bb0dab860e35b5471ca", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T08:20:58.698Z", + "quantity": 89.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ce2c7ee41fabb1734cc988ff7d2ad379", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T08:25:59.145Z", + "quantity": 90.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a55c4893846399a9bf7a5ec63aac174d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T08:30:58.6Z", + "quantity": 90.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8c24e934101e92b55344c8f6f7fd378a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T08:35:58.81Z", + "quantity": 91.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4d2e315e8d3b18a57680fbd9db72c4a6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T08:40:58.339Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "87b11f9bfb696716796a75ffd156bed1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T08:45:58.827Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5af2ff7520f85a001d7b5bcce5243058", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T08:50:58.717Z", + "quantity": 91.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9d46ca572dca7651fba5d52d04bf4010", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T08:55:58.807Z", + "quantity": 91.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "31b5266b7ad60ed8d11b3465ce88221e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T09:00:58.323Z", + "quantity": 91.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "425283533977887c8acb8b7acc86dc2c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T09:05:59.047Z", + "quantity": 91.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "55a1a5ab78a0f45fdcd80f7e43531461", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T09:10:59.178Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8de93680f96349e8fe7099a5936aa302", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T09:15:59.999Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6699ca8f1664bacc2291e536423c61f2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T09:20:58.672Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c4b64b56bdaea966d9f0c7b3deeec5b3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T09:25:58.324Z", + "quantity": 91.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e98f035dbe700d5e60e1558845c11dd3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T09:30:58.569Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f03376dbdb5775083e5e47b7efdcbcf3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T09:35:58.503Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6bb18eb36031ebe208fbf007e081173f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T09:40:58.297Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "940fd55de6d14c159aacbb33a3645ae5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T09:45:59.175Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1de39dc941af4a877c2e01bc7d287335", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T09:50:59.103Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2026f1d057c77ea78b9944dc19bda57d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T09:55:58.824Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5002ef65f4b9515e2627d0ab20c4c4c6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T10:00:58.845Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "630ccd3038c6d58390ac54a0fff555b4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T10:05:59.173Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7b994a57a86bceeb7fd9a5c3293a8024", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T10:10:59.029Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "16b98c90cc0e30fc72803e93ee77488c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T10:15:59.18Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5b681205c662f1e6b1f0d8e45cbd598d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T10:15:59.18Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "dd6962f20d31f4f2fa1ed99c1261111e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T10:20:59.356Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "778b119769a55494b128281541062d18", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T10:25:58.766Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0d80935c2e7409fe23ee4856736f61ad", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T10:30:58.818Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f63af39363851e402c130e84f4e73673", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T10:35:58.235Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2a3896069b72dc26c652f5deb54ab0cf", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T10:40:58.891Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6b0787c01e499a210a16f4699b694515", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T10:45:58.606Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d60466c63a26365cbc68dcd1a7eb8cf6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T10:50:59.107Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "12cace12e20b7d4615c296e07e181fe7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T10:55:58.96Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "acfad2b7a319c313dca2b5003aa355e4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T11:00:59.209Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5f1893d636bd0a5b6e0e5052618f1d95", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T11:05:59.08Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a691b562b49088edf728a7b4bd79f033", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T11:10:58.324Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6c2d30ec71bdff906c47533c3254b3b4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T11:16:01.152Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3112a8500aa1b4a6e9705c7a41f7e90e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T11:20:58.863Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "989e14627d8a044a841ab6dcbb3cca8b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T11:25:59.095Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1a2db7616c922053551e422b3be10303", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T11:30:58.886Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "24ed43267bbd8f90f63f6bf4fdefb455", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T11:35:59.226Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "eafa3ac9967feb6b046071b20f40eff8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T11:40:58.67Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "795d246253e7fe3e0c04c0d8a97d56c2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T11:45:59.165Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8f8b0f88a18a914c09e469ab3dab44fb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T11:50:58.886Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "adf0a100cd90fad62481dbd9796e5eaa", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T11:55:58.527Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b13df03d1c6b570ae41a385a2b1d55b0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T12:00:58.308Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b627fbf51d333f1545ed7716be346492", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T12:05:59.024Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b2da7004b6b4cd0ea4fc388465a252ff", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T12:10:58.812Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bd239097e9876dd88822fb87307e9dd0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T12:15:58.632Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1419597f065f37d0b00db09008b1ae4b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T12:20:58.755Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "455b2d1ebcb98a9bfdeb994f079eb172", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T12:25:58.709Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3a8924def7d8757868f9548869af40ef", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T12:25:58.709Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f1d1314e8f4db61b9af391891c413994", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T12:30:59.156Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b3bfe33b1132b4a2dba224821c1b76a1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T12:35:59.084Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "574b749a7d8767d09775452a639ebf59", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T12:40:58.88Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "306b05c03918cec9f7f83319a1674a6e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T12:45:58.844Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0c7bc35304d8666e5d3ffa331b1ccaad", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T12:50:58.7Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2564fe4d7e6eca5eb76f05f4674ab024", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T12:55:58.597Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "df5f1a1fdc8a9072ca5529e808033ed1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T13:00:58.315Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1c80a067d8a3d691378e17e156547080", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T13:05:58.974Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "30d769e111a81d65d42613bd36e35cb1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T13:10:59.251Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "eacfb21f440d2f81345fc41e143df970", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T13:15:59.746Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9e7af65cfd068a8d3e15f6b0423a5334", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T13:20:59.073Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6257ae3035241637501f972822daceb1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T13:25:58.537Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "51fdd16ddfeea43b85620dbd153b9e4d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T13:30:59.308Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9944a8611d0ef97e1191563ab8713545", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T13:35:59.075Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "07edbecccabbc7a381ff8f53c10250bd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T13:40:59.193Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "32b1fc277dc62039bc2dd45312d645ea", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T13:45:58.43Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d33e8381c55e2647d75fdd10b16c9301", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T13:50:58.689Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e7c1e28d5136e8f4afb87e8155dadbf1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T13:55:59.238Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "86ba26e3647ba2ca75cdda30352a6ac3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T14:00:59.166Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6ffcab1a427a50da2e2b4af789fa9d18", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T14:05:58.551Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bac34093c70402ef0a9000c4a217fee2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T14:10:58.559Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "287ffd7fee86e3711edac13433a6e16a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T14:10:58.559Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5acf22d331e9085c1ee4afe341dcb3df", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T14:15:58.502Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "29826bb8b14ca395118211196bea56be", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T14:20:58.56Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7f1b411a874c0000ea4546ed8925b3a8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T14:25:59.169Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1cb713c2605db28947c78a23656cc7da", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T14:30:58.406Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b4172191cf3772cbd91aac0807cc1cc8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T14:35:59.322Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f3b80efb0bdfd087bfd35e8d1465e873", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T14:40:58.858Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6491d7b67a62800b4c4ac2627ef2b59d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T14:45:58.986Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e9ef97d2875550d9b08564ce8a84e299", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T14:50:58.998Z", + "quantity": 90.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6203d6c14d53905a8b952c411477a3e5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T14:55:58.733Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "086e9a738d3aec0aef24ad3a184a0a74", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T15:00:58.758Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bd94da9810c33b8d53d8b44e55f59d0e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T15:05:58.6Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8b91528ed7bad63fffb7a34c2c203e2e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T15:10:59.033Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "89222da9a6e8ca9ac8ffc59a9c418580", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T15:15:58.497Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5710cffb717c36bc07c4a9ad7b749169", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T15:21:00.63Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e1abd40b07de8823b83dbc3081724943", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T15:25:59.219Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9e57cd6a51122be7a8b6514bf4a77bdb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T15:30:58.99Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "869bb5ce1a1cadfdb3bcda32dcb50079", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T15:35:58.406Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4045ba224d6b1cbdd4cb0bc0319afd2c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T15:40:58.584Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "58dd41e0ba40069f84c63e1e085939f4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T15:45:59.051Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e8b8822788815a9913174ddbf1a3e00c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T15:50:58.503Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c35057b895664cc0d2266c1e6b3c043d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T15:55:58.528Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "70c053987ce92ddbc3784711df21b27b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T16:00:59.011Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "330040f9620462bae46b3a2b249d11f6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T16:05:58.478Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "982f876cbc06463be0bebcbbe06b6c4d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T16:10:58.826Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "67c9db45d9cf529e012f7d1c8bbfaba5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T16:10:58.826Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1ad8113028d36ad8686e3ddb79987df7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T16:15:59.305Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "67bdb2b90355faa3ab2398a65039caba", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T16:20:58.802Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c8f56b5bcfba36e18d62887be5dbb7ab", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T16:25:59.299Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5bbc29af7143c7439bbde67a953dfeb7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T16:30:59.339Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b4257b97a52f3f66135d9cbb7fe3c257", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T16:35:59.199Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e3758b1d2b5937d6886a216d9597aad7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T16:40:58.976Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5aa73c53e9206cacbbc0bcb5dbedeb77", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T16:45:59.179Z", + "quantity": 125.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "dc820cc0c33ceccb26dda3f2c6fdb485", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T16:50:58.718Z", + "quantity": 134.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "445639a640eafe3bd7fe065de3a0c2b7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T16:55:58.488Z", + "quantity": 134.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6e4d15b886c1ef279780b9d094016712", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T17:00:58.961Z", + "quantity": 139.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c728016ac4c34a50b0c478dc174b8868", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T17:05:58.808Z", + "quantity": 143.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b7d5d89a5709edd729b797429c76261d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T17:10:59.27Z", + "quantity": 142.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "dae34db06af98caff287cdcae6614f7b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T17:15:59.426Z", + "quantity": 143.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d001296595a77090a681e6f848275cb1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T17:21:00.339Z", + "quantity": 146.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5abf802820dbc15ab3345750a473416d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T17:25:58.477Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8a01065bcd0629e46140c1e0431b7f62", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T17:30:58.568Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "efa5d1d3b0709d6f7a2e5e45a66eb0fe", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T17:35:59.072Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "294db868b6a5c51b21b509c60745f519", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T17:40:58.988Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "59abeb28560393c8e3023e8bab085b81", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T17:45:58.804Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f7f44810b29f0e579babf53896296766", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T17:50:59.261Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3a1fb2be4591f5de4d1019b8e2de1c14", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T17:55:59.404Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "534803e6da343a8df4d169810891563f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T18:00:59.328Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a7c9e163d284cdaa542e31e75d0ff2fb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T18:05:58.63Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9adc31c6dc401a2775bb8ccc5bdc9472", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T18:10:58.816Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c42256b230566fa6f7574c3bb849c2cd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T18:15:59.429Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2b7791d5a9c646ae4fedb9cd15d1403e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T18:20:58.962Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8116b6a0395071df8e68f45d79a6ac70", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T18:20:58.962Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b67930ea307094ffc455750ebc3ba217", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T18:25:58.633Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9c0b0995c1eefe3c06ade9055e3693b1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T18:30:59.421Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "67d53460c42f530d0be70964eb61a4da", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T18:35:59.06Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cc330961fbc68d6c7bc2bc7677813274", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T18:40:59.439Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2d77496f0f8c31a626b89a27d4cf45fb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T18:45:59.285Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a5756115e8718dac434a18866bd83811", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T18:50:59.058Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "605be12c3d49da31439fd255db56192a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T18:55:59.248Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a8147b6529584d9cfe36b38cc60aeffc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T19:00:58.93Z", + "quantity": 91.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2e89da220d3d1e06c6c6273c7889fe7d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T19:05:59.29Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1d77a8b04059a46eac6fbd5da28e7b74", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T19:10:58.89Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b7c868605d3a0ea2af5e32eb8f45e3f6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T19:15:59.05Z", + "quantity": 91.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7cdcd571654f84d4ec293b13d96ff772", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T19:20:59.37Z", + "quantity": 91.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "18d481c36c1470f15a61b8226f97c857", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T19:26:00.361Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "114f33368c0696c76891922a2deffd96", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T19:30:59.092Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d8b735f292f8acef27080cdb0554ee54", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T19:35:59.064Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5fa43baa1e04fde8b81ad8cb8e3f9df0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T19:40:59.253Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9e4d61c907b173b5b573cb78f1aa8b03", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T19:45:59.791Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d9c0d1e38f1ce427acda225f6dd0e397", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T19:50:59.697Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d742b0558875c5dc116442d2bede5da0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T19:55:58.897Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d27da4dcfcb3daa4561e49dcab62f58c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T20:00:58.711Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "247380df7c54d421fe5938ff14f9b126", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T20:05:58.766Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "63cdd4b3fe93db2f57964192cae8089f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T20:10:59.701Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "faa4abb196d70ffbe06787301e582c93", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T20:15:59.701Z", + "quantity": 123.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2853c595c719b2125af9c00799340ddc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T20:15:59.701Z", + "quantity": 123.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9695e8931a4b281fd7f0cd828a2cd671", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T20:20:59.701Z", + "quantity": 129.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6977f6d26abede3f2078c42ef7183b0a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T20:25:59.701Z", + "quantity": 130.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "95427a7272866ab3695c3d2f8dd86e3f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T20:30:59.701Z", + "quantity": 135.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f97a289c78bf4cf05a75ceb4f5494f54", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T20:35:59.564Z", + "quantity": 136.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "38b5bec8ca4fc25a077eed91b96cc57b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T20:40:59.465Z", + "quantity": 143.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ea2d8c9a575007efb90af7e384c7ffa0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T20:45:59.395Z", + "quantity": 143.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "263ae3d7c2b9691250f7cbfbc3ad8543", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T20:50:59.477Z", + "quantity": 140.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "277d1b090fd20ac9e2e4f58339630827", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T20:55:59.104Z", + "quantity": 140.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9002ee530444a72065c35ca6502260ab", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T21:00:58.712Z", + "quantity": 139.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4d8d956b329e7dbd4ee03bfa5b2f8cc0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T21:05:59.491Z", + "quantity": 140.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a2651c148aa0a1806ba9092433a96ddd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T21:10:59.478Z", + "quantity": 140.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e3a69cabc420964ca001a28ca243b4b5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T21:15:59.012Z", + "quantity": 139.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d40be6cf07b11fda69ca3bd5796c4a5e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T21:20:59.147Z", + "quantity": 142.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6664ab0532b00538b39ae0e0095d9d95", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T21:26:00.22Z", + "quantity": 143.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e979f70c71c9a2ae07f237cb59e35be4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T21:30:59.296Z", + "quantity": 145.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e9946dab304ac8c0b5acb21ffb192d9e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T21:35:59.066Z", + "quantity": 144.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1e23746e3b73cbb2412fdc5ca949b09d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T21:40:59.025Z", + "quantity": 155.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6635c77ee1e4fb51bc9c55a436e5a134", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T21:45:59.696Z", + "quantity": 149.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c7d5da609ba34dbb6f3eb6c9290022ae", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T21:50:59.673Z", + "quantity": 134.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "07999c17d9f08fbe178d519d3bb5fc37", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T21:55:59.333Z", + "quantity": 136.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ef9439a0ac9fe2d0c4489c5a1dfd4496", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T22:00:59.094Z", + "quantity": 138.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "96c5632d5ebbc4e2bcb0137ccbda8820", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T22:05:59.442Z", + "quantity": 140.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5b6046293f8027acfe65da7e73f1b48b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T22:10:59.425Z", + "quantity": 144.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d5529798ea3b309392f7500f91ff4baf", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T22:15:59.584Z", + "quantity": 145.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7974f149fd73850e3f81e3b8af70cc87", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T22:15:59.584Z", + "quantity": 145.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8d76a506586fa1373543e63c879e40b1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T22:20:59.603Z", + "quantity": 143.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "01da824346832dc2c7e447dadc9c9ca0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T22:25:59.33Z", + "quantity": 141.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a4855c0d0496a380cae1e3a54c61f687", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T22:30:59.078Z", + "quantity": 138.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "773a9ef983a5cce8e5fd39c311d65ba1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T22:35:59.55Z", + "quantity": 137.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "200ac027cbc8be7462ad6101a426c9bc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T22:40:59.414Z", + "quantity": 128.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "dfc256945dfd5ca98c57b4cf6fb40361", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T22:45:59.389Z", + "quantity": 123.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "85607c18a64dd1ab8ee5e94dd6e6525e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T22:50:59.459Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4907a82659dd5d980676e4b7c432ee2e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T22:55:59.46Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5607fc8c0f45edd63d170622529a2387", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T23:00:59.189Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e75dfbfe2c0a7a9967ad1c51d1a638d6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T23:05:59.763Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b0d8c6bd3db6ce76b7439650bbd56397", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T23:10:59.856Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d3e5bc778f1594d465c4837efddf914c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T23:15:59.117Z", + "quantity": 120.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "84ab0dedf936a0f28286302e050ddaa8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T23:20:59.747Z", + "quantity": 127.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2ea73dc3c2053fff9da831d5023ce40b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T23:25:59.751Z", + "quantity": 129.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8138d05c7ba330505031aeacefbd9f67", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T23:31:01.614Z", + "quantity": 134.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "49694c229eaeeca1669e8c3eac550fd0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T23:35:59.783Z", + "quantity": 131.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "17c68d6ced2bfed03c6ad16882422d3c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T23:40:59.107Z", + "quantity": 130.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b481c7e20d202ea6ac68dd421cc9f78e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T23:45:59.388Z", + "quantity": 130.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "48a7621923bcff4878de89028323cb0b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T23:50:59.608Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "eeb58ed48f271a31b3fbd8c3ad8208ef", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-01-31T23:55:59.259Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9bab618a97660229600c40163508dcd6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T00:00:59.759Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8e462fc1608e83ffe58c2c78512586c7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T00:00:59.759Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4be03a4b90118abcdd03d0805f647ac5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T00:05:59.45Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ed9e10b3c2dc69e0c77ae61bc4f19b29", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T00:10:59.044Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "769dff86e1e8d30cdb3130d2089b54a8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T00:15:55.636Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a0dc18641b476cb41233218ad896782f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T00:20:55.636Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f4ccea0076f83988639886c3f267946c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T00:25:54.82Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1bbae6112a86494c8e1e84b71becea0d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T00:30:55.407Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8f7879e93b6d18fed4a12fc34c8c4dde", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T00:35:54.816Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fb8b1784a2794f13b2a50f6625d9cef6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T00:40:55.072Z", + "quantity": 90.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7360865a12935682ac567a1c8a8046e8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T00:45:55.2Z", + "quantity": 88.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "de4ad2f6f5de1406ed08480f6110be6a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T00:50:55.588Z", + "quantity": 90.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "530a9b34d6b901314ae624d22433bf09", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T00:55:55.42Z", + "quantity": 90.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "35188665de73b4c35c6b79ee79ae0325", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T01:00:54.971Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4ddea6aec88435aa8d363e1c69446765", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T01:05:55.619Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "58006ac1fa9e63bc414986ef49cf2113", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T01:10:55.188Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "21b848f286bb8c514e7a53c168f6c8b9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T01:15:55.594Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "faa7ff0cf8dbd6745195681a2104695f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T01:20:55.326Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "934704df71b64dfda7913f83bd375926", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T01:25:55.677Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "313148d102f583e41cd2248a0f185067", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T01:30:57.076Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b35c8d5307fb8d57474cd7685e86ccf7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T01:35:55.323Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7039ee965b449fbc40a81f3bfb9d2c9c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T01:40:55.15Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c838cefdda5beb25380d23a2aa29436d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T01:45:54.957Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "846c933f78dfae69969c91e0dd3c96cd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T01:50:55.313Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9bd451b4501061a871ec95640036158c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T01:50:55.313Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e66e1a95a9291a784f84db94392dd847", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T01:55:55.223Z", + "quantity": 87.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8a1bd6aa7b4ebf6a265ab01ca00538c1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T02:00:55.176Z", + "quantity": 88.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "93ae1ee21cf7ac947fd39ef2b6c7bd88", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T02:05:55.009Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "df743f015b033b8ec84ffd6a81e3b60f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T02:10:55.55Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a60b3b6c6d924862bb1497316ed1253e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T02:15:55.164Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ce304d219cdfb5e4e36c5a803b6659fb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T02:20:55.317Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6d540ccb40e7911c0df59293dbd02796", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T02:25:55.124Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f8061fa1f9a97e313fedb72a9b18a0c9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T02:30:55.286Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fc68c6d79ef886e7d8a333d448115172", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T02:35:55.28Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2cb1234026c57d25c309f364541cc814", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T02:40:55.632Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f6193487d135036e305c6c82b96f2a22", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T02:45:55.516Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c94856cf5c1d4b1cb91a59603649c410", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T02:50:55.666Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a5ff0dc8489dbf4262bb46c42b5017bf", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T02:55:55.551Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0a4c277a52d941e1814b11e6d62882aa", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T03:00:55.236Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3ed030b0e9b763186baffb354c52a553", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T03:05:55.036Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "985eff797463e004fc540f6e0da57040", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T03:10:54.949Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a4ee9bfa8684dc35f168477e18000209", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T03:15:55.401Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6aaff551ec0e9cdcd827aaaf70c51261", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T03:20:55.561Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8f2c93ebf2d487b1f3a5bc041da3cce9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T03:25:55.445Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6e961f6314b1ce2914facc5ebfe86829", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T03:30:55.447Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5aef06289edb98164b2f82c09d0e4d31", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T03:35:56.947Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "181d64fb0deea8dc362a8122e98f8e99", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T03:40:55.323Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "dc49e7af5b0d4edb8b91af26770bdd3f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T03:45:55.323Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "097b0cda657af524ae632818c0da9c47", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T03:50:55.271Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d14f1c4e822f64d62a987ecae316f280", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T03:50:55.271Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8afbfcfbf21fefd4c4264a745beb7a51", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T03:55:55.187Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "71654538266ec82c0664aec97b3044fe", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T04:00:55.732Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "657cb165fc2e5a3d4325856eabfe140d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T04:05:55.402Z", + "quantity": 91.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fe012114d8df47e20a4f02a681956c6b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T04:10:55.277Z", + "quantity": 90.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "edcc6f491b961b0165235e4653e074df", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T04:15:55.204Z", + "quantity": 89.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7d363b646eb4f6ad2c305e530d68b7f9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T04:20:55.257Z", + "quantity": 86.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b9ea698cf554cfafd3fa83c06e093a0b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T04:25:54.968Z", + "quantity": 85.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f99feaa1ab95bb5db55f4ad93852c5d3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T04:30:54.945Z", + "quantity": 85.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ab6f159ee0ec8d13f7272664ecc9e122", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T04:35:54.972Z", + "quantity": 84.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "54e789a7087432c7e939f58a72ac8280", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T04:40:55.252Z", + "quantity": 84.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "534d6e2d25d473a8176e91310f3c5665", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T04:45:55.111Z", + "quantity": 83.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "316caf47a0cf15df9a1e77eb57f404ff", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T04:50:55.583Z", + "quantity": 83.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5187a51c1918524492316ed391a16beb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T04:55:55.563Z", + "quantity": 88.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "01c034f64ef4a854c9d105dba6157a88", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T05:00:55.925Z", + "quantity": 88.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e66ab3afe14a11036ca57d5cb9030b7f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T05:05:55.329Z", + "quantity": 85.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2704490b567133574e2535b115d258a1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T05:10:55.736Z", + "quantity": 84.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7ccef0a1dc4c931b9b83c9e06a788a0b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T05:15:55.759Z", + "quantity": 85.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0215a2d1db6345e1bf15b49f1574a61c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T05:20:55.37Z", + "quantity": 74.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c01bf0dd64bee5be3c8117079bffc455", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T05:25:55.661Z", + "quantity": 79.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e9c6e247de3036c547fc2dfd9561f0a7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T05:30:55.29Z", + "quantity": 83.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "26919ab4f67a34640e88581e128f4360", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T05:35:57.032Z", + "quantity": 82.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3db7d8115f27c51900bb6a5ebff4d798", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T05:40:55.515Z", + "quantity": 81.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "617832b37e695d8342aab5602bfa29dd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T05:45:55.7Z", + "quantity": 80.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "80472ddaa14cc231d82c68ebbed513bf", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T05:50:55.452Z", + "quantity": 82.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "af10f286ec3f595191eb9207afd39b06", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T05:55:55.885Z", + "quantity": 82.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "12934ac63068a6c1aa80e9e6d249cbcc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T06:00:55.7Z", + "quantity": 83.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "09c718b5e37351f558779c325ad4bd23", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T06:00:55.7Z", + "quantity": 83.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "990f5902b4846cbc150a313447b5bdb5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T06:05:55.118Z", + "quantity": 84.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4cc53f307d0c5eb29b9acb7a4576244a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T06:10:55.651Z", + "quantity": 85.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5d2a0fbc2ddd00657742b2726c8b0750", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T06:15:55.704Z", + "quantity": 84.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a8f09e432acfdca164ce03a8c84e0e7d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T06:20:55.262Z", + "quantity": 84.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5e4cd65815a4be798ea1c38a64553cb8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T06:25:55.673Z", + "quantity": 85.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fc620ebc38f2995118c21d15b781dd92", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T06:30:55.644Z", + "quantity": 85.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0886faaad72bb1db220a8592d34a4901", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T06:35:55.663Z", + "quantity": 85.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0888410c4c92da12eaf22be5155cca0a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T06:40:55.792Z", + "quantity": 85.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bfb28dc26b4f2c96f7157e501c27c018", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T06:45:55.861Z", + "quantity": 85.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "906ae6e1bb79b6e53d019bee84166e17", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T06:50:55.536Z", + "quantity": 86.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bafd6d773742a60c8b8ec18377dc43ec", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T06:55:55.545Z", + "quantity": 85.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "aef50fe62d5aebf159b0f4f2527327bf", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T07:00:55.72Z", + "quantity": 85.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ded0d42382da238cd1138919686c48ed", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T07:05:56.109Z", + "quantity": 85.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1e2ab7c1daddac2a4b7ed4843a7d6f9c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T07:10:55.961Z", + "quantity": 84.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "aa3ed088198d39044be74a9ca4c51f59", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T07:15:55.759Z", + "quantity": 84.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8e9f591acfd53d82d35dbd5637573a91", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T07:20:55.784Z", + "quantity": 83.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cefcb28f268d5c5ca7c7e6ef8f4e30c6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T07:25:55.154Z", + "quantity": 82.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a43f262efbee21cc2fcdfc57928debeb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T07:30:55.827Z", + "quantity": 84.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0121f62dfa9e00db9c91f9bd2b441bed", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T07:35:57.577Z", + "quantity": 82.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d3b1be927b9ec9330de1b3b2d0858b3c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T07:40:55.682Z", + "quantity": 82.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4f9f68b0e800054d5cd0edf6824af0ac", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T07:45:56.055Z", + "quantity": 82.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9cc184dca44daf6c4b205f2a0a0d8443", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T07:45:56.055Z", + "quantity": 82.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "19dd8aefd460f0e60cdcf09b8499193f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T07:50:55.555Z", + "quantity": 82.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e20e3d7a7fe34b0049401686043446f7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T07:55:55.073Z", + "quantity": 81.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0935a9cdd693e9769184862ebb12ef1b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T08:00:55.47Z", + "quantity": 82.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c29a3204a252f094989977191354abd7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T08:05:55.898Z", + "quantity": 82.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3f67b3c20d5f25083824b3a84c8853cf", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T08:10:55.986Z", + "quantity": 79.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a9fd4dbc82e85ab587eac146161c56a5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T08:15:55.468Z", + "quantity": 78.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2bd19031a0bd5c69524a189abbea4007", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T08:20:55.467Z", + "quantity": 80.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b876761653493a9357f43e338d4a140b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T08:25:55.678Z", + "quantity": 81.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d44355a056cf5087f397a07395a6a223", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T08:30:55.563Z", + "quantity": 82.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1b3b9397efedac4b91e39ab807277546", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T08:35:55.383Z", + "quantity": 83.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "be2c254399e059864789271571f3edf2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T08:40:56.01Z", + "quantity": 85.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2ec41042096befb1569aae69d28dbfd1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T08:45:55.759Z", + "quantity": 88.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b0a81e0e581c485c6176d042d4da8713", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T08:50:55.156Z", + "quantity": 88.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "54893898a509157918ad0572ccef95b0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T08:55:55.179Z", + "quantity": 88.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "dad8a4d92db03cb395ac9464de0b28ea", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T09:00:56.01Z", + "quantity": 88.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "df74f681cb6a261a0cb28645fce5d39d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T09:05:55.257Z", + "quantity": 88.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "46506d30310293a20ce4568286afe933", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T09:10:55.656Z", + "quantity": 88.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "87f49f166e1875b8bf2404990a6612e0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T09:15:55.578Z", + "quantity": 88.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3308034da100ab6f4f5df1a9e0844a87", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T09:20:55.729Z", + "quantity": 89.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d3c88590d2df2484bf58591ea6f77d5f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T09:25:56Z", + "quantity": 91.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "380f794f28cfc0b09bb033c4fee746c0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T09:30:55.178Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "01a19ac0bbeca4e781902a4aa8086d3c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T09:35:56.584Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "eaa9b2088903aaecbd7ef450a4068135", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T09:40:55.214Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4d8e4aa65f07648d6e57557602d01447", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T09:40:55.214Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d13d773e681ef0a5ff786df408cc1266", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T09:45:56.272Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0123ade9d29fe7a424935e8b6beb7cc0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T09:50:55.682Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a59a6c7da57fa1f960c6bc162533fbf0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T09:55:56.255Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1522fdec54ab11ff969796a0158141ed", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T10:00:55.531Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e263fb753354d91ae941342ec6e06fa3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T10:05:55.891Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3c9c691a816b628bb7d6b07789a37102", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T10:10:55.771Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f93531d0021f812d19657ecac11acc18", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T10:15:55.4Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b4dbf46da0a007c841b244a3925cb19a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T10:20:55.203Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "37b3afc85cdf820002ebbfa93a2173e5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T10:25:55.24Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "dfda153c05ffd07062216d672385def8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T10:30:55.758Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fde791bd3f1dbff64d5632c97f916fb8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T10:35:55.688Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cbc34ef48c94e882bcabedc2e8beca33", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T10:40:55.551Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3f9b40293c80ed55477356eeaada187b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T10:45:55.411Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "19cbbfc345086c9d5c389f6c1a448a11", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T10:50:56.114Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cc9d9fba03aeec17a3f11c567170d0c0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T10:55:55.763Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "363f05db75c4796c8948f2ed6752bfeb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T11:00:56.046Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f6b9faa7ec31c47e366fe6d1ef99d2ed", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T11:05:55.484Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7196422c6b30a6a67a24da302d0784a4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T11:10:55.501Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a00201dad027fbc2eca6cde7073588c0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T11:15:55.314Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9da451d65aaff8869a74bc0f45ddd3ac", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T11:20:55.334Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "17fbdd639c950d18de0998f8de5e3aeb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T11:25:56.153Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "eea564f70903be1b5788f146d975bddc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T11:30:55.971Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2a736379ea5d9146405609b8e7561e90", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T11:30:55.971Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "be77fd85b4d4bbe6301ed6a3111fa6a2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T11:35:56.465Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c3dd81f7c19fce229c56e4674a908854", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T11:40:55.525Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "66027b0d068770d15278ffe05345c03f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T11:45:55.573Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "37baaff1564924dd7915dbff0e758a87", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T11:50:55.957Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5bfaa60867024a3eda68647eab00b5a2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T11:55:56.159Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "531ae3b9ce84b5125eb9ce0a02ba6ab0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T12:00:55.513Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "604664675485838cb379f3de9fdd6924", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T12:05:55.551Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a62ea51beedd93af22735feace37e87f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T12:10:55.658Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3c5b1be06a1fd9ceb350121f06abce79", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T12:15:55.397Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4b04c0631c600c77685394a3bd666cda", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T12:20:55.898Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6097b3262cd3430d95fcefba2b43df39", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T12:25:55.929Z", + "quantity": 91.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c9f877689ed6638feabab1a416cde891", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T12:30:55.945Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9bbac06881016cc3bd5bef56f96d61fb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T12:35:55.896Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ab9dd2b6228cef7fbaf27472fdd5d28f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T12:40:56.148Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a9b667dbf4458a4e21c798787cb6e8cd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T12:45:55.92Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e243de38ebaf369923da1656fad1035e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T12:50:55.516Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "566cb8f4332f6aedb3038bf65eb8e659", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T13:10:56.029Z", + "quantity": 39.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "acae59673778df064ac77e3dd6b377e7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T13:30:55.679Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e483558bee9fb946215b753ed4b2391e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T13:30:55.679Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7a7e9539ff03fb042159e0539e9782be", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T13:35:56.878Z", + "quantity": 88.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f39e266aedeed401409365f4281ac8cb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T14:05:56.072Z", + "quantity": 88.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "98e584d70fe9caf2b9500efdd60e528b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T14:10:56.122Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ffb16ff066bb3f94e24e319d7c5127c7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T14:15:55.743Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "28a1e5cbb7d5a8f83b555ec3c141235b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T14:20:56.031Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e70f1e395428525b48bf48a3fdb0c28b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T14:25:55.875Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "de8e1b9f38533c66495e7bbe2a88ef10", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T14:30:55.702Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "86ce56c257a9b1a91e9f76e051f328ef", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T14:35:56.105Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a80b2b88556173f424349c7dbe50794b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T14:40:56.026Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1d03da11302f37838201278fa98cca5e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T14:45:56.315Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "89326e4b7925e1ad13dfa17b02fe10a9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T14:50:55.721Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "57d6ce5b9a164fa4eb16ec4bc291319f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T14:55:55.592Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "acbcf839fc470179d628927d176d274a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T15:00:55.682Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7f2a3a66dfd398a6517caafee421eb61", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T15:05:55.5Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fea708efd0715827c93be394b31393d1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T15:10:55.677Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bcb523b09950837190c1a273ace67a45", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T15:15:56.178Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a0f71f565a4df3eb6e7f9c891d961886", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T15:20:56.245Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a17c3b065b05dd2e49164b5bc9f0eb4d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T15:25:55.446Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f66369d66aa878febfac2a38020f6e62", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T15:25:55.446Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1ce45f6bf4c1d03bad1c7c59590839b5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T15:30:55.995Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6c3a49501d0bfe5faedb57611846ddd5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T15:35:56.278Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "077241310c4dadc740c70647773ee017", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T15:40:57.344Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5a38fc1bcded0fc8fa118bb59e1639a8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T15:45:56.237Z", + "quantity": 88.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d00194e3025c508c260f7c685e4baaf6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T15:50:55.6Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d4c493ec85f5bcc9f94213621c5068dc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T15:55:56.004Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a644c5960a3cd290bb52f0bc7b769393", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T16:00:56.224Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a49e0d9aafe2005a7c6f8b7b338524c9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T16:05:55.476Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1bb2fb79ff0b3a7239ac725b41cfd4ee", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T16:10:56.122Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1a456827834fe36f066d36fe99aa9ed6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T16:15:56.08Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c00e58366a07d60b05008bf2e67c9b8f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T16:20:55.917Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0ba96b8bd629dbbf3f24b1a9266bc0c2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T16:25:55.455Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b0f0cc2204c28bcd1b8502b911d800ee", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T16:30:55.528Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ee9528d409c0f4b4ed678eb38e47d9c6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T16:35:56.403Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e8caecdea3faa4f4583b5c3e339353e5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T16:40:55.907Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c92a6ef3fe66388f417e83f37f5b6b3b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T16:45:56.052Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "054a122031b8652c0230a45e518d122c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T16:50:56.2Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "54cf6bdb14705a6eccfe9004cff7a976", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T16:55:56.188Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "600a07388c1236846b114447052b3504", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T17:00:56.312Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0ef09ab03402e4f661e71befbed33255", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T17:05:56.276Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "090ee219c542c5b35783c69d9573141d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T17:10:55.721Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d9877142166e7c459fd2602756af709e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T17:15:55.885Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e73ebe5ff4e500dabbb8f8151f157e9e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T17:20:56.417Z", + "quantity": 124.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a36349c214c368ae2908b0f76716606b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T17:25:56.468Z", + "quantity": 134.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ef5769fb7cf15630fe6ce0f9cfd030fe", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T17:30:55.821Z", + "quantity": 125.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d4ba2bf7cab7210b5d42fcfe40dc08d2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T17:30:55.821Z", + "quantity": 125.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "63c65d68e01e5786220d72c7b9363bfb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T17:35:56.245Z", + "quantity": 121.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9718c0d513547fcb71fe15f1dd55f409", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T17:40:56.346Z", + "quantity": 124.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3ddf66de4ab45944f878bb9d4c5f446c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T17:45:57.907Z", + "quantity": 126.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0227e82cfb3973400030cdd7edf7ddd9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T17:50:56.328Z", + "quantity": 127.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ad0b9d52787bf096fee6fe331bf849b9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T17:55:56.078Z", + "quantity": 131.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "462f3f0787f43e5696793dfa593d7373", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T18:00:56.421Z", + "quantity": 132.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8bdc25112d4e39354c2471ee959f491b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T18:05:55.561Z", + "quantity": 132.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "da7d3a704eb888df12fa780683e7be20", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T18:10:55.56Z", + "quantity": 132.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "13c0fe336111357af72d34e17d2600f0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T18:15:56.261Z", + "quantity": 132.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "23012b38f459eed058e6edab8fb78d4a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T18:20:55.726Z", + "quantity": 132.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "87dcc92b7b42a0644f3d7b523ba5c16e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T18:25:56.503Z", + "quantity": 132.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "afe97f017db1e6ac4643ac534045a5ed", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T18:30:56.455Z", + "quantity": 131.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c803c51d50fed525c32f222075e5c0df", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T18:35:56.439Z", + "quantity": 130.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a3a4aadb43be26ed821f196a7b3f9345", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T18:40:56.016Z", + "quantity": 130.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2996dfe5872bd1751a7ff4b5713afeee", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T18:45:55.7Z", + "quantity": 129.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e458fa7d224b2fdd6aee73559eae338f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T18:50:56.345Z", + "quantity": 128.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3f91569941d17c60ef8f206681dc0830", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T18:55:56.404Z", + "quantity": 127.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a74cdb46ba9eaac419338aad63fa3c5c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T19:00:55.805Z", + "quantity": 126.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8faf809c22d70fc2c52fdbe14b2bcebd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T19:05:56.554Z", + "quantity": 125.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0a098f7ff295f2da6d86d3956f751b5b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T19:10:55.611Z", + "quantity": 125.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9737938c4c8b2a401095898c6598de06", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T19:15:56.144Z", + "quantity": 126.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "33c30c85134b4b00103f9a4d2559d311", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T19:20:55.81Z", + "quantity": 127.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e429264003e2e0502553c323627b3711", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T19:25:56.589Z", + "quantity": 125.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ca4633ab270dd2012726a0bdd7ba2742", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T19:30:56.091Z", + "quantity": 123.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "41ad8523ea9dfc02b080d40e2a1c9d47", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T19:35:56.6Z", + "quantity": 124.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5ffedf9f327cfb822886dcaab3be3325", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T19:40:56.6Z", + "quantity": 125.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "62e8494c70b9293d8bd3ccf736dbd089", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T19:45:56.881Z", + "quantity": 123.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "40c4acebfa901ed980e188ea8b4221b9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T19:45:56.881Z", + "quantity": 123.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9906a799c1f3326f138f87ec85d6dc8a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T19:50:55.777Z", + "quantity": 123.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "14cb7569f05ec70dc42eb708491edfde", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T19:55:56.437Z", + "quantity": 130.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0c0b3678d6ae0fd4a5ad91bb65f4238d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T20:00:56.161Z", + "quantity": 125.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d9acc4e1598a97837531da08572bf037", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T20:05:56.006Z", + "quantity": 120.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2af37d32b3aebe99aae752728dc970af", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T20:10:56.257Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "41680aa2f4e1b61277fb403c66264d01", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T20:15:56.367Z", + "quantity": 121.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "957dc875302a336038458994551aeda3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T20:20:56.398Z", + "quantity": 123.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "064863853ee77730a35ecdb0f300a7ad", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T20:25:55.795Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b6a4a5c3e80eae4315a2524bef678123", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T20:30:55.887Z", + "quantity": 118.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c8b48f0a97541fd7b4d6fabc1aa93c59", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T20:35:56.652Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e531a33654b64132850446c9075369ba", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T20:40:56.041Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "50381577c066adfc852582d24660aece", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T20:45:56.29Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f25a0c473581c162bd3f23dcf8bdc2bd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T20:50:56.261Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "33eed19d8e25ff0e651c7af55521e3ee", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T20:55:56.005Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "71c924c6cb1ba2f6e207c5ce733b7402", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T21:00:56.382Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9ebfb5da124520c1fe9b4b10c0844371", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T21:05:56.55Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "561203306d616f4bc7b53a41156f776b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T21:10:56.355Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "19b004cea8b55031c7868003dfa90c92", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T21:15:56.697Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "369bf94f81d2931e208e7ce51391671e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T21:20:56.536Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9f9158ad4c515de0a3a16ae22454d0dd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T21:25:57.001Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "61b44e65e9cd7b28beb146a9e536f46c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T21:30:56.78Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "aa7946b17745d48d0fb0c49ccef34fe4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T21:35:57.763Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "518ec826775dceffea922d9b6d4567d1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T21:40:56.64Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ca7d7ae9ac19f8d62ac4af18386b00ca", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T21:40:56.64Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "62939b6895354b5a0fab1aae82db6b59", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T21:45:57.377Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3dee9cfcac93c707926b200e858a3607", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T21:50:56.337Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "102e85be0fb4f62ece9ea2d1cd506e30", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T21:55:56.117Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "aa1c67faf2a62d106cb8d95d89c928a1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T22:00:56.348Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c56b013f32f5dbfaf1112138d5dc3852", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T22:05:56.895Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "951770969ecd416f376e81b7a08e9236", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T22:10:56.895Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6d09687c9384a3e5f2b99749c2b60ec6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T22:15:56.312Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e53cf35388f298d208cf393ea53512f6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T22:20:56.312Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "210fb7956f28463f2857e5d38fcdf789", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T22:25:56.663Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "72e7789a72d89ca56d47badfe07d07e7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T22:30:56.005Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ff2fdfde10db3f88db28d864b94bbf6e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T22:35:55.793Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4af678230f8799787f1b5184b8647792", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T22:40:55.836Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "899f877552048f2c3234355ce6693ff8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T22:45:56.14Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "097ec28e3c9a7d6f31245752bcaf874e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T22:50:56.335Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a6c27ba1cc6be6fdb4287255d2d44cc5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T22:55:55.967Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b35bdb446e843bc019a2d214f080efc4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T23:00:56.309Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e3403139bb3c151fe4b1fb0c9dc69880", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T23:05:56.581Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ee524da66a2c214be3692c21ce9cc9fd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T23:10:56.133Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b264678bcb25e32c7b6a3a159385ca2b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T23:15:56.259Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "80aaec474b4f087c6d4b30e385e2e739", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T23:20:56.107Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7259ef808431da55c000945c22bbc5c7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T23:25:56.447Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5dc6fe122a2646aa0b02e53672826a17", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T23:30:56.543Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "54804b98814e4b97c7f90d6e9b56a8a2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T23:35:56.387Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "76a70f2a7da1d818dc24dcf954818d7f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T23:40:56.163Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6db98268594f78f4b9513a6330680ea1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T23:45:57.139Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "88b3cdedd87a0b871d2be33d81ab78b6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T23:50:56.265Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "edc61a6a7bbf6d07602424f0cba8ef84", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T23:55:56.007Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "92700d437888b6465d871823acd40679", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-01T23:55:56.007Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "899efed1a3857ce1795ba7344fad5817", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T00:00:56.188Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "17a75b9a616ce5e979aa779f04b0f387", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T00:05:56.633Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9d852d8677bd6d4403ec8d5d91340b31", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T00:10:56.199Z", + "quantity": 90.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "057ad821b55ba32d6f23a9054811a591", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T00:15:56.769Z", + "quantity": 90.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4e442ebe760f6811f9f2dcfa2527eefb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T00:20:56.43Z", + "quantity": 88.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3fbe0ae17df8f345e5485075c4d94977", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T00:25:56.771Z", + "quantity": 89.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e9a94b1ab99a855f37cf66d814668367", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T00:30:56.562Z", + "quantity": 89.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "157148afeef0b4cf2d21d876eb9e2f65", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T00:35:56.009Z", + "quantity": 88.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5d634614e7a9aa5866e591eab0a50d76", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T00:40:56.644Z", + "quantity": 88.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "85b0bc5acf7855a719ccddba2525bb4c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T00:45:56.683Z", + "quantity": 86.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c09325fed00dbed947be72945f540a52", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T00:50:56.348Z", + "quantity": 83.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a8a9e9e58ac982616531d13f516efba5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T00:55:56.765Z", + "quantity": 83.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "99f983e81d728463e9504f5f7b706bcc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T01:00:56.716Z", + "quantity": 83.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6f151c47cc0fe1ca63c020d29ec2d6da", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T01:05:56.713Z", + "quantity": 85.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "78d06062fa82f1ff7c1fbdc6f6dca342", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T01:10:56.822Z", + "quantity": 84.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b6a17b1f26d37d00fcf78c67afbed491", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T01:15:56.011Z", + "quantity": 85.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "012c95af4538d8e29f686aea6a3aa71f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T01:20:56.663Z", + "quantity": 86.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c51cf6d69837419e5a176d2be5bb96d6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T01:25:56.106Z", + "quantity": 89.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e05b941cba6817e04cd0adb1c35ab191", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T01:30:56.564Z", + "quantity": 88.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f087e4e0406dfc260f883f57c40084cf", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T01:35:56.801Z", + "quantity": 86.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c0478fa4717dc5f6dc10cd317ef1be39", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T01:40:56.631Z", + "quantity": 88.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e4b89332e962c972fb199e8a4b2db022", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T01:45:57.319Z", + "quantity": 86.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ef03585d0df3bad67e20291e55e076a5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T01:50:56.791Z", + "quantity": 86.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e8c3acf1766c2c797794ceab8b2552e8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T01:55:56.772Z", + "quantity": 85.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "76b0c94482bd9df20b6098835d7cb289", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T01:55:56.772Z", + "quantity": 85.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "471143ab9c3662ee46d55ee43cade5c3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T02:00:56.481Z", + "quantity": 84.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c8995320a47611202ca63e46a3c6c2cc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T02:05:56.673Z", + "quantity": 84.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ad633d7401a168f77ea786e83d3eeab5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T02:10:56.727Z", + "quantity": 84.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7b7a4cf7392e1da788175c3ff7a5aa3e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T02:15:56.759Z", + "quantity": 83.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5f58c2cdd0d8c49207fe6d7a84f5a022", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T02:20:56.23Z", + "quantity": 84.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c1252c28565984d8dc4c195f8c8d820a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T02:25:57.073Z", + "quantity": 83.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "87fb191e50510f011bde77264f39cb69", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T02:30:57.073Z", + "quantity": 76.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "838828bc51cea74706026a0f39799f63", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T02:35:56.305Z", + "quantity": 78.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "edeb383bb71c7c27679e97e72872c1f2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T02:40:56.401Z", + "quantity": 80.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "514fabdd376e51cd827a0496be476cd0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T02:45:56.352Z", + "quantity": 81.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b696161510dd2e6d85f35504565c53aa", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T02:50:56.778Z", + "quantity": 79.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b86ab840966782d35ef36d1697184723", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T02:55:56.315Z", + "quantity": 79.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e7ae1af738dddd40d92d534136bdb481", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T03:00:56.244Z", + "quantity": 80.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1027f17d4adde2d33e0328869b22c8b1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T03:05:56.602Z", + "quantity": 81.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c9eb5789bd0154c0e39cbca549d0edca", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T03:10:55.978Z", + "quantity": 79.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4e8ff8c89599845585a559bac17b0f2d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T03:15:56.959Z", + "quantity": 79.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d552173eb6e056aab378572146a73a57", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T03:20:56.198Z", + "quantity": 79.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9110925acc213135d56c99a1aa0e0382", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T03:25:56.367Z", + "quantity": 79.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "21f2caafdec9e230732c781f7af668a0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T03:30:56.258Z", + "quantity": 79.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "134a09b92faa49f12c3d5217b587bc4d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T03:35:56.258Z", + "quantity": 72.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "79554ac48886cdd86fe3591d6c02d116", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T03:40:56.524Z", + "quantity": 76.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f7d6ad3a3f1f9c9bdaf8387659c67267", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T03:45:58.218Z", + "quantity": 78.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7ecd471795a3db089b716b6f6a778e7f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T03:50:56.933Z", + "quantity": 79.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0c5797d008409ffc7648f48bd9a4c2fd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T03:55:56.461Z", + "quantity": 82.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a7c25cd74248adba2fbb35826e2e7cf2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T03:55:56.461Z", + "quantity": 82.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9237e2f8a3ed50a773b4c46d942f0c71", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T04:00:56.759Z", + "quantity": 84.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "234bec5d7e4ad8539b7a00c54ed99580", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T04:05:56.506Z", + "quantity": 86.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "287fa0152e6f3702331366ad6bf50ba7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T04:10:56.554Z", + "quantity": 86.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9682722cbf0fd68956796bc4d3cc0309", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T04:15:57.058Z", + "quantity": 86.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b0bc9f8dc6c49ad6c4ce983945f125b8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T04:20:56.732Z", + "quantity": 87.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1d5a8eb78e02b022a292ed6850eb4276", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T04:25:56.593Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "122472528c0fc8b0cd366ef43aa1373d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T04:30:56.984Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "94a2aa57f53f3c198cdf69b54c1ca907", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T04:35:56.325Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "796eb1d5d1eaae7df309385c402bcdba", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T04:40:56.705Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5971abc615818ee96fc2d7a364705f77", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T04:45:56.225Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ed3cb88f6394057b1add404a89188c75", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T04:50:56.292Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "abd45388ed81dbc4ee5cf8f063462446", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T04:55:56.979Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b38e9e6fac672abb014759897deab007", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T05:00:56.823Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d29a52bc8a292ce6b341c79d7b54f465", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T05:05:56.742Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d9e54b55c4417b73ff9539583f91380f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T05:10:56.212Z", + "quantity": 91.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "91dd9f5f18cc161393e911a93ad31d80", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T05:15:56.304Z", + "quantity": 88.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b17c2e9ed8009b8bd73910e5935802d8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T05:20:56.888Z", + "quantity": 86.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ff7db6f70c987c51538c50a45d984e9d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T05:25:56.111Z", + "quantity": 85.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "eb5b8b4982f3e47a78cd5062d95d6cd4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T05:30:56.85Z", + "quantity": 83.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "43631381b601bbc08dd41247e366c794", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T05:35:56.781Z", + "quantity": 82.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4e3d2a6ae9ad04f72cb02642bb49cad0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T05:40:56.693Z", + "quantity": 81.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "31a08c702a3f7901455f62b542a50adc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T05:45:58.874Z", + "quantity": 81.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "65b01b775b8e627c7dbcdaa751f0185e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T05:50:56.234Z", + "quantity": 79.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1a2a061a1fe28008e13bcc4fe85fd338", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T05:50:56.234Z", + "quantity": 79.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2f7f349b4028f4764b963052d7554242", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T05:55:56.476Z", + "quantity": 78.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a67986de58ccaffebab0223f18f326d3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T06:00:56.857Z", + "quantity": 74.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4742791d85e90d26ed5cea708748c196", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T06:05:56.352Z", + "quantity": 73.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "58aa345226f1ccae1768e728d6418ffc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T06:10:56.484Z", + "quantity": 72.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cf1dc622b6e9808c484c7f7171f7ae92", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T06:15:56.332Z", + "quantity": 71.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "00809c2dc356fe57cae36097c5af4751", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T06:20:56.174Z", + "quantity": 70.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d07cbaff5a2ec1d81e174486df9cad8f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T06:25:57.022Z", + "quantity": 70.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "52c4afb93192d43687cd3da01f830446", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T06:30:56.268Z", + "quantity": 69.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "44023ca8c6d5b23c6374f53ddb3a2ff8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T06:35:57.07Z", + "quantity": 69.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e9269219920d5c0516407919e3f47989", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T06:40:56.475Z", + "quantity": 67.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3bab6bb530ef3d69c4d108e99ee47c6f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T06:45:56.767Z", + "quantity": 67.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "25a2f7ca3dc1ae6054be2643e3d3f2da", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T06:50:56.267Z", + "quantity": 66.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a0d9edcc6892f2edcdf88514eacd67c8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T06:55:56.819Z", + "quantity": 66.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "06d798894344217d751fc20d28f787b3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T07:00:56.192Z", + "quantity": 65.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2aa9cd912196854d1195f1351533a64a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T07:05:56.672Z", + "quantity": 64.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d77167aea4aa4d965085003920344da0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T07:10:56.673Z", + "quantity": 63.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bfa8269e2326a978b4a9082d1f6ad494", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T07:15:56.392Z", + "quantity": 63.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1190190d9b9e93aeca1ae9a76ba459ba", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T07:20:56.803Z", + "quantity": 63.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0781b1150824aae0135b9ad9cbf3a6dc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T07:25:56.296Z", + "quantity": 59.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "641c260bba3346a2a61ff3aadc7443b2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T07:30:56.623Z", + "quantity": 62.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "55dca786544e77c5dd64086ca172c282", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T07:35:56.352Z", + "quantity": 62.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "647c863f6ba43c91746443b1e842ad48", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T07:40:57.002Z", + "quantity": 58.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6195431f5c4d325c244e86a259f1f58d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T07:45:57.891Z", + "quantity": 62.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "afe9802cc108ad4dddf28369eb034164", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T07:50:56.611Z", + "quantity": 64.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6eb6fdb5c77eefe63d6ea2ace814a1d8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T07:55:56.639Z", + "quantity": 61.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9146c51f26d72d3e4791fde234a38fb6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T08:00:56.837Z", + "quantity": 64.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4a49cebc15de57fb40bf24b92046f23e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T08:05:57.169Z", + "quantity": 64.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4eab45ebc1e80076c5ef7e47dde97e8c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T08:10:56.169Z", + "quantity": 64.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e15a23d19edfd95e879645d2d062f874", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T08:15:56.413Z", + "quantity": 65.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "22e115b9b477acb7225dbdc31a629b7c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T08:20:57.005Z", + "quantity": 66.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f5f909e35bf29bd787c3fcd8c5fc8129", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T08:25:56.903Z", + "quantity": 66.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b12a0e4f6dc2362993581b00c28a473b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T08:30:57.013Z", + "quantity": 66.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a26d9a8ecadcc0f84f8f685dadc80d00", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T08:35:57.102Z", + "quantity": 66.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "56c364cb2f163b63d0defb9c0da19d3c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T08:55:56.47Z", + "quantity": 66.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "49f54b9a2d5c00b8415001013e1b671d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T09:10:56.877Z", + "quantity": 65.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1a9382d315bc54e9ce61a49f04ef80cb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T09:15:56.746Z", + "quantity": 72.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "47da4d98b2c41eec849f32ce573e421c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T09:20:56.445Z", + "quantity": 66.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4745c839a872dd5f14e4d2e984b30a07", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T09:25:56.684Z", + "quantity": 67.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4ee12eb9f783c7999bda48a4d30d17fb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T09:30:56.904Z", + "quantity": 67.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f60e4bdc080cb3d8a35f5c1bf757cbf2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T09:35:57.645Z", + "quantity": 68.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "47230db30b40243dccc7ceb5b753dc1f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T09:35:57.645Z", + "quantity": 68.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "eb761c3d72bfe4bd20e0fda6cd04446c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T09:40:57.313Z", + "quantity": 69.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "64e1e1571c7151f4fc429b715ee861b9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T09:45:57.099Z", + "quantity": 73.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "03aaa1d9497cebcaac8ecbe644ec482f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T09:50:57.918Z", + "quantity": 74.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fc32944483d82098739f5115f96f3513", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T09:55:56.235Z", + "quantity": 70.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "05b4a6514c159aea8baa682fe1edf747", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T10:00:56.565Z", + "quantity": 70.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2d558e5e237354f3bd1fee75ebd491a3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T10:05:56.845Z", + "quantity": 70.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ee042d26b76ad55b5b948e20e3030847", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T10:10:57.22Z", + "quantity": 70.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a27584f8b07f8407f7ffcd7547f3dc67", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T10:15:57.18Z", + "quantity": 71.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b2a669541466757b73da605f7eb84185", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T10:20:56.419Z", + "quantity": 71.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6a7fa0f665b6e2f0d4f4f47f80c7350e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T10:25:57.147Z", + "quantity": 75.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "22f525718e5dab93c20ed13a52b5442c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T10:30:57.079Z", + "quantity": 75.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "799832a1935cad182fafc15022f37838", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T10:35:56.379Z", + "quantity": 75.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d650b4e1665c03927e91594ab324217e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T10:40:56.849Z", + "quantity": 80.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b76587f6c12b60518097fe8ac631534e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T10:45:56.51Z", + "quantity": 80.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d36557fabeed6036dc10ce0c4c12cdab", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T10:45:56.51Z", + "quantity": 80.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e3aa05c0a43c24ce58aa8b8887c6b4a5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T11:40:56.306Z", + "quantity": 75.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c5236e91d310e8796354e926fbc5bd2d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T11:45:57.261Z", + "quantity": 69.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3de93c86c093020dfc53aba9d93ec92e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T11:50:56.471Z", + "quantity": 65.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c1690025d49d8f6e2b2fb9a5b915a762", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T11:55:58.192Z", + "quantity": 64.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "56f78686f1d813ca361b697afd9631ae", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T12:00:56.871Z", + "quantity": 64.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c4cfc33c21607d199741d8567d80ab6e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T12:05:56.411Z", + "quantity": 65.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5c46ae061fdbf1ae0b243e5a20793c69", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T12:10:56.35Z", + "quantity": 67.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7b0dd935ffbe0f607943b2e072cf552b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T12:15:56.407Z", + "quantity": 68.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8f00d38807078c4037add1b87866abd5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T12:20:57.027Z", + "quantity": 65.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6ed40994bac6c5e56c58daa8754b8da2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T12:25:57.086Z", + "quantity": 65.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a7e176bede444e4be2bc8a29fd727fb4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T12:30:56.944Z", + "quantity": 43.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "78c97199c5c8eade236f43b40a3937ad", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T12:45:56.808Z", + "quantity": 62.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "00d76c1b5e437ff830d7956c65f42d5b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T12:50:56.888Z", + "quantity": 57.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "63fa38406a435c5750bfa2a26fe98a97", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T13:00:57.168Z", + "quantity": 52.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "73826d5f34f3f132ac4ef649691f789d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T13:05:56.999Z", + "quantity": 57.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "44ef886c97aac29cee5ac56cfcd86aef", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T13:10:57.107Z", + "quantity": 57.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2bc00cf0288c49314ab7eb8ecf8f5344", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T13:15:56.907Z", + "quantity": 57.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a08d4833e255544ed11bd122d709a56f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T13:20:56.926Z", + "quantity": 60.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5412a3b7841027f00191984d97a34c9b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T13:20:56.926Z", + "quantity": 60.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2e9c93c9b32bf3d96940889a1a2d7326", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T13:25:56.733Z", + "quantity": 63.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cf609e09d37ef89bc3f67e5e26e63317", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T13:30:56.639Z", + "quantity": 58.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1b9054667b0987ac2bc9f02cadfd1150", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T13:35:56.867Z", + "quantity": 60.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "11fa169d807714aa95b5067c63c9a54b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T13:40:56.964Z", + "quantity": 60.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9358bac35e91bad145107b3207af2a5c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T13:45:57.151Z", + "quantity": 61.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "68098b8e6256c949d87675c1fe241012", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T13:50:56.799Z", + "quantity": 61.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c9c6c3075a0eaa3ec9eb5703166cc99e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T13:55:58.38Z", + "quantity": 60.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7ca1669958ca67b483cbd8a3b5c9dc60", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T14:00:57.357Z", + "quantity": 61.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "438ac39d5ceff31855918c2b33f4f94e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T14:05:57.308Z", + "quantity": 61.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "be232646001707a9946fc3bd70fa7917", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T14:10:56.821Z", + "quantity": 59.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b62e7da8971267307cf8f51339d51bcc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T14:15:57.287Z", + "quantity": 59.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e98c6929517a6827c59d34bcc9b308d5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T14:20:56.492Z", + "quantity": 54.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6a79a5edd96c9d0fd941752ab49ea10c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T14:25:57.195Z", + "quantity": 56.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b431a543435182248bd4149cdf0c8570", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T14:30:57.209Z", + "quantity": 57.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e4179eca28064d6ae52ddb3adbf1b113", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T14:35:56.718Z", + "quantity": 66.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b71a6a9604808bf2fbf99aed71417b78", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T14:40:57.054Z", + "quantity": 86.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1b8371ed9df7915202ce57c231ee155d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T14:45:56.58Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2db37e9f33c7719e90419ed7679ab561", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T14:50:56.946Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "64b0f05a6f8946f483751587a60bb743", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T14:55:56.538Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e0cb374888093f9691e97990b13eb6bd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T15:00:57.052Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "88f15cd06ba34ce4a016db1626c839a4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T15:05:57.001Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "abc0f65c865d863360337f8ca56e8c0e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T15:10:57.122Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2eb2aa5cfe125051112282deacb25ffd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T15:10:57.122Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c0db64ab9fda570d38ff634b14c7ba01", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T15:15:56.639Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "494271a500628707dee3de8a9a53c2ad", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T15:20:56.58Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cc4212bfa8582c282849fd8f39e58f41", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T15:25:57.096Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c18fd69c01daf68854a36a19521b21d9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T15:30:56.822Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f44c57b8e6db69e00455b888e0dd7eae", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T15:35:57.021Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f8f12a550d40d1075429f13318f7fde9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T15:40:57.487Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cc7e0e50be84f11c41ab822405ebb4ab", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T15:45:57.279Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2f22c9fea0261df59ae3e16722152679", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T15:50:56.749Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c63d5ecb7f16a05b7cf9a4f5c38103da", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T15:55:56.918Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f68a16cba865c9fc1f382f7cd21cc8e3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T16:00:58.088Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2ff9df2ef2f4579f43344d7c39ed42b5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T16:05:57.455Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "adbdef36f2ecef4b6b0465348ce51519", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T16:10:57.027Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "01e06d7ca59b8829a23ef43cd9a65413", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T16:15:57.038Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3713d09ce34ff5c1f1a52166ed352d52", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T16:20:56.592Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3b16976760584d040450d6b18298cc4d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T16:25:57.35Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5cc54416cdb95c1fde9b8e6997cc82e8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T16:30:57.464Z", + "quantity": 91.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "faf33ea310455fd2e1f6ffcf3fdac67f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T16:35:57.134Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4a16b524bc3a1296763c59f1b86f8a2f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T16:40:57.391Z", + "quantity": 90.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3e452fd2c80e27ebc08ebae7a5682a00", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T16:45:56.581Z", + "quantity": 91.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4da5d292221584cc6fb8c1e0e34bee20", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T16:50:57.205Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "95c1667a62fda18a5596e0ade3954eb3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T16:55:56.771Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cf11b4aa5c4b8958cd276fed1bf3e5c7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T17:00:57.401Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bbd233bc41abe03849fc7d18f1113d7d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T17:05:57.182Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "603628eb4b5021fa8af4f4179f8d4037", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T17:10:57.515Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6322dccfd21bbd29bfc07ab13076c592", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T17:10:57.515Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9f93f9d3f798e0d38d4da28696e4a04a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T17:15:57.515Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a9dae8ee1e1fccf6d59ecd7a9d30e0c0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T17:40:04.71Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "720b5b970d84a6b44dbb9d929d063e43", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T17:45:03.882Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a1e23f8e481840eba3dbb29f5b0a19b4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T17:50:04.8Z", + "quantity": 120.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d7ed00b35bbf1c0616b4ce724e046adc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T17:55:04.352Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "80a3c826e2c14f84ef6785dfac0bd5db", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T18:00:04.869Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0d311f7771c1c0b308d6aa92c65bc6a5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T18:05:04.786Z", + "quantity": 120.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bef8420be50801e7862ba8330412a154", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T18:10:04.645Z", + "quantity": 126.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6c5097b762cd5a464e417896108de3e8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T18:15:04.814Z", + "quantity": 137.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ef1600ddb6fce2ca86401dce32918a89", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T18:20:04.275Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a9dc6579c05ca7f38a46df1d1d7b97e9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T18:25:04.014Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "66de8478a090f6514b4788211b3def88", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T18:30:04.632Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b1779e7521b43d7eb15308ddd765e20f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T18:35:04.933Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9fc36c1f8dbe2fd0c14d66a007baf5c3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T18:40:04.281Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7b0cc74de07a86a6571511d3c9f3dbef", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T18:45:04.351Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "46149898c4609ae3e135dee9bb96f42a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T18:50:04.247Z", + "quantity": 66.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b4866186836fd442fd25865c192846f7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T18:50:08.247Z", + "quantity": 79.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "eda8ce13d7705e1424599538f1158a47", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T18:55:04.51Z", + "quantity": 79.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b89f82a841f806ba64ae4a5bce1a038b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T19:00:04.797Z", + "quantity": 86.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b2ca85e88b6a32a181064517156ad4d2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T19:05:05.002Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "123683e35c780895ec6a53810d9d4c2f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T19:10:04.804Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "05e1c017a5ef00852405704be850b001", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T19:15:04.554Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "12d2b46ffc7d3e3ad14a4f220a4629da", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T19:20:04.384Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4147392e3814510abe2b6da584277689", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T19:20:04.384Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "44c7c5122dbf27d1bb75bd6a64d0a82c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T19:25:04.745Z", + "quantity": 80.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7e888d552e797830282f67aefde8e998", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T19:30:04.621Z", + "quantity": 39.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "dffc2d075c800a462873cd858cb1af24", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T19:35:07.332Z", + "quantity": 39.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f598b1c6c0bc34c0412939844bcec614", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T19:40:04.637Z", + "quantity": 39.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e0b6c05b02dc5c434a40598bffdf1d10", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T19:40:09.637Z", + "quantity": 74.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3ec81b18313ae1d86658b9eb4cdb7f6d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T19:45:04.442Z", + "quantity": 79.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "523a52b6bee5dc3f5cf3175a572422b9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T19:50:04.928Z", + "quantity": 83.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6fcd1ad2361a364cf1ded1fd4499a982", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T19:55:04.638Z", + "quantity": 88.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9f2cf48c158ada346b51bb37c6fc3dea", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T20:00:04.359Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a77433bf14f13114dc708a7267fadcc5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T20:05:04.288Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d29cfeff0d38e3329ec664e3d98e08fe", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T20:10:04.578Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8f246c451a70e972a032d1d3b76bab47", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T20:15:05.198Z", + "quantity": 81.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b4e9492ce280ced4ce4f6bbaebd3f8ae", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T20:20:05.218Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b103ffc3e29df57d7bd5c030bc85c99c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T20:25:04.661Z", + "quantity": 137.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0a9bf70f047534cf4fff4996bb1489bb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T20:30:04.392Z", + "quantity": 138.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ae605066424f2915568b23d29f5e657d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T20:35:04.731Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cfc84b261b2413219611140c529c6b98", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T20:40:05.06Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "dd94f7552ed4173df1f152d39008c61b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T20:45:04.401Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fd77bb172f131d662b48f5133fd6c3fe", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T20:50:05.194Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "aa5ec05b870703d544c5a59e549fa13d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T20:55:05.285Z", + "quantity": 142.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1434ce4230c3ffc24bd17c36b6ed17c9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T21:00:04.585Z", + "quantity": 144.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "55ed2742d2b0ebc291fd6b4866b95ded", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T21:05:04.606Z", + "quantity": 164.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "019642d73d2621f2797157dedfaec919", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T21:10:04.687Z", + "quantity": 171.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "33703b9aa99bf1db368b197acb706cd4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T21:15:05.446Z", + "quantity": 167.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "40c3e52f7c8d12604ce28f67bc875917", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T21:20:05.162Z", + "quantity": 150.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "74271056f269d87adb7bbc471641e428", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T21:20:05.162Z", + "quantity": 150.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d52004f7c18c9c44339c87cfe5d8fa10", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T21:25:05.372Z", + "quantity": 162.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "604dacc7a11ea5086f6c3c9eed5e565e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T21:30:05.052Z", + "quantity": 164.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1537914bf400667beb17ae4690e07d3d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T21:35:06.002Z", + "quantity": 183.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4a0600f2e056eb137b249aebaf483b4f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T21:40:07.6Z", + "quantity": 216.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "98a468ec72afc69bd38a314d6320dd3d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T21:45:04.846Z", + "quantity": 213.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1bfe4a79a4d65774ea47da5d458113ac", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T21:50:04.756Z", + "quantity": 207.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "461c6687f667d0594c51072b228b95ad", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T21:55:05.227Z", + "quantity": 211.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3d87b8a0ef20083e9047f8c949dbe9df", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T22:00:04.878Z", + "quantity": 214.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5d49628402d70b3b02dff9ca8a7e50bd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T22:05:05.212Z", + "quantity": 238.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4e4e72256a034dc6962594b004075d86", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T22:10:05.033Z", + "quantity": 235.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0ca8086e062c1ee414597c3dd3133378", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T22:15:05.615Z", + "quantity": 225.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "eab7d82c58728e421254865f1c367f59", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T22:20:04.633Z", + "quantity": 204.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1e87891a1fa508ee175280fc24565544", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T22:25:05.824Z", + "quantity": 209.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "14f865057ae2be9890b4dc31175fa95d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T22:30:05.066Z", + "quantity": 221.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5ad682c1c8682809806312f3b565fd07", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T22:35:05.194Z", + "quantity": 233.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5ae83e011760169829a0661f187e6bb6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T22:40:05.336Z", + "quantity": 260.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c1698916d8d1687da88eb6665c87e06c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T22:45:05.564Z", + "quantity": 293.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8576cf1581e95733f40ccd51adc9361e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T22:50:05.7Z", + "quantity": 277.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c218157057cc325ed2266e99d838b2e8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T22:55:05.305Z", + "quantity": 240.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ce6a6b64d7e5983fd08a198aed59e634", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T23:05:05.052Z", + "quantity": 202.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d51e9a117a6fcc9f2f685da76f230aed", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T23:10:05.517Z", + "quantity": 197.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a957c880d8686175c639bebbdc611d3c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T23:15:04.855Z", + "quantity": 202.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "52465616fa5ecad0f5197de0ae109a0e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T23:20:05.68Z", + "quantity": 210.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3afbd695b6cd9fb73b04d5b5be846e5b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T23:20:05.68Z", + "quantity": 210.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c30aa47901147b11d8e0ad267c20d01a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T23:25:05.409Z", + "quantity": 235.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a6aa5ad9cb1ea384c6696eaff4823c45", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T23:30:05.697Z", + "quantity": 255.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "94e1bc1c183bdba8dcb79cde1817f56e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T23:35:05.166Z", + "quantity": 255.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "50ef9eb6534eeca0026b3b5c6923706c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T23:40:06.306Z", + "quantity": 255.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2f2051890e74ff5c1dd037f5193e7e8f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T23:45:05.614Z", + "quantity": 253.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "62b9d689a7869597de26a122df6c0b65", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T23:50:05.579Z", + "quantity": 271.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b13c9e75d00b5fbd125c4051526dbd39", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-02T23:55:05.666Z", + "quantity": 289.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "23547e28abb0082493a57ce44bfeff63", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T00:00:05.494Z", + "quantity": 275.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "113cbb6fd9d1ecd0187a5983abe37ecd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T00:05:05.722Z", + "quantity": 269.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5f7fa18bf89968a0b21d0f8423105fc4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T00:10:05.353Z", + "quantity": 278.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "52534e351cc61a61ab696ead0cc9686c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T00:15:04.971Z", + "quantity": 284.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8b1c2fc65219f68d3afcf01b416afd07", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T00:20:05.96Z", + "quantity": 284.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "011357c16f925267970493fcefdfae8a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T00:25:05.67Z", + "quantity": 293.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d1dd520da40a4cd90c5380b3d74f7c88", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T00:30:05.47Z", + "quantity": 295.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ac2f23dad79e97f5d74ea5e286fe1b7a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T00:35:04.973Z", + "quantity": 298.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1d1f6b5d1549368799ad82c8eddc5731", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T00:40:05.271Z", + "quantity": 280.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "837bd980e5d64ef8c4af8e29096338ba", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T00:45:05.621Z", + "quantity": 271.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ef80d2b3746446d94af041af15cbfc44", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T00:50:05.826Z", + "quantity": 274.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a9f8e6805dcaef1b5e6b0a5134ed65d8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T00:55:05.782Z", + "quantity": 273.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "75bcd869f5629bb6a76ee08165fd81ed", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T01:00:05.632Z", + "quantity": 272.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a25e494a745a464637ec8a65fe8ba2ec", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T01:05:05.961Z", + "quantity": 263.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "52eb8922a74334d42f7bf9b43c12c8d0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T01:10:05.398Z", + "quantity": 267.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9ec2b912899aa89a9cb16d1835c6a010", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T01:15:05.73Z", + "quantity": 239.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c2fb554de3eee668fdfd2e00c521ac60", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T01:20:05.597Z", + "quantity": 232.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b842743999b3037bf030235e7acb7ed6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T01:20:05.597Z", + "quantity": 232.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1509fcc390cb579e9b6fffc23db4e66f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T01:25:05.854Z", + "quantity": 249.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8bb5484e98e5b93e0b51254239b63166", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T01:30:05.573Z", + "quantity": 262.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "08c5b1de17e18596197461dec3904dee", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T01:35:05.62Z", + "quantity": 247.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9fa94bb0282b87ea7b896ff5b1ff9f1d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T01:40:06.594Z", + "quantity": 232.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5dd4f84ad9c53df8917cac15a8bbb88f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T01:45:05.662Z", + "quantity": 222.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bc8cda4979eae07b6a3224b9cff2c375", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T01:50:05.485Z", + "quantity": 215.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5d72d9569e62167930ed9185391f5c28", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T01:55:05.823Z", + "quantity": 231.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a48c81d7586ba4e00e4b8d5f7e5445c7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T02:00:05.669Z", + "quantity": 216.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "94e7f54197cb16e8878f5d3020bf1e35", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T02:05:06.089Z", + "quantity": 199.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f2ae76ba15f26d5516b8aa47c5af74dc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T02:10:05.797Z", + "quantity": 198.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d4e076320418b89fbe50485214768168", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T02:15:05.326Z", + "quantity": 188.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2cb70aa10fc25170b0b93ff79f18b219", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T02:20:05.696Z", + "quantity": 199.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c3abb3f3f465045408518119853f9074", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T02:25:06.287Z", + "quantity": 196.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fd37aa7a3243542d610f49174cd860d9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T02:30:05.674Z", + "quantity": 181.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3d71fb23f0f83031019ce924e470b591", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T02:35:06.143Z", + "quantity": 172.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5157a2f0af3388fd8f3d1824bba79f5a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T02:40:05.806Z", + "quantity": 156.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a54c0208b2e9c1f26e701b2a39091fdb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T02:40:11.806Z", + "quantity": 127.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c1bb8de60c8e0908e98f1088a5bd6e49", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T02:45:05.889Z", + "quantity": 126.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0bdabab68722b44edcc630a7afa4c304", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T02:50:05.402Z", + "quantity": 146.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "483f103307be9a2d84002b6dcb12adc4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T02:55:05.592Z", + "quantity": 148.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ea40af20a3704eb3ae59f4353e2955a0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T03:00:05.52Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b6e9401d01ab6908938e63ac3eb2e6a7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T03:05:06.369Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "050b080b0245f80ac56ab686a339ba51", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T03:10:05.54Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "27b8240180bd70125946fbd66ba00180", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T03:15:06.178Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "81c1db9c8976935ffe5a60a29a2c6ab6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T03:20:05.729Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f83d4d7cd91ad71d690620cb8cb164f9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T03:20:05.729Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "814d0dd17b7f5629aa4fa04f962ea2a2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T03:25:05.759Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "aa222c17df8015c170dc3bebdd082a6b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T03:30:06.33Z", + "quantity": 82.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bc921fa00e9110956b248a4b8a65cc8d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T03:35:06.34Z", + "quantity": 78.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6db71cd1e07b757561225ae2dee090b5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T03:40:05.996Z", + "quantity": 87.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e7a0db71bdc4874ac87923772b796fe2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T03:45:10.529Z", + "quantity": 85.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "889451e80652cc1bb4536e8ecdcb754e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T03:50:06.286Z", + "quantity": 85.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "eb05dcea89cd500302e526802dc32547", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T03:55:06.563Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "22fcd86834cde4b2cace0436fbcb5906", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T04:00:06.174Z", + "quantity": 85.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "030e4688ad1f2ac163a1f6c07e10a500", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T04:05:06.115Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c252c457311cf3e0f40f03cc00872f78", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T04:10:05.806Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "890c4d847c164813f985b628a62305b1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T04:15:06.137Z", + "quantity": 63.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "aef0dfd4c74f68af0921668fd052113f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T04:20:06.419Z", + "quantity": 67.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6345e60ecc3df2ef62c09968a5205d2e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T04:25:05.64Z", + "quantity": 76.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "796788b0ee02ec9bb2a34fb2a0b85ee3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T04:30:06.081Z", + "quantity": 76.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a8d05dc9fd55a447e31cb2666c45adfe", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T04:35:06.232Z", + "quantity": 76.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4a5974148d47a195f0083dc065561f9b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T04:40:06.701Z", + "quantity": 72.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "75340a712746c46634287cbc8bdf96b3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T04:45:06.283Z", + "quantity": 74.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "28386f1d2389972dd273a38712ef2195", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T04:50:05.974Z", + "quantity": 66.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3c160dff28731dc91ca29e34ce5ee1fc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T04:55:06.666Z", + "quantity": 74.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "84e4db0419a0f4b5e27039a2c4c4a1c9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T05:00:06.147Z", + "quantity": 84.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "05078fdcf7f74b65408695ed0b0e8ff0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T05:05:06.619Z", + "quantity": 65.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4754613ecdd612aa12fd93201b8545f0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T05:10:06.29Z", + "quantity": 68.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1d34d451b25a68a40c85bea08c3ee92e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T05:15:06.252Z", + "quantity": 66.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e3a02a481ab95d3be4fb1fc61db42a71", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T05:20:05.952Z", + "quantity": 72.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1fea65c975b95b56c9e996923dd4638f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T05:25:06.263Z", + "quantity": 83.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ff31cb333d0081b7e22e6a84e2d2f632", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T05:30:05.894Z", + "quantity": 75.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "495057d9b918840f5f79e28dfd261f90", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T05:30:05.894Z", + "quantity": 75.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3675d45836f095a230eba449dba156d9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T05:35:06.406Z", + "quantity": 71.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d01583330ad3b629505bb4505f70b231", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T05:40:06.703Z", + "quantity": 78.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f7d8d7a09c5ba7ffc8f8f406aa16f690", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T05:45:07.447Z", + "quantity": 69.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cdc276ab7e224ea3b42082c9c6b8175d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T05:50:05.952Z", + "quantity": 88.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8a80d67a1da29dcdc2183016d0aabafc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T05:55:06.831Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "790cc2a949cf163b6ee1ad1eead17dab", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T06:00:06.754Z", + "quantity": 76.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c42f9126c2f454479bced77bb6b17dec", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T06:05:06.284Z", + "quantity": 70.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "48b65be315cdf50d3ccb92b9314791ed", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T06:10:06.36Z", + "quantity": 78.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cc5a46501fd45ef406466e21f1009da5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T06:15:06.411Z", + "quantity": 86.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1b4fe00e2a64caaa29ce322952470693", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T06:20:06.521Z", + "quantity": 87.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "979469b2578613810ef83848e009ae04", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T06:25:06.152Z", + "quantity": 88.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b82b08816ec66578ef03998305229b2f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T06:30:06.53Z", + "quantity": 88.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "18da014650a6df300e9da29a03c87bfa", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T06:35:06.549Z", + "quantity": 89.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "19e07729123e54907374acde233b47d0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T06:40:06.636Z", + "quantity": 88.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5585f9f447dee438493da0791ab651b5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T06:45:06.376Z", + "quantity": 89.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0ed3ec10fad19b6a90de4121ad5ca66f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T06:50:06.486Z", + "quantity": 89.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "39aeee1d4f45c1d869ee43e63c7757e9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T06:55:06.587Z", + "quantity": 88.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "56c078ce41435d4c42dc06247702e56c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T07:00:06.776Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b8898768ff6b542d57d5b150fa301742", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T07:05:06.968Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d9fa4ced7f4b069a6a79235109354b20", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T07:10:06.909Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6d2b99a9f8a18037d7b2c8189558fb3a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T07:15:06.298Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "85bdb0e2d3b37ec189fcf1450290a5b3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T07:20:07.019Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4c455501835f26fe2872db4e94e8611e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T07:25:06.897Z", + "quantity": 89.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f263d658add452c6e25052f1ce7ddc12", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T07:30:06.364Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ef28e8891fd8666178043afd03f14384", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T07:35:07.292Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5514c3669bc15bf48c5b193d9cca92ff", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T07:40:06.491Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "24d28711f2e98be8accec5ba1f029c7d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T07:40:06.491Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "47b2bc539d13eef7b94b025e9a999695", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T07:45:06.399Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "931640efb8635f45e71ea71427c9706d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T07:50:08.338Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "995cf66dc9be73f423c7ecfdb0dca00e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T07:55:06.962Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5abdbd81bf2aa080bac7ea4c1d504425", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T08:00:06.97Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fa708fea86d1376b5581e9fce32c0bc9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T08:05:06.591Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6ed62b8f4061f0ba7305b873796cd708", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T08:10:07.154Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "997fe8a9f87865953084f7520e5746ba", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T08:15:06.614Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ca6287214e96eb665142305f8f0ec3e4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T08:20:06.526Z", + "quantity": 86.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e0fa45491cc1176181bd9b645ac33ebe", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T08:25:07.143Z", + "quantity": 90.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7d07e9154e39ce149265bef86ac5df9d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T08:30:06.992Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fc149f981f78b63900b2067a921d7c07", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T08:35:06.357Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "52179dae70d7cca17e144004e4892c74", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T08:40:06.564Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0e285b8ee344b7400d762bb62b2dae2f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T08:45:07.145Z", + "quantity": 83.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "855fec9fe3d5653b767cbe03aac9e253", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T08:50:07.051Z", + "quantity": 84.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0177e1b045dec3c627901246e102b2ce", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T08:55:07.038Z", + "quantity": 84.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b3c54a9e72f640f7d921d80020abddf8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T09:00:06.516Z", + "quantity": 89.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4b7d687270cfbe3bb64918e01b403b31", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T09:05:06.95Z", + "quantity": 76.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2197182b64bebd12e0154ff341f771f7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T09:10:06.435Z", + "quantity": 84.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d20d41f7cf842d74812af5999515bcd4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T09:15:07.033Z", + "quantity": 77.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1b7fbc5a54a96caa5090bc62f7f42b26", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T09:20:06.892Z", + "quantity": 66.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ded9faed4ee88a95181ccf7e578a75f1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T09:25:06.447Z", + "quantity": 75.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c163a20c0d5326360e46f82dadf66495", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T09:30:06.914Z", + "quantity": 75.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6523521406bfb9423a12dcce5555c43b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T09:35:07.351Z", + "quantity": 80.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d01a4725841fe051c0a5e18c0bffac51", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T09:40:06.672Z", + "quantity": 85.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "335c4fc51544f0bc2238b93d95b176dc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T09:45:07.087Z", + "quantity": 88.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9ecc2f9ada8d6a1b52edab5f47f159f5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T09:50:06.804Z", + "quantity": 89.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "16e08089675f4dd12aba68af0051b619", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T09:50:06.804Z", + "quantity": 89.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b1d22334dfb3e7db839497ce29d31107", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T09:55:08.474Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3e023661d847238567b95bb08697c2af", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T10:00:06.977Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ac45d151ba402a7056355f5256eaa69d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T10:05:07.403Z", + "quantity": 90.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1482211da92455c41a756625540b2ea4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T10:10:07.233Z", + "quantity": 77.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d6ba9c0df5ba42a6014731ae11fdb711", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T10:15:06.636Z", + "quantity": 74.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "580822c307e69dadd9d5dda9ea54257c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T10:20:06.915Z", + "quantity": 75.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "957b6b8e19bcf28eca6202f901ef6391", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T10:25:07.544Z", + "quantity": 87.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "958eab535849d06fe5cd4064daf09993", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T10:30:07.463Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "be7f90fe4e253c59e514d97b4ec1781a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T10:35:07.091Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b0322704255015ff99837ecb156ed8d2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T10:40:07.021Z", + "quantity": 79.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cd3cfda2b867d001d2eb197ef148bdf4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T10:45:06.799Z", + "quantity": 89.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9cb42390c1063ca26dd9921269607125", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T10:50:07.612Z", + "quantity": 87.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cb294ac9d716b6b4089c81b26a0a0a35", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T10:55:06.97Z", + "quantity": 88.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e0a17e61984532ecce635d84ba19463c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T11:00:07.238Z", + "quantity": 91.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "95085dcf93a7a53dfab3c02ce26f4a8c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T11:05:07.705Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "784c217e11a78617f7073c85beac8ba1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T11:10:07.271Z", + "quantity": 87.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "adb716e853d77319f690ad8e84626cd1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T11:15:07.37Z", + "quantity": 75.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d8aaee9a0b9ebf5650800df63c2f2328", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T11:20:07.159Z", + "quantity": 79.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7294f127dc9e0b5bfc0e3075862155f8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T11:25:06.86Z", + "quantity": 85.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c96db94fc2d447ac954b7eca339b6a80", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T11:30:07.716Z", + "quantity": 91.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4217ae001f45f441cc7e9eb384ecf682", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T11:35:06.854Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1cc834822f9ee9177a385a2ed2f95f5d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T11:40:07.165Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4fbe90bd545bc64a37abe68ceab88806", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T11:45:07.477Z", + "quantity": 86.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "38a49a3d8e87677587e1cc6603bde4aa", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T11:50:07.244Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e0bae1ebcd1185188fc8299c2dc83b7d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T11:50:07.244Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9fa324a254f71d79ea8aaebdaff7f9cf", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T11:55:07.165Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e77aaee2ef283b9173ea97f635285c11", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T12:00:08.452Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0ebbb270ad06655d71c7b4ee4e4cefcb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T12:05:07.357Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2ac70642d6f6a67d9a4291b09234a4ed", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T12:10:06.953Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "14019338bf346e13afadd6738fc75a79", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T12:15:07.511Z", + "quantity": 83.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7612e3814ac3f78545afc0d32ccdbf77", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T12:20:07.555Z", + "quantity": 91.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "dd5c8628a3f889d964368101caf34016", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T12:25:07.612Z", + "quantity": 82.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "013d63e3a7507165b381ef8bf8bd06a4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T12:30:07.38Z", + "quantity": 73.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "798c539e3fbe7955aa53ddf8742b94be", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T12:35:07.729Z", + "quantity": 78.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3ebe093a3ec6d4392e4e7cb396d7d651", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T12:40:07.796Z", + "quantity": 82.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2668a95382f5ef4e469bda4164d39fc0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T12:45:07.054Z", + "quantity": 84.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "204ee80c6ae6a294cc2340eb39cc55fb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T12:50:07.482Z", + "quantity": 84.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "acfe76d14b095313d2f3c751d9334fb8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T12:55:07.75Z", + "quantity": 80.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c9cec5b989eb9660d5738baebec94db7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T13:00:07.375Z", + "quantity": 77.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "128589a00dca6670a1d953230ea2a11b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T13:05:08.141Z", + "quantity": 62.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8198436e8fafa10bd5da09c1696c2738", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T13:10:07.408Z", + "quantity": 71.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7245e5c0399c06fe5a7e03aff3c6c297", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T13:15:08.014Z", + "quantity": 82.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4d9cfd525873f8e57cd4fb1c95bb508b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T13:20:07.968Z", + "quantity": 86.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ac75047d34595304b2581fb48e2728bd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T13:25:07.372Z", + "quantity": 80.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "346cb9e4e78c2abcfd398c0991906505", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T13:30:07.222Z", + "quantity": 74.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7cbc9c0013434669212d3cbfed79bcfd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T13:35:07.259Z", + "quantity": 86.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9cf097916a9b4338c9bbcbcc1c39b0c5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T13:40:07.911Z", + "quantity": 91.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e4631a6b8b6fdf2299951a0eb8b70cd4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T13:40:07.911Z", + "quantity": 91.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d05c21dcfd7d2e522348de967350fe1d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T13:45:07.691Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2cc6590f6fe3858131f2f816ff5534fd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T13:50:07.813Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a47004e9f47c27a6705d89fded1db760", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T13:55:08.113Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b05054c1c795816b7fcf4eb4f8037119", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T14:00:09.238Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "04dd9fe4071f3c692db2c6addb6212f0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T14:05:07.479Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3f1691d4e9b51e24fbe7469b1d1535e9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T14:10:07.244Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d994b1ddf1a6149a23c03dc68e74f854", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T14:15:08.175Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5432ac313aedb9a9e691cdf6d39f8ef9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T14:20:07.995Z", + "quantity": 91.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5d1de6b7b5b1f0bfa9ef35e2cea69809", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T14:20:15.995Z", + "quantity": 89.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "861317154f394fd01aa49e1cf546aa3c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T14:25:07.406Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5dbb611fd3650b50411dfb987de2f1ce", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T14:30:08.222Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1f015915802262e550c525270a3aed73", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T14:35:08.269Z", + "quantity": 89.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5263203e23fd84d061bacff373c80328", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T14:40:07.935Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e8d0c13390dc4141a64431ad482f96f8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T14:45:08.033Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e2f3e77090b09e62e93e1243247f3e3e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T14:50:08.069Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "60ddefe49f68d608c5afc9a355d686d9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T14:55:08.119Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ba0000e84edb73ac42202f3cdcf2bf62", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T15:00:08.259Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2f6886bf4223a266effef34ef841c1a9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T15:05:07.531Z", + "quantity": 120.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "842f2b2aaa7f5464167ac2b2ac126512", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T15:10:07.626Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "27c797f776aa1b84b2cffd63f543aeb9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T15:15:08.287Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ede8a76dd354f4e57e26ee76a2d3185f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T15:20:07.487Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "49baeea255d306442ac96dc18d71cb09", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T15:25:08.372Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "13b8b839c9e616c478893671e1ee16fb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T15:30:07.631Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c983cb411729ab0c1ba1d42811d0ec1b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T15:30:07.631Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "467d5932291128fe58bc4c3b8f39c8eb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T15:35:07.495Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ab87d59c8a42f1f74d5b0600a75446e9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T15:40:08.423Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b8943b2a75e53bea7b9a9608a8b60ca7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T15:45:08.299Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b2e83e91bd94a9ec7749353213398be6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T15:50:08.142Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "747c27ecebb53ea4d18e6e4c6690f1ae", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T15:55:07.909Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6afb33b8d94ece8ec1ed3f5ae8ecedcb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T16:00:08.935Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9e37c63913f32ad11aae31feb0e8158d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T16:05:08.257Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "33df1f3355ef92133fb5ab85276826d8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T16:10:08.624Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "30889471efed168c8a83628b6bbf0416", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T16:15:08.53Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "44d395da9f0f20ec24566259cb19a9d1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T16:20:08.068Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "accd9a30494632257c1c169401081e5d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T16:25:08.296Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ec39f5fdfffbe378aece5c4c36f369a2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T16:30:08.516Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "256780f9e57d5f9c4f712a284e03ace8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T16:35:08.588Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6a68141641e69ae8fd4273f268784bcf", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T16:40:08.657Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "07d3be1cf7b8e4e4638dc7215cc04412", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T16:45:08.25Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "dc5ee86dfc4e950a47f19388280230e6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T16:50:08.381Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "21b9918881eaca3f263bd29f76f775c7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T16:55:08.448Z", + "quantity": 118.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f622f007e76849756af136d631695540", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T17:00:08.401Z", + "quantity": 118.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b868b8386b39846f61f68380daba0202", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T17:05:08.485Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0a695218f84adce123bc3e30509223a0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T17:10:08.414Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d4f865d67c28f2e81390387d0feacb66", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T17:15:07.962Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "be4328578cadedce87ac14621cfd94af", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T17:20:08.334Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8bd4eaff1f3226caf3dad07b86c42b96", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T17:25:08.725Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c75bf170d802cef13370f3e9073445b6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T17:25:08.725Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5276b74d6e3181212da840e4100753c8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T17:30:08.153Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5d3e98c4aaf443876d1aed24abebd019", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T17:35:08.054Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "11ad2433e1fd9dab5962e436adc1c227", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T17:40:08.052Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "11ca0063438e42bba4c3886d6d3a2c7e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T17:45:07.875Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6261a57effddf102b8e6ad0ac72c61fb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T17:50:08.351Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "dbb1114fbb9ce66690ebf4b72427006f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T17:55:07.992Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f416d80074c7f255f05a76b3b733da25", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T18:00:09.442Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3117fe5eb00775c71883cb3a64f89eb0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T18:05:08.833Z", + "quantity": 121.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "573a785e726840ad7e1f3d4e8e8e7c7a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T18:10:08.267Z", + "quantity": 130.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2fa4d7edcbd0a7d06215fab25234e14c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T18:15:08.087Z", + "quantity": 134.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "247e367fa21c5a0202810a5422d06049", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T18:20:08.33Z", + "quantity": 126.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8303f2353ea23468d79bf3d00b003e38", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T18:25:07.981Z", + "quantity": 126.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3455f19d4d278db94f3972ec272c678e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T18:30:08.323Z", + "quantity": 120.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0e505e6f31a13dbd6da9f0dbbbfb6de7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T18:35:08.464Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cf14672a321b65b8f9cf0ee699947eb0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T18:40:08.224Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "98720a5efc094b983f1a0085a71f7865", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T18:45:08.613Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c3619abecd9ce1161721ffbceeae6dcc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T18:50:08.574Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1255011dadae2a25e3c548f91bc0de9e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T18:55:08.317Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7cd708d7855f3c7c9e3a801c3c49eb94", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T19:00:08.217Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f38452672a5e99fc92b3a1093724dbc4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T19:05:08.945Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "87ea545bbbe1b1e71ac955d457c71f9b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T19:10:08.536Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "07314f51cfa7196a64ebc67ae521d3c9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T19:15:08.487Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f080e6bcf88b672bf52d773ba2c55626", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T19:20:08.676Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "09e7e6ef5bd4d1c8dec94aad67e7eabd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T19:25:08.545Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "caf7197b02110be6b34da9ca2dba5b67", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T19:30:08.723Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cb7a9655b055a73888fead109f364c1f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T19:30:08.723Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4b1a45dccdbb3b89bd75ebdf35bcc9b5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T19:35:08.889Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bab85d286d924d63cab416ac92699576", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T19:40:08.499Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "97510b0a40b96c6261a48ddfd0776e26", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T19:45:09.087Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9fdc3b5a3a56119408858515fbae59a2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T19:50:08.808Z", + "quantity": 123.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ae22c925308fda5b98115a83000367d8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T19:55:09.129Z", + "quantity": 125.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9a89127b7a8998d71c6228ca03d3d621", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T20:00:08.936Z", + "quantity": 125.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0199e3d7ba2bf327390dd3ab5dc79679", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T20:05:09.398Z", + "quantity": 134.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c2cac61ddbb513ecc122eddfcd56c727", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T20:10:08.31Z", + "quantity": 137.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "17d88728332646e4a015cb8f7834c901", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T20:15:08.909Z", + "quantity": 143.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "956e3d282012c22c272dc78c98e9df2a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T20:20:08.489Z", + "quantity": 143.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "07a737bae0c95324184740616e108cfd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T20:25:09.059Z", + "quantity": 144.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "566b8b1ed52e906c612bd4f2ec0762d2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T20:30:08.696Z", + "quantity": 143.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9f4e5c5a7f336fe4c9503991c0ec364c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T20:35:08.981Z", + "quantity": 142.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c4f71fc258efee87aea7558e43af4fcf", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T20:40:09.082Z", + "quantity": 139.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e6644281279ba91bcc69d48964605fbf", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T20:45:08.419Z", + "quantity": 140.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d57dac1e8a79871eced2068313a94f06", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T20:50:08.39Z", + "quantity": 135.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8a0cf5de70fec0f2541690def0ec8aac", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T20:55:08.711Z", + "quantity": 132.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "56596143ca1bd7de8e8303f2dc1d0b71", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T21:00:08.604Z", + "quantity": 135.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5b89a608db05e578819e728a85153567", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T21:05:08.994Z", + "quantity": 132.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9dfed51a0091dd1d38f6573646a31af1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T21:10:08.784Z", + "quantity": 132.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ab68acabd112fb698294744843c31cbb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T21:15:08.448Z", + "quantity": 129.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d8370f7b40a67ac530fd9dd83fbac142", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T21:15:08.448Z", + "quantity": 129.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "64e14c0a56cea93794bc0548c85e49e2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T21:20:09.314Z", + "quantity": 130.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "eaadaece4c31f72903069e958ded932e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T21:25:09.731Z", + "quantity": 132.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "87a474f807500eaa189e89f25fd17521", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T21:30:09.566Z", + "quantity": 134.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "910c87ba817a1f58a2ec54b1b5e6fbe6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T21:35:09.566Z", + "quantity": 136.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f0fbde33c042f8dc77127557c2a4a25a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T21:40:08.9Z", + "quantity": 134.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4fa1013fa1a911f48a5eb92dd96575e7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T21:45:08.9Z", + "quantity": 129.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d00d7536002175075606b9949ca31fd8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T21:50:08.9Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3e5ae1d471f27230eedeafb53c9f4353", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T21:55:09.36Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2b70fa617b2d7cfcbc63bfe106795ece", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T22:00:08.979Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "313148a01b91e1ebf313bf38c2e93579", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T22:05:09.438Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "702ce34d1a315618ad444f87ef48375f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T22:10:10.797Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cfbee919725221f7a629896f6ea60928", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T22:15:09.505Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6908ff0fa3db31f78bf222fc94b4df2d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T22:20:09.297Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5149ddc23e8584fcc88dcc6676e3e056", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T22:25:09.28Z", + "quantity": 118.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ae74f8849480ec1ee57d2b921f9b6723", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T22:30:09.161Z", + "quantity": 129.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "dcc09fe5ea83a3f171762fb17a49fdbb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T22:35:09.584Z", + "quantity": 141.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "143870bdb13666a613cdfe061fddde8a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T22:40:09.117Z", + "quantity": 145.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cb16124c11e3f2d5e0255ee4ee84a580", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T22:45:09.056Z", + "quantity": 150.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5943be63b3c7514078cc372bb63aeb52", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T22:50:08.977Z", + "quantity": 155.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3ab5d579b5c8c6fe1ba4ef38934658d5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T22:55:09.605Z", + "quantity": 155.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "985974dcdaeeb3a6c8afa28ceff73926", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T23:00:09.746Z", + "quantity": 149.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "49333b7bd4630f0deea04f684938bad9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T23:05:09.51Z", + "quantity": 142.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e4213f8cdca7ae71059f7636b23e8e11", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T23:10:09.51Z", + "quantity": 132.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3be7d358f94e7eebacef596e8a805770", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T23:15:08.943Z", + "quantity": 127.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7abcd2f34d4d2a9e08902b874a23f5fa", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T23:15:08.943Z", + "quantity": 127.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "28b565d5c544cd1e0434fcb7d731d8d3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T23:20:08.845Z", + "quantity": 123.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "42486e348188588a5abfee2d33f33f17", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T23:25:09.716Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f7053bcd606e73ccf49a858a38ea1a1f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T23:30:09.071Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2c92eff2472e35ed0c8633eab0843cd5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T23:35:09.587Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bc9e1764a09cd0866fcd36931527a23d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T23:40:09.379Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7bb1291ada90fe348f847bfc657481cf", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T23:45:09.511Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5ca40b2eec72ecfef704408cbbfd3d26", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T23:50:08.824Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b496398012bc95849cb20b7986064684", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-03T23:55:09.964Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9ca7270273573d10151de78e8b607d3d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T00:00:09.044Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4ea257e191ebea21d5b2e6bf112c325f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T00:05:09.177Z", + "quantity": 89.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0ebda58155633b9b921b31806901dbf2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T00:10:10.947Z", + "quantity": 87.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2efcb688cdd4d6dc6373b53f945356e9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T00:15:09.796Z", + "quantity": 84.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ca726f6b375c12d907df11da742c923d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T00:20:09.105Z", + "quantity": 87.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0018c43879e6e4064ce8b4d8b05c7bf3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T00:25:09.651Z", + "quantity": 89.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b76be3c71d84c26209c60a1f4c379b37", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T00:30:09.689Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6382445736d5ba8c6fe4cca88e21ce60", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T00:35:09.641Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bea1c562779698ac6cabd8fc007921f1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T00:40:09.529Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f8c2f8d9f805f05a2aca23ae328ca6e2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T00:45:09.421Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6e931835c4a98d6d8d37cb665e58aa89", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T00:50:09.712Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c3f76bbd3b37635035a2619ad7ff7d98", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T00:55:09.252Z", + "quantity": 118.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "09f73574194016c295c5bf2978ca44fd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T01:00:09.406Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2a3939e28372be93c787d297be329c14", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T01:05:09.617Z", + "quantity": 118.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "044c1214b6fc5f81f600cc34b2b98326", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T01:10:09.882Z", + "quantity": 121.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ca9d0ad1e6971161e78e0fe7fcd4551f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T01:15:09.621Z", + "quantity": 120.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "750ae472837bc3864837289793c4dece", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T01:20:09.695Z", + "quantity": 121.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "daf6e8a9a4688827044630a960a62b73", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T01:25:09.359Z", + "quantity": 120.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "559b25786066df081b4bd02c1545c026", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T01:30:10.07Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e30f27d4343d9ca8eb243bd8d62aaaec", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T01:30:10.07Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "401416752d03048c02ba3ac1f44abede", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T01:35:10.085Z", + "quantity": 118.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a93932728340fb9c0d948330fb8e8dd9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T01:40:09.496Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "457f753c4a1e2d6baaa41c183e6d59c1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T01:45:09.551Z", + "quantity": 120.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "720a5170fdd6615b5111f1638b1d4a1d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T01:50:10.22Z", + "quantity": 123.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a52a4e18d4685fdaa2767ae9024f5b14", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T01:55:09.823Z", + "quantity": 125.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "aa16da8b713ceb70865f6d28e850ddc2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T02:00:09.716Z", + "quantity": 131.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "71fd0562997a29096db604987d03176a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T02:05:09.976Z", + "quantity": 131.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8990196e68f73457ba5e592d08bdd81c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T02:10:10.811Z", + "quantity": 134.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1ad34d80d86b630b0ca4a42df136cf5b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T02:15:09.434Z", + "quantity": 131.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1a925b820e305d0ea9f37dd985714d6c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T02:20:09.674Z", + "quantity": 133.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1ef2bc481302c91f59a2e3945b0c5fc9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T02:25:10.036Z", + "quantity": 133.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3a84dde3da9fdbbaa365911210e0de25", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T02:30:09.557Z", + "quantity": 136.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "697e8b46a7cd76d8a6ee05d768bc211e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T02:35:09.533Z", + "quantity": 139.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "49126f768d07e71a3e84384d529727cd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T02:40:09.645Z", + "quantity": 143.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "dc00004858fdfeb06dcf6920ee68fb85", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T02:45:10.236Z", + "quantity": 140.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1373766ae658bf9dab67ca45cfb13879", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T02:50:10.185Z", + "quantity": 136.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "33a49fe95ac955717082ecd53e11ff52", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T02:55:09.785Z", + "quantity": 144.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6f2899ea72a9f7d75609677015211105", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T03:00:10.293Z", + "quantity": 149.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "28b10837f7e85e68e32bf8929a85e799", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T03:05:09.688Z", + "quantity": 137.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e48ffba1130283d6667c668afcfd44d7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T03:10:09.82Z", + "quantity": 135.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "99c94f5a571876db3ebfa92ba9415667", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T03:15:10.513Z", + "quantity": 147.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "59c959344481a0644e8314edcd97e379", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T03:20:09.501Z", + "quantity": 153.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "aadcd0ed8e9e38de641b61b08a37579b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T03:25:10.07Z", + "quantity": 159.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "70869b6d3f540240e63529cfd9e6e6f0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T03:30:10.53Z", + "quantity": 157.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "61c5757c0fcb618cd4775d2b7ce6dc51", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T03:30:10.53Z", + "quantity": 157.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fe07a29a90d19db878acf8a162dd250d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T03:35:10.08Z", + "quantity": 157.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f911a057039345d70b27ae51e53a9c8a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T03:40:10.029Z", + "quantity": 162.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d59c85a0dc03fa9ffcac349659e73b17", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T03:45:09.598Z", + "quantity": 157.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "351f77f0f32a7c0850711fd998d690bc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T03:50:10.425Z", + "quantity": 150.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "161dc832c4426965cd81aee055f2bbb1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T03:55:10.425Z", + "quantity": 143.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8346d00e078deab41276c3c4f7b079d0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T04:00:09.683Z", + "quantity": 142.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ec7a482777b16454f5edb5229499756e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T04:05:10.275Z", + "quantity": 137.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4f383815d34ab48aec0e00a81ed03f08", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T04:10:10.109Z", + "quantity": 130.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "091b076a421ed5258a7bf76db789394b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T04:15:11.471Z", + "quantity": 129.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a241e87a96899fbcc183d2cfb5e456c8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T04:20:10.031Z", + "quantity": 134.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "29f02d71bf53a5561f43307f03efab1f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T04:25:10.524Z", + "quantity": 138.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f2865d9f1000bfb81e787089671747a2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T04:30:10.435Z", + "quantity": 128.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a86c5935ff3444de36fcba3d3377981e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T04:35:10.464Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6d3cbd40cd3bd3c885d2ed02ea40e548", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T04:40:10.173Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "31d2f13d14d6f737248def3da5f39f84", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T04:45:09.693Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ddafdea483e261fc53a0c9e00d43f2bf", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T04:50:10.115Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b86503472d83b7771511077f7c2c5e02", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T04:55:09.907Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7c2dd485beba7fbd10f680c44d50ffb8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T05:00:10.51Z", + "quantity": 121.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "78f0e6501c3995b6fc011ca9c7f08b01", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T05:05:10.146Z", + "quantity": 121.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e171319f2264b5a2e307a13f1f44f1fe", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T05:10:09.907Z", + "quantity": 121.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "48cf4c9fa3b1f28f5bfda161a792fe72", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T05:15:09.787Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "121391a67220f3606cf79d3ad47cbcd9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T05:20:10.389Z", + "quantity": 118.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "10dddf76a4eb198f024f8f36ba37d100", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T05:25:10.77Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1742c99e955721bbb269a8f4780112e8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T05:30:10.55Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "755ddb032860dc1476c3c21deaae15b0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T05:30:10.55Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3e4869d7cd1821b21c9cc86b558ff1d0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T05:35:10.457Z", + "quantity": 124.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6dba0cdac6d2f06ca71fa6f48d645f78", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T05:40:09.904Z", + "quantity": 127.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a0f91d2dfa7508d9d1fd67713f7b60c5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T05:45:09.868Z", + "quantity": 129.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5ee3e825c07972059923fb9dcfa8faf9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T05:50:09.917Z", + "quantity": 134.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "df183724e8901b730ba8a301fb56a4da", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T05:55:10.389Z", + "quantity": 135.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "04c377e22a7ff573ccc73a4ba939acd2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T06:00:10.195Z", + "quantity": 142.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "705e7b65c248f9eac6ba0d76a649277b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T06:05:10.796Z", + "quantity": 141.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8d399129f612cfc63ba4aff93e59b953", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T06:10:10.124Z", + "quantity": 137.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "eb4cadea2d720ba916e98556186e1231", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T06:15:11.55Z", + "quantity": 139.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2adc016cc1c40adccf270038145ffd24", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T06:20:10.592Z", + "quantity": 135.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5592b852e19e1fc3454022f0c42d1685", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T06:25:10.576Z", + "quantity": 131.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f9a9404b5c084b0189c5936f705dcabb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T06:30:10.698Z", + "quantity": 132.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "006ef1207a1bee0b9b3045e4b1c338a5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T06:35:10.378Z", + "quantity": 135.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "147a4bfc3ad31d43d7aca614fd299673", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T06:40:10.719Z", + "quantity": 137.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fe221c97d17fd079c0bd2a6b99707458", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T06:45:10.591Z", + "quantity": 138.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f0cf9c4e54a29d0bd3d49648947eca1d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T06:50:10.992Z", + "quantity": 138.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "41525f10dd0461debf7e8a7a011e1247", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T06:55:10.994Z", + "quantity": 133.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cd1e88bf9959bf25db0285e6a26bf566", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T07:00:10.742Z", + "quantity": 130.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "61d2f6fe5d679f5cb0297ad2f63470cc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T07:05:10.431Z", + "quantity": 128.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "023de22a155a36437ec83bb11573a8ae", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T07:10:10.529Z", + "quantity": 127.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a25fdd047258a7493bbbcfb469d95442", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T07:15:10.149Z", + "quantity": 125.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2504bb8448cc215d0b663df233421cbb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T07:20:11.02Z", + "quantity": 123.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5d2ad11154774eff5c5d30bc090fb629", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T07:20:11.02Z", + "quantity": 123.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a138adda327d67b4f73d906500709a99", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T07:25:10.659Z", + "quantity": 124.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2e9b8de5550140ddaabfe9c610254ad2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T07:30:10.759Z", + "quantity": 125.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e301a3f148f8487aebb138cb5080a0be", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T07:35:10.168Z", + "quantity": 125.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "617bf1570e02f70aa8d2f6c3da6f1c5e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T07:40:10.538Z", + "quantity": 124.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b01cbeff02d90f943afd9aa4e0a99f00", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T07:45:10.517Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "11fa5ee511db0cb6362a9615695f2e85", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T07:50:10.491Z", + "quantity": 120.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9c6498185d8b4283c0fa005679b47b92", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T07:55:11.459Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d9cad7aa22d67b9fcb1c3e13f1fa7b8a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T08:00:10.949Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d57a0d0066a49a2f39d030c844f84c1b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T08:05:10.691Z", + "quantity": 120.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bfa72dd466ba4379be9510f08b6cf0c8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T08:10:10.733Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "392d308405e94d84a3162c59f7fe9fc0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T08:15:12.025Z", + "quantity": 125.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "648fa001d6db800b87bde8fac25faab7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T08:20:10.503Z", + "quantity": 125.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "881542c12e4bb1c43689a66603f503c5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T08:25:10.472Z", + "quantity": 124.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2cbbf0ccc59ee24962937acdf726ca6f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T08:30:10.464Z", + "quantity": 125.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e2db8f5a65f51a4de7891be766976642", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T08:35:10.623Z", + "quantity": 123.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5fff2403304e921b4c86e022007b167c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T08:40:10.474Z", + "quantity": 120.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c25fbfa7d890d00c161caa51a496cb31", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T08:45:11.563Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "34b861d005e5e3d3eecc352ef75ae811", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T08:50:11.281Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "634da2153e278169dffd12396b694412", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T08:55:11.024Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ceb1ac6ef1a49aedac7e68bda1b45813", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T09:00:11.284Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "396d9639ccce4d80de89cafa712e6ba4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T09:05:11.306Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "68683e3146d8a0a0dad5d0687b547dec", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T09:10:11.02Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ff63fe54cfd8faff81dc86ebbaf65454", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T09:15:10.909Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "65e5cb09287d517da511751ce37663e7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T09:20:11.101Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0fc5c6425797956b1e41391a448530f3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T09:25:10.881Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "09693b7a228a5f309d3e41076db5598d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T09:30:10.519Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6a490e55076e2896a2a138d21dd7cfbf", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T09:30:10.519Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e6a307a27f2d1a0b0f799342e4ec7f29", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T09:35:10.948Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6988b0b4f01f5cf91ad7c806d9e81540", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T09:40:11.02Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9a92e0469de8c1f161822e7cc799274c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T09:45:10.91Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ca52dd46b52e9f85047061779f24776a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T09:50:11.35Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "135a256b16db7bc1dc0ab5223aed0b81", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T09:55:11.312Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4241277b3bdf381f14f1bdfdcca7e43f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T10:00:11.794Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7558378a80c68bedc4f4754afbbc4fb9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T10:05:11.062Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f18a356060938c7a7a3b93502c4c6c6e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T10:10:10.663Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c3133e2b9f9ed9bf85dbe080db8b9daf", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T10:15:12.396Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2117c8cf119705748c44ce57d0ee16b8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T10:20:10.998Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b4e940007dcc7bbde451ca5483dbfedd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T10:25:10.729Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4d7ad4abd669acf0b9f987d29f476517", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T10:30:10.941Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7dcc064a1130033c472164b5013c0c12", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T10:35:11.144Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ba8844590ff416b68d5eefecdb894ac0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T10:40:11.395Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c673614c448b3db5908151dc9b5725ff", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T10:45:11.588Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e496258555091de0906f74e119d0d251", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T10:50:11.067Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ee6e47b6eb0e51db286ccd8503b79f9b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T10:55:11.428Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4138e92ad19b50d1320bbf180c45d23f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T11:00:11.487Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ca59a3b80ca57f511f53fa2b77a63c39", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T11:05:11.325Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4f837e857e71471ddbe16de1ea4bc13f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T11:10:10.894Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ecaa5d16e0d5a4904d932785bf5fd02b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T11:15:10.836Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b74760ddf295cb255a206ba251f64df4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T11:20:11.226Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "809befe8181c7b705c4ec6530dba72eb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T11:25:11.179Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4fcdc537767ab863150f0e8f791de50d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T11:25:11.179Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "69f2d946016a73d4b10e54eb93c1c628", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T11:30:11.469Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a214a041bf38dba47bb882cc90e46b0e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T11:35:11.17Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "042703c8e13c8e08048110a2635fcc96", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T11:40:11.023Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "85aee98fb758b9fbb33de8a82197cc01", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T11:45:11.525Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e842ecfa32b35234b8eeaec823262d0f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T11:50:11.615Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5110af4559817eb284e4e97dc61be61d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T11:55:11.255Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "94ed548c4c76928deadce3c8e5c92c7c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T12:00:11.621Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4574fcd1b238ae9fe92041611926095f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T12:05:11.473Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "052b1e9962b653b77303e012477fc56a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T12:10:12.302Z", + "quantity": 91.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cb54f0ac076c0a72778af9a0b064fba0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T12:15:17.383Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8e84fca4fa44c2570b1a6b29c8f778be", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T12:20:12.449Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "104d09291d6373011793872e660dc926", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T12:25:11.138Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "43b322a9650bd4f0587d6cfe49f0fb59", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T12:30:11.669Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "34686e3d434bd976236a4d8f52ae6f7e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T12:35:11.05Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6c6ab5bfccad8bec5c10c60dec1d3657", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T12:40:11.771Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fdac37952a7b51f54261b5f935e8e882", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T12:45:12.011Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "98dbd1c7b2e108567cd8117cd8722fbb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T12:50:11.701Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d01d7e67cacff9c9bb0e67db0afa3be8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T12:55:11.782Z", + "quantity": 89.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5720485f4190b17c287cf01261c200ee", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T13:00:11.815Z", + "quantity": 91.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9813405e78711d73eba03a6b44ffc65c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T13:05:11.923Z", + "quantity": 90.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c09a82618a8e25cbdf17a4952ecd7e06", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T13:10:11.454Z", + "quantity": 91.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c8117895e7275062c4c44f16044d4516", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T13:15:11.652Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b68662acb3d4748f9656496e0c5fb3a3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T13:20:11.23Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3c92e17aa1f3227154cdc56f3c38ff22", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T13:25:11.858Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "417ffe65fa6986b127341d3511711725", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T13:30:11.117Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2c5153df0a5d3df5383c2a9573c4cc6e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T13:35:11.694Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e3fb5d58b6ff8b1bf398ff70fb1e8734", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T13:40:11.845Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8dbbb0d013237e011f59b306a7205140", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T13:40:11.845Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "957af212fcf0a166023d0cd760f8cdd2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T13:45:12.173Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "199bfb017c06264ce0a5836883657b84", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T13:50:11.276Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4878c2835accec515d3619cb9d9d3805", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T13:55:11.763Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0aeb42509381ba0fc2a159df03f46449", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T14:00:11.927Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c807a5a8981cd01b145bc4779dbb2d6f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T14:05:12.183Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "393749bace4595741e101bf424218e5d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T14:10:12.373Z", + "quantity": 91.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e477e1283b35d1ab91e0938210815efe", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T14:15:11.432Z", + "quantity": 86.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "08f7357333b0e539411edd30bc1a61a4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T14:20:11.342Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "dcc53edeba11e7729932f8d70b175d18", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T14:25:13.156Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d326891e20aea525ee9872749b880a87", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T14:30:12.244Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "69e4887e9630ca65c1baa5f4b50e8bb3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T14:35:11.92Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "041a35920c8698e7ae07d6e99b4f9e0b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T14:40:11.834Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "af96384e9e1e451324ace6e1bef2d0b0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T14:45:12.091Z", + "quantity": 118.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "65b560aae942e47243e14c4420f69d87", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T14:50:11.603Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b909c261c2e242d7ccc3da36931a0750", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T14:55:11.658Z", + "quantity": 124.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9dca5a82094d20379c722c5d0ad40af1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T15:00:11.931Z", + "quantity": 128.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ce279c1a826d74f1394d9c28651df74a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T15:05:12.304Z", + "quantity": 127.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4fbb24b90d97dc52fa17b8156015051e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T15:10:12.249Z", + "quantity": 127.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f6750eda2a1b59da1099acda9e5605b1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T15:15:11.803Z", + "quantity": 126.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "59b161965af571d768ac772e684683b9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T15:20:12.337Z", + "quantity": 127.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5b5aaeef4f6bf9861b79eb6c7d3e3ee6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T15:25:11.607Z", + "quantity": 126.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bac76687186ea40f1d0ebbffc6b7e666", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T15:30:11.942Z", + "quantity": 124.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "87619180080e9a71ef106576a37a13fc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T15:35:11.893Z", + "quantity": 124.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "df213942df48249b3fe8e1f6d6bcc2e3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T15:40:11.55Z", + "quantity": 123.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f463e3e08f95b20eaf4257b28385a0ec", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T15:40:11.55Z", + "quantity": 123.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5ef063858334a6e5ac2be515a10b0d4c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T15:45:12.042Z", + "quantity": 121.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "30d9200bc66ba138e439d6828f1f0d8d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T15:50:11.857Z", + "quantity": 121.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2f25247d8283502063d43046699d53c1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T15:55:12.29Z", + "quantity": 120.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f2e294a64d47a23dd68d8300baa7e897", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T16:00:11.886Z", + "quantity": 120.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b609e03359510fec87e7de68332a3f1f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T16:05:12.859Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "60b589c1b69bfa5e07df33318b9410ee", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T16:10:12.552Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "22d2f265ad0eacaa2b5002313f4b98eb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T16:15:11.881Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "67a2b0f621a150ef3df0c8ad72eae177", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T16:20:12.311Z", + "quantity": 123.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9e71b23d03f6bd3f2d1fd1ecbdea3cda", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T16:25:15.435Z", + "quantity": 129.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "705d6d604b252d752ed4399d97a15891", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T16:30:11.908Z", + "quantity": 136.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cba3956013f492e9aeaafae05f7905c0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T16:35:12.387Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ccc6c20dd9d328b6f01e56c9a2610148", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T16:40:12.214Z", + "quantity": 126.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4214fbf633d37c35e3a6a1e80319cef3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T16:45:12.042Z", + "quantity": 132.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2604288c0efb36eb1bd520282bea85e5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T16:50:12.014Z", + "quantity": 134.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9532c464e3b2b5aca5101161a8d47342", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T16:55:12.035Z", + "quantity": 134.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bc1d4f10e0ce2299c78b02779cb2b2b3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T17:00:12.648Z", + "quantity": 134.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c881d192bc7219149b10d942091f7d7e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T17:05:11.893Z", + "quantity": 130.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "94d86920e86cadc50ebeca5abcfebbe0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T17:10:11.593Z", + "quantity": 128.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ab5d5dd20524afcc973e9930e67ae2fe", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T17:15:12.078Z", + "quantity": 127.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "addb74b8b47d3458b3384432e6def8e0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T17:20:11.581Z", + "quantity": 124.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5d0957ffbb559a11daf7c45578bf7c7b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T17:25:12.2Z", + "quantity": 123.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "509ca49673f6804a5dca5d431d743a16", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T17:30:12.38Z", + "quantity": 118.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "83a73ad6fd8b9f2abe9ce0bf570519de", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T17:35:12.15Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "65063f1368ca14759b941cb8167140d0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T17:40:11.693Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4983a25fb125f12a9f66f397d0187f4c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T17:45:11.872Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "eb9c2a1ebe2c34c4ca391659eb51d5ed", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T17:50:12.461Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c8c57ffa8f866db3482ba0ac9ea407b9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T17:55:11.798Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6a98269c08cf6f8ec1b7aed966ceda6b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T17:55:11.798Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "94d8aa1a9b8a2f55d156be2708c4fe81", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T18:00:12.204Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ba2cc25a4ad881075912ca186339c69a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T18:05:12.604Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b756cb2eb8a27c9c10c640b96bd029ca", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T18:10:12.459Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "104c57922fc21768732f9fa9654f01d3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T18:15:12.289Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b7720ae97a47296091de7d30ad074eb6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T18:20:12.453Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "83d411014e5850d4413a6fd78c454b07", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T18:25:12.636Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ce1b9ba44bc53bde67f5307efa9e773f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T18:30:14.792Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "552e00a4b31896498b6a56afbbad9c32", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T18:35:12.708Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b37c30f8f0583f20630df9a4541a81d2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T18:40:12.333Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f1bd088049ecf4ba3eb5170a6cc68f24", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T18:45:11.847Z", + "quantity": 120.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "03a8d9235fcb05fe727d44cf0992414a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T18:50:12.284Z", + "quantity": 128.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "11451437c706ed0438d23d0b220bee2d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T18:55:12.534Z", + "quantity": 139.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "351c137459c36ab3c421f56bdeba9b5a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T19:00:11.947Z", + "quantity": 150.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cf0b4ff188d772701693f7349a8619c5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T19:05:12.171Z", + "quantity": 166.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "052f04d9c61cecacb03e620b0aafe3d5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T19:10:12.859Z", + "quantity": 175.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a1645869ee29a6e12be04f78f26544b9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T19:15:12.427Z", + "quantity": 176.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e76a9a8280ed2d347d997741d3729bb4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T19:20:12.697Z", + "quantity": 175.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "402b682698e3a5c92de8672d476ce61c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T19:25:12.148Z", + "quantity": 180.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "eee4c14c2ba05e9b555eaf3a28d883bb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T19:30:12.554Z", + "quantity": 175.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e4a6f5c25eea7d190afe4637934883eb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T19:35:12.16Z", + "quantity": 178.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "34984b8904a98fb0fc9f5370f86881d9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T19:40:12.903Z", + "quantity": 183.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "603df202c7c90d5ca73f12c8287057af", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T19:45:12.87Z", + "quantity": 178.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "826a0fb46ee003a5909c7a64230bb702", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T19:50:12.563Z", + "quantity": 173.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bc90a891def5bb751f2dbb0310823d14", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T19:55:12.821Z", + "quantity": 171.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "41a5f19fa81d96751c26681502f208fd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T20:00:12.473Z", + "quantity": 174.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7a17f8a3504d0268341feaa806e226ca", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T20:05:12.827Z", + "quantity": 181.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "31bfadf45bc0d44e7f5710d61ede939d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T20:05:12.827Z", + "quantity": 181.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f12f814ecaec79a9a2f72f97a63fd3c4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T20:10:12.564Z", + "quantity": 182.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b18f116b577afbe4fc3c33c93dcbaad4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T20:15:13.074Z", + "quantity": 190.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5c01446312ec07085063104760d08f64", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T20:20:12.066Z", + "quantity": 191.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bc194b24e825ccfa8fba925663dafd40", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T20:25:12.686Z", + "quantity": 183.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f5aded6f8608b0fdcf88c35281e6bd55", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T20:30:12.873Z", + "quantity": 183.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ed527c299c27aab99a96ab97695ff14c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T20:35:13.377Z", + "quantity": 180.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6e93bff4aecec870b824caaa826a8cd5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T20:40:12.752Z", + "quantity": 174.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "963e30ec1226f8fece51378804fcce5a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T20:45:12.968Z", + "quantity": 174.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f38a387168282b9ec0b1304759b7caf7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T20:50:13.138Z", + "quantity": 186.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0201cc414e7e5c4770741c1c46495fd0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T20:55:13.178Z", + "quantity": 197.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3d247be8ee6d14b69b8a58db8b3854db", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T21:00:13.009Z", + "quantity": 204.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b986b52a9ea9900c1034803f297852d4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T21:05:12.929Z", + "quantity": 204.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "db0e7d4390f4778f2752aedd40278b7e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T21:10:12.971Z", + "quantity": 211.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "769a228854979451a607fc12552d315b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T21:15:12.969Z", + "quantity": 214.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "077789d218ec4bb6d92811bbe8e18977", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T21:20:12.803Z", + "quantity": 211.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6ae6b596fb92241449360a2362ec3e0a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T21:25:12.404Z", + "quantity": 213.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a1fa2769fb070e97b71e94738d5c0692", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T21:30:13.274Z", + "quantity": 207.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "dbc5387a611391fedbd44352e221ef86", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T21:35:13.275Z", + "quantity": 203.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3bc380a27cdfed482affda332756968d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T21:40:13.03Z", + "quantity": 207.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7f51ec6f375286eff87974692d9b6f5e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T21:45:12.702Z", + "quantity": 199.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bec1ab4a22b8d2b5b9c803a6c91804ad", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T21:50:13.172Z", + "quantity": 194.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "edec98c82659f1e93a9c45d43c2e3b48", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T21:55:12.666Z", + "quantity": 191.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "719d8e7ccbfb460262b7826244d0228f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T22:00:12.712Z", + "quantity": 183.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bf75501ca984c2c7481c471925d9ffe5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T22:05:12.861Z", + "quantity": 173.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5c24129a96cb871cc65841a6cbdf0e11", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T22:10:12.701Z", + "quantity": 170.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a50ea5fa73cceec081e4ba4ccd362b44", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T22:10:12.701Z", + "quantity": 170.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "74c5345a2687ce9a836d18c4a3cec744", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T22:15:12.592Z", + "quantity": 166.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "005641de0f7dd6a6f43fd1d777940a45", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T22:20:12.862Z", + "quantity": 161.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "aba763dcdb03856234de23ac4f10de52", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T22:25:12.793Z", + "quantity": 157.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bf7926fa201d3fc21586db4b70aa05e8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T22:30:12.789Z", + "quantity": 154.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d4705ce602add1b084b6b83b31182329", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T22:35:15.816Z", + "quantity": 151.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "948471a566573e944bde80abfd37106e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T22:40:12.955Z", + "quantity": 148.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "eabe4d82224e8ed726a60c276fadf533", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T22:45:12.714Z", + "quantity": 144.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "879fce55997f29f28279382ce6215bab", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T22:50:13.152Z", + "quantity": 141.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7a56efc82e13f35088c13267a5e50fcd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T22:55:13.443Z", + "quantity": 138.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5a587926aa267052245088432db11ee4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T23:00:12.693Z", + "quantity": 134.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b43a5f6f66561b4b8d56112a804beac0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T23:05:12.653Z", + "quantity": 130.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9d5822687465d22a8f71623e5c440154", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T23:10:13.569Z", + "quantity": 127.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "dd5a5c69ec77e74bc31541d42a463f10", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T23:15:12.742Z", + "quantity": 125.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4f7390f91909547e7cb921e233810513", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T23:20:13.973Z", + "quantity": 121.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "15b9cca14e01e6c4f2a36fc2b3a6f599", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T23:25:13.427Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f581bb49da15516d603009c2f2e5b9f7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T23:30:13.606Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d86eeaf56971315820a1cb9612f11c3f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T23:35:13.904Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "eab7180150b0a2636f365ebb7fec3113", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T23:40:12.868Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1c954d5757a872ae1cebe1a83358d665", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T23:45:13.752Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "16c5d8d1a06df187579b3a10198a0050", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T23:50:13.426Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cc4cf1f11318739747344393d81b5146", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-04T23:55:13.485Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9eb02d46048a74549b4c205bc866ab2d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T00:00:13.716Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cf5b85f5cb89808d03379b2ee60603dc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T00:05:13.428Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "607860b3b12dc2f9107f455fc3223c8d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T00:10:13.609Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c0aed6e06ad0206f070d85d378d1f49a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T00:15:13.432Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1b267533518e6c3264b0850c2aa955cf", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T00:15:13.432Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d46c7ad732db51b5fc692976286f83fe", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T00:20:13.581Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ed88fe1e2494a7eb215d9debe071e48b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T00:25:13.342Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6bcf980d4f5e1ef90da25c9b35591e7c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T00:30:13.248Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "904411f0de28d7dc0ad2e53f382099ea", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T00:35:13.48Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5239f5bc4e7ff5610a57bc9990d5effb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T00:40:14.669Z", + "quantity": 90.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bb7a6ee7d5d3434b0cc59d906cb45b05", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T00:45:13.44Z", + "quantity": 86.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d90a5e5aec8a97a3de7a580eae96fa97", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T00:50:13.141Z", + "quantity": 85.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fc2efe89407a90da6955fdf8a8afa761", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T00:55:13.195Z", + "quantity": 80.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8add07b808ef9fd0d36850488200eded", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T01:00:13.491Z", + "quantity": 76.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cb140f5cd0b93ae0f8148d25c1ca3e1e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T01:05:13.104Z", + "quantity": 74.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c0425e1ff20339ce2fa2fb2d35c80e81", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T01:10:13.891Z", + "quantity": 71.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2b01c9f7e359438fea26cf956a54d03d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T01:15:13.591Z", + "quantity": 68.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f6de552dc1400c31530168f49dd7ffe4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T01:20:13.13Z", + "quantity": 64.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0d75091f5ebba51751446d4568db2835", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T01:25:13.365Z", + "quantity": 65.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5ad0eda65ef30b333670f2b854a6215c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T01:30:13.31Z", + "quantity": 66.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8048bf64c620b5e2e088b0d313b32b49", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T01:35:13.105Z", + "quantity": 67.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7b814c970e65426647f701623e4a7fa0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T01:40:13.897Z", + "quantity": 69.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "140d3f3a8b5e88dac84853b63d0f886f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T01:45:13.099Z", + "quantity": 68.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "859a6d29c85c0a16a8644adeb1cca84e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T01:50:13.609Z", + "quantity": 69.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7cb23cead8cb02035832776119f6072e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T01:55:13.654Z", + "quantity": 69.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "86abc89ed3f34901242b6c7250d08303", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T02:00:13.898Z", + "quantity": 70.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f52984dd1d6a878c3f94da71d16e3785", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T02:05:13.554Z", + "quantity": 73.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "903e1ac11695ac36c1329ae32a55cc29", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T02:10:13.664Z", + "quantity": 78.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "73320294d35f7e053abc236553f68ce7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T02:15:13.09Z", + "quantity": 77.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9edbf6e30892d3748d6d585e9e9d09c3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T03:05:13.755Z", + "quantity": 90.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2b53cdbb0a56c87e842771e25a5e5c0f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T03:10:13.37Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "aa7b6ded88c1246ed941e9dd50d8f0ea", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T03:15:14.132Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f8885957dbf572a2a780a7c71977914b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T03:20:13.756Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b5fb40653100df63d2d2c3e7f3702209", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T03:25:13.984Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6b23f9b55bf4af321432104b0447dd88", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T03:30:13.864Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a02f886a3d468d083c618d6b14beef6a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T03:35:13.708Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cf13e2c001f5686173dd75bc220b4533", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T03:40:14.258Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "21eac68158ff2a2c7ec059ce78117e2e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T03:45:13.971Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0cd03ea4d5ce1842eb0434e7fbe9401b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T03:50:13.494Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "267df21136fd4841e358adfbb7972788", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T03:55:14.126Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ce5cfeab8042269496b0e535390fa720", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T04:00:14.357Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "317e54e17478c8060ab3046cc30a3fb1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T04:05:13.597Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3d6b4fb8f1d652d9c01d69b31d147d0c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T04:10:14.417Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "38153b93b9cb5f0b9a132e311020c56e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T04:10:14.417Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a64b8da37cf4c9753c0a0aac44bcd9f4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T04:15:14.116Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "16d38db99e52becfc84bfe87a23fc664", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T04:20:14.258Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cff04226e6a11786f7f2a87f578e7817", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T04:25:13.978Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b08d65f1a51114b3353e69c29a1f35a9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T04:30:14.194Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "32510b0327e83cf1aaa3b1e9f2e5723e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T04:35:14.012Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9300811f2a4078c5bc1acf7a28d6db6e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T04:40:13.795Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1351e8fe9033ed52b29568290fbfd390", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T04:45:14.88Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5d07a48ebf171ee4cecb99db24436deb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T04:50:14.431Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7557fa0286020e78225164d78135a3fb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T04:55:14.382Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cf2ef5141b1705268eefe75a8cca610b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T05:00:14.212Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ab7b9d5feb8a21968deab99791c1c75e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T05:05:14.441Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b310b01ab6233b94a47989093b1fdd07", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T05:10:14.402Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1800204b5879e833dde7dea0dbed4314", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T05:15:14.127Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2a8ec0f8cadf9dd8e44d83d6609955d4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T05:20:14.462Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1f4c7be9376900d1a21daa92ee0cd078", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T05:25:14.096Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4e2621f59eb1a1453ab1f830ebffb855", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T05:30:13.649Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0f8a9ec3bef2737e996f6230b483108a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T05:35:14.631Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "311ae1e19602e2d2219f01d3637929be", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T05:40:14.422Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "37a772c1c4f041f7f38096994a4c5d24", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T05:45:14.444Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b910e678a748463d0e05d8a9e9886b34", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T05:50:14.573Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2caba2b6ef52985d9b3b9be9927a24e9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T05:55:14.251Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5b0ca23c201ba7f37beca4f48f48fb56", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T06:00:14.725Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "08cbb11fd3ecb11077b96b6def1480b2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T06:05:14.599Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fc5d14ce2b8f969548f5e60a23fc3311", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T06:05:14.599Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0ac97ccb632615f539e0bd1fcef45924", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T06:10:14.721Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "05c60608192f7c26ba5abb8ce7bc1165", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T06:15:14.532Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a46b12840f421ad51e9c81fc64d8309c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T06:20:14.593Z", + "quantity": 86.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8a4afff93d0729c1dbb5d0b12ecb8305", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T06:25:13.865Z", + "quantity": 88.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1f9f8e75ce8c548814b818025e920bd7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T06:30:13.813Z", + "quantity": 90.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "441bfb206449f023584b7ad5864f55c2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T06:35:14.661Z", + "quantity": 88.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "94f1ce668b07134450909d134dd06e0e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T06:40:14.492Z", + "quantity": 89.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a9cd2d42373a3face697f78a2f9757ec", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T06:45:15.59Z", + "quantity": 90.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fd057f582ae92a9d623a66295d87aac8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T06:50:14.576Z", + "quantity": 91.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "43a30911a98d1dd19c73e297c1ecc112", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T06:55:14.267Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "07f96a10b26ba0ac22f20c5348a575fe", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T07:00:14.416Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0588dc39989676a8a382d60a714a3497", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T07:05:14.446Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7cb03e5588f268e06d36d99b7f2a1db1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T07:10:14.796Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b093f56baa3536c8c9e6fe0f48ca9882", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T07:15:14.516Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "46f124fcad51032d899a638bb8124ab2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T07:20:14.106Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2bb6964322da553d8aabf58485e8ace3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T07:25:14.788Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "06d0cdd3dcac10387e06f823efcf794e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T07:30:14.587Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9359358cd7441012e4b314eb6ca33b44", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T07:35:14.667Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4960a125a29d2c5e055ed93a8c36db1a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T07:40:14.628Z", + "quantity": 118.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b86af7529a4c347a9e7a6f0f5b78d7d4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T07:45:14.768Z", + "quantity": 118.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8281d6cd86ecea19df8877aebd813fe5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T07:50:14.698Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7298d3410ca9686b113d1779d6664081", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T07:50:14.698Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "eac4974e648e084d248be7be72a5c01c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T07:55:14.55Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "04b18154893b980d7d11349162e8cb04", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T08:00:15.022Z", + "quantity": 118.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2be01ab045a012fa0865eb75a59a5c19", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T08:05:17.119Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ee412840dda85f1ad9e06ec789101b75", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T08:10:15.05Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "aff890f91ed83b400fa0be108dff140f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T08:15:14.611Z", + "quantity": 128.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "50e0429042f939a782054c30f67bf622", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T08:20:14.331Z", + "quantity": 130.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "844c912948c428e714c7189d8675b600", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T08:25:14.17Z", + "quantity": 131.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4dfe78d9534900486cf5aa50c1eab956", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T08:30:15.059Z", + "quantity": 130.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e9b4eeda2ef41f056361dffb631997ee", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T08:35:14.184Z", + "quantity": 127.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f852a890bbc2c75f323a6c958c9c1bdd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T08:40:14.465Z", + "quantity": 127.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6565627b4fedb37b9ccf7c9d25f9ff0f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T08:45:17.776Z", + "quantity": 125.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d48e808637856cf5eb959871e9d2694f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T08:50:14.483Z", + "quantity": 125.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "545767dcd41216dda7f40446d3a19e88", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T08:55:15.012Z", + "quantity": 124.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1763cb01d463871ce1b31467e04d3761", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T09:00:14.364Z", + "quantity": 125.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3d14e8f388e9f72b3fc4fef4cfba84e4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T09:05:14.723Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0b15e3dc17c8ffa446d64dd4c4a92839", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T09:10:14.836Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b6d5118f3403f200067310f3269bd138", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T09:15:15.067Z", + "quantity": 121.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bf43802e6ad654461cb8092ba7e688be", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T09:20:14.591Z", + "quantity": 124.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "131aa55bcf60aa2287741149cbd94bcb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T09:25:14.723Z", + "quantity": 128.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "556e644122ee38e337828968144da7ba", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T09:30:15.155Z", + "quantity": 129.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "af7b64e93aa0b6c14dfac90a54e4549e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T09:35:14.874Z", + "quantity": 131.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "590ba93bebb108e111808fb8fa22aa6e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T09:40:15.194Z", + "quantity": 127.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7646fe7e3debaa71c8bf9ffdc7ce1303", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T09:45:14.897Z", + "quantity": 125.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7e80b39af793ccbfc59633580e3c967d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T09:50:14.894Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "30bd9b638cbca508d77e1ef11b73e22a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T09:50:14.894Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3ad7c0f954b1cd0129e65804b0f59a2c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T09:55:15.093Z", + "quantity": 118.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8c0c41052fa081881836d60647047b77", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T10:00:14.745Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "65a89cb1e7dfc7af4b28538b7910534b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T10:05:14.434Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b26ed8ea9e720b66dd83ddc4e229c09e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T10:10:14.857Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "688c249bc3662675bb0a4db1860a0d40", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T10:15:15.367Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "77a55c79f09410fabf4a1051d8ad661e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T10:20:14.591Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "89c1ac53c0faec7f02f24bdcf7986398", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T10:25:15.093Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f10e62b63fe37e21af0a8b99285ed19f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T10:30:15.106Z", + "quantity": 121.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "73aa32a5d7acfd9ea415418917683624", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T10:35:14.752Z", + "quantity": 121.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e5edbfb17a2ede5cf792126e8e11b807", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T10:40:15.076Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f65cce3730c69e4a98d3dc749832fd0d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T10:45:14.704Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a074bebf9e575ed308074021068b7214", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T10:50:16.461Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5ec487e9a70c290fb9f1f050ccda5860", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T10:55:15.443Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e10cd4266c4d3ccaf1863cbd5eeafa97", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T11:00:15.477Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bc84e1528c3767a2559a5c2ebc5981f8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T11:05:15.274Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f482bf37bdb058e18c593fe59dfe3c50", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T11:10:14.948Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9da12a6bf2ff5dfa1896764a1685e794", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T11:15:15.097Z", + "quantity": 120.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f06ed3801235e0b525f4648d3c48f9ab", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T11:20:15.642Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7a94d1bc30725a2016b0c0368b9d4bcd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T11:25:15.263Z", + "quantity": 123.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "63ba0112359d22fbaeee42f93d10240f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T11:30:15.112Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d9896ee266ce62871c72045b7dac6f13", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T11:35:14.705Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "afd387c37b497ec1f4fa18f64997ec33", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T11:40:15.429Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "25bdc5c42e672c5b9ddd7d2232694811", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T11:45:15.328Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9b23d0770865e174d3490bc996880548", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T11:50:15.191Z", + "quantity": 123.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "12521630e3b2da3e0cb0bc99b78e8ffd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T11:50:15.191Z", + "quantity": 123.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bf124f42759b1b21d7c993b6bab0f1c5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T11:55:15.181Z", + "quantity": 125.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "eaaf292e51c8702a5065b53c12de83e8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T12:00:15.824Z", + "quantity": 121.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6958df84e9a8374153be82a9d3af5b02", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T12:05:14.928Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d36af22bdc09c8600bce2254e47f9550", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T12:10:15.38Z", + "quantity": 121.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c9752d889c7d17582d627495539a8178", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T12:15:15.545Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9b57b58eef105a4a4202834227a9b317", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T12:20:14.976Z", + "quantity": 124.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c921bfe908fb407851080a4ab7aed5bc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T12:25:15.467Z", + "quantity": 123.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "23b4e467265b17f3d7c9420a75bcb4ca", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T12:30:14.825Z", + "quantity": 121.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d90b52272fa5516d3743fc9b0cb84b5c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T12:35:15.768Z", + "quantity": 121.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d0e7c1216d4fe63b6c227fbd6a690ef0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T12:40:15.367Z", + "quantity": 120.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9e322f3390c7587a0bcdc8b6af96613d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T12:45:14.992Z", + "quantity": 121.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "56fa068714abcc86eacf352171d904f1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T12:50:16.004Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "09425bde3e0095144d10bc02b8ebdf47", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T12:55:15.845Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8767371cf5860b253b557f9666b8e775", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T13:00:15.862Z", + "quantity": 123.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d66bd854d34cd4b31455b43eec2a42fd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T13:05:15.235Z", + "quantity": 127.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0c93f9fde4c8e5282c011d7b10564fa4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T13:10:15.016Z", + "quantity": 125.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "76d92708bdd3a39c20dc7939adfbe081", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T13:15:15.006Z", + "quantity": 121.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e74a40203eb6619b4273a7daffb157be", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T13:20:15.289Z", + "quantity": 118.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f3573eb007ec92a77c225866dac4c8d1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T13:25:15.866Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7899c5d18033c5d65d726c6171fb4d88", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T13:30:15.447Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "80dedf72bf13813039902dd1e2c516e2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T13:35:15.665Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "33d8869fb905a9213133a3b939f5fa98", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T13:40:15.676Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d1e4bdeb2c737ec27ba4001b4116e753", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T13:45:15.905Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "009c2cc41ae937263fe5eb9f128a0238", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T13:50:15.909Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f0ad163990d2db6e304e1f59fb97697d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T13:55:15.741Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "22ba8f8e23e1bb85c0b9e1fad1fa6d3c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T14:00:15.832Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9911da94a5d6d14a070354a28f9c92d4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T14:00:15.832Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2619d9b766f38b338cdabb887dbf0795", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T14:05:15.94Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5b43a58030c473600d98984213fdae83", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T14:10:15.351Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "aaf5b6a50a50d46bbbce2057e8f03d08", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T14:15:15.633Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cd6bf614ea3583b869398b2540f4cc0a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T14:20:15.513Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "73bfd345ae3ea19c4756f4b5ae83f923", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T14:25:15.806Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ca765d1a5f3bcfc91bd25ebcddb40bce", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T14:30:15.3Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "de7cffbde23b7b7af4413974279e27ef", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T14:35:15.481Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "88d7a103e6cc91bcac5bc32d4256446f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T14:40:15.962Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7268334bcdb925aa591f430ace30344b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T14:45:16.005Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6a9a90375e6654499526eaf8000d704a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T14:50:17.213Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bc56bb6f1f7fbd58e2bd42cb8e4103dd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T14:55:15.704Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b246b0f748f70c9c5349a1b3efbbf1ce", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T15:00:15.886Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7fd0ead8fad34181c3102b37d8817659", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T15:05:15.311Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fa2040a4551ad2ec2d0453b73815a830", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T15:10:15.579Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "505e79f56934592c29829a2e91e94f76", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T15:15:15.913Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b680147f949fa1fd30c93d89ae9e8988", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T15:20:15.961Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7e1e871f69aef149155633e2a778b771", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T15:25:15.471Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c202e36bf5f95bd22e0a24f510eac509", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T15:30:15.937Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1123967142bdb5982550af1fcd0b311f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T15:35:16.327Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "89295b47b3778c8cf1c42d605eba3359", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T15:40:15.364Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fd1b562c235242deb782b4767fdf7304", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T15:45:15.966Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "344ddab303442116cc64d1393055cb29", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T15:50:15.759Z", + "quantity": 90.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a9ee05568f09b677f07a8a7e357e276f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T15:50:15.759Z", + "quantity": 90.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cb400c47945b1293d6f233721a80d24b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T15:55:16.124Z", + "quantity": 85.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bd45f5d371e444ed4d2e60f6464b6d8c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T16:00:16.319Z", + "quantity": 85.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "04a254abf80089c27f73759f11f2fd03", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T16:05:15.816Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "65b8391d82e3b86aa3ebd04eef3de8fe", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T16:10:16.145Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "868434ac2b35c0107ac9d48eebf6eb2f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T16:15:16.27Z", + "quantity": 120.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "00d1c983040f60dee9d514247cf23e92", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T16:20:16.003Z", + "quantity": 133.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8f364ad8ac6c55bc3cd6cf918550423c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T16:25:16.262Z", + "quantity": 135.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0eccc1fc3cf837bb7e895284f6336ebe", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T16:30:16.239Z", + "quantity": 123.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c953ddc8ed2ef98ace5d8cb2f84aa92b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T16:35:15.705Z", + "quantity": 126.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4cf74102d8df58107f3b328b23339e11", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T16:40:15.822Z", + "quantity": 126.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "47a42dc371379a50a339f6dce4d67dd5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T16:45:16.131Z", + "quantity": 126.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6a1125ec559935471e1d74639d319f16", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T16:50:17.298Z", + "quantity": 126.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "328374cd3e8196e48b4db50511a9645b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T16:55:15.688Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e5f9d361c6a45e4768f737c42ea18a8d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T17:00:16.359Z", + "quantity": 123.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8c2ac200d4d033a43276bae15e572d2b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T17:05:16.236Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e35cad4236694174d16080a61f2415ab", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T17:10:16.261Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "604ce85bef7d823959be0253532b23b5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T17:15:17.047Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8b5487c1bd1c90dee302fdbda7cabf3f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T17:20:17.047Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ba664216aee5960d4676a1579e16c285", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T17:25:16.482Z", + "quantity": 118.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7bfaf3bedfd46702d75ecb11ea82ffcb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T17:30:16.593Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9c3dbeb9170909b4aa7a2425e4096272", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T17:35:16.432Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "31614fa04651ac1927c1e552d484de0f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T17:40:16.624Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e27d9af85b17ed76e6fc524a5f4e060d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T17:45:15.877Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "45aeb763ee1e82b2a33a67055866105f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T17:50:16.47Z", + "quantity": 124.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5c33cb58da46a2f2f532d311df770fd2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T17:55:16.737Z", + "quantity": 130.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e54af55105557e28af41eaa2f9d61ec6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T18:00:16.267Z", + "quantity": 135.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5bdb62464ab0b58032e84fc562bc9bd5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T18:00:16.267Z", + "quantity": 135.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cdb15ae17c4370f2440efbad33e16708", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T18:05:16.532Z", + "quantity": 140.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6eade5f452a951d946c447a918d6bf3b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T18:10:16.614Z", + "quantity": 145.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "81228dd7b1d586f02350ce997f6860ac", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T18:15:16.79Z", + "quantity": 149.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2caf659242aec5275617b1a26b62b05e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T18:20:16.526Z", + "quantity": 149.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "67a3742c6df9ea3cb3fab2f7b78a2abd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T18:25:16.668Z", + "quantity": 146.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "dc36e85bc29c4337ac4ec0c596a4e027", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T18:30:15.934Z", + "quantity": 143.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "050cb59d51207637398975bb58465a45", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T18:35:16.548Z", + "quantity": 142.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "af758875c0214c3b8cd28967135a66aa", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T18:40:16.559Z", + "quantity": 140.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2408e106d7e7bd1ef428e6c73f441dc1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T18:45:16.671Z", + "quantity": 139.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "12581d1bcb4083d8b57f7dc865e0f4ad", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T18:50:16.791Z", + "quantity": 137.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c23defb78eda9146ba8b870514804740", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T18:55:18.13Z", + "quantity": 135.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "de462a375ef8ea298ddcfebe6688f573", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T19:00:16.17Z", + "quantity": 134.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5834ad85e4ed5cf725a6c3be4ed214c1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T19:05:16.544Z", + "quantity": 132.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "11c7420f9b729511bb90ed8019746167", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T19:10:16.27Z", + "quantity": 132.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "69b83fb85ab21325025bd0dc29aed37a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T19:15:15.978Z", + "quantity": 128.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3c69467b894dba3a92c48516d1b3069c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T19:20:15.979Z", + "quantity": 129.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9b59a885ed4600e3841376decda3fc0b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T19:25:16.878Z", + "quantity": 134.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6bbbcf020d41f6051388119373dc3280", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T19:30:16.42Z", + "quantity": 133.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d5e1be0e67ddaa853046eb327708f2f2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T19:35:16.836Z", + "quantity": 136.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a55c9121a9c324e339255532c4121ade", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T19:40:16.51Z", + "quantity": 137.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d16708d726c22c2b6c8a3b1e8a910e03", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T19:45:16.726Z", + "quantity": 135.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7f75427b77ba238b362ddb76c79ae2fa", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T19:50:17.098Z", + "quantity": 134.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2b19a061a02622f102b7e85e8c82b528", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T19:55:16.893Z", + "quantity": 136.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9e97dd0124daef42e1ab891698f08763", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T20:00:17.009Z", + "quantity": 136.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "52d83937d5d487e81d8512093caa154b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T20:05:16.628Z", + "quantity": 132.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ed01ffed00f6672f0f60d624ca49961a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T20:10:16.723Z", + "quantity": 133.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0e91ada8756fbd520310d12189783cbb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T20:15:16.791Z", + "quantity": 132.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "433f3eaa1ff29045e2ad670bd449c855", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T20:15:16.791Z", + "quantity": 132.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a78dafcbcded7efd61d1be5558a81784", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T20:20:16.343Z", + "quantity": 128.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "098b4fbce6db9400845d248373205ff0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T20:25:16.823Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7226d4e01ae55f666ce812dad4c72bd4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T20:30:16.532Z", + "quantity": 123.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1c069c3c0c32f844df3b110fc15b510f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T20:35:16.455Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "98cf379f663cdd403af8a3491ffd8e70", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T20:40:16.655Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f84d9988a05416f6a4c6cfaeb4619d76", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T20:45:16.639Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0428f9a849a60c3df1e80f3ca4b84d00", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T20:50:16.598Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "179faebdf01f01caf756cc0cc652f037", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T20:55:17.053Z", + "quantity": 121.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "dafd10213539cf2d106979043582e320", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T21:00:20.291Z", + "quantity": 128.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d94e14c33bd1541fe65741486d4f4a6c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T21:05:16.531Z", + "quantity": 124.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cac338f5f839ffcf016bab91bb1b18f2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T21:10:16.848Z", + "quantity": 128.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "91299abe86e08c82143f9ae7cda237a2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T21:15:17.357Z", + "quantity": 128.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "be8fa4b23e62e8fb756dbf8239f59abb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T21:20:16.532Z", + "quantity": 124.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c2ebb86556c7d3bcbd41f2e0ee93e845", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T21:25:17.048Z", + "quantity": 130.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a06d0cd2dffc15d3a0847a7317189dfe", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T21:30:17.08Z", + "quantity": 135.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2a6870ef709bf5fe0694a8baed425abf", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T21:35:17.304Z", + "quantity": 137.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9fbabafb0365fcbe84b4ef2506cc6067", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T21:40:16.668Z", + "quantity": 132.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2efe5afffdff1adbc87ef4cecf1d5932", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T21:45:17.241Z", + "quantity": 136.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "52180d8615c188e5657f8cbaa95fc176", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T21:50:17.161Z", + "quantity": 140.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0d6162b8f97e070d71982c7a408ad43e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T21:55:17.26Z", + "quantity": 146.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "85be602e3f8fa2951cf2e12acde9d6d0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T22:00:17.013Z", + "quantity": 145.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8954acda2daaa475e1b5b7eae1d75438", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T22:05:17.245Z", + "quantity": 142.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1ca92263ab1e629ab2251549ceff45c7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T22:10:17.284Z", + "quantity": 139.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "de6f14db5288daac94bd5d1258037b22", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T22:15:17.055Z", + "quantity": 136.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f309d9a97f25405b8219630a031ac41a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T22:15:17.055Z", + "quantity": 136.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bd2a5fce34032de50b5372b11f1f13de", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T22:20:16.963Z", + "quantity": 134.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a44a9b773adecde9e88f2bdb7ff7fa3e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T22:25:16.877Z", + "quantity": 130.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "03d16115969f6d47968c638c30d7049b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T22:30:17.559Z", + "quantity": 125.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c5a8ec46097d3037465f0bce7b90643a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T22:35:16.917Z", + "quantity": 124.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4813aafdb0f9dacf50aec143bc69a40b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T22:40:17.059Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cb64101e0b8a6bc5cca305e9a362fdbf", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T22:45:16.77Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5db25f1dc04ffa0a1b9827ff52dd30d3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T22:50:17.193Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "61a6dfbb0d3af009b963567bf7ce6250", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T22:55:16.855Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d2786b037f5a0c91301725c695acf792", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T23:00:18.575Z", + "quantity": 91.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e7e798198b9d43bcc2514ba969350e02", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T23:05:17.422Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a84f8b87b014c6d12cef20869719e8b1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T23:10:17.178Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bd746fccfc4581b5a33c43955d682b22", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T23:15:16.636Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3b86718710630498ec881f7591bf7806", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T23:20:17.536Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2c9fdffe5d29266c9a46bf759f295dda", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T23:25:17.386Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b439791529731dba47baeffa86db0f2e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T23:30:16.729Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "898c88c9d224af3e25bd9ebff0be2cdd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T23:35:17.155Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b7efbac308ef487a2ca9a5db4438e739", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T23:40:17.432Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "393ee3335cc68d9154dd22829dffc930", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T23:45:17.487Z", + "quantity": 91.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ba6ee350db2a4fe3341ed0690ca7d5da", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T23:50:18.867Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "74421ac4a9611a6805099f14d0c452fc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-05T23:55:17.407Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fd31adb2bd7c0c61e341bdda583fd5ed", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T00:00:18.959Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "960db81c6d69b102d6b6e9712ee34a0b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T00:05:17.686Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cae09b6aefeb6b1bff649208ddb2cfbf", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T00:05:17.686Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1d418a4ad73e343855e7d32196ce0133", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T00:10:17.563Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c7d3491b5f4f96ab0972d3b402501149", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T00:15:17.07Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bf7aa279fa1c697feeca4999fa5e82c5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T00:20:17.148Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "632f05d8f9ef33f7ec4010e1bb88ed6d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T00:25:17.51Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "56379df74f1da929cad928b73aeffa38", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T00:30:17.923Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8746eef86ea19d4d6bfbb17409b13929", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T00:35:17.248Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4a5d72ce0735fafa0aea0d2d5a1b58d8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T00:40:16.887Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "726ba283d2f893aa255c65dbc1d16bcd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T00:45:17.422Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b2a4a3f37088e868bcce3aa1394eaf78", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T00:50:16.983Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e2ea700bc2355962fb9f6c2561887433", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T00:55:17.711Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0d80b774c0266374c3029845ef517109", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T01:00:17.481Z", + "quantity": 87.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "49d9d892a12aa0a7990c91484e92c1d3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T01:05:18.953Z", + "quantity": 89.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a9770282ceefd19e74762f5510c42cf3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T01:10:17.486Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6942fdbd7ea8e581a5520dc65805e726", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T01:15:17.219Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b962befee63c263dbae13d4d3678fba7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T01:20:17.711Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "556a128a157d84b8b24e5c888fbde777", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T01:25:17.482Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5eaeca8eb6d5a3ff727542830fb099b8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T01:30:17.349Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "59b0d7fac7ff0542d2d867aa5c67b324", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T01:35:17.552Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "218ca7d6cfe2c74657ba23ac6c2c220f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T01:40:17.861Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "86399ddd407106d60c3a43d605b5a081", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T01:45:17.801Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6a46a19c82959e2229c3ccd068603f4c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T01:50:17.616Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5b8bb5df3ca2a8c44480654dd0180cbf", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T01:55:17.736Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "59960f616f295ae815143807c1284ef5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T01:55:17.736Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0a74b5d5ec3491205d8e9711554d4507", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T02:00:17.44Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c1dd798f0fd6b63fe8965503ae37e2c7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T02:05:18.013Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "178aec945ddb059979609587ba3e39f4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T02:10:17.467Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "edf5f1072cc390b40dc0eccc264bb42c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T02:15:17.68Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b13ddd2b1737b671263441b86997a704", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T02:20:17.832Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "57180cdb46076402a0c1240baa68ac92", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T02:25:17.912Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7f2103b21a0720fd73476101f0a99955", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T02:30:18.04Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6b2956314d9cd2f59b2ce0fe2d43523c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T02:35:17.92Z", + "quantity": 118.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "91dce8ac015eed8922632a6ddfe85604", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T02:40:17.504Z", + "quantity": 121.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1dfc4712b228870a87704870a1fe8294", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T02:45:17.774Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "79ad18ebbe97dc12dfac72ba6122c41f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T02:50:17.361Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "087bc82757dab5c074d0af76ef3e5d32", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T02:55:17.623Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "64dd60f2850153f3f55892c67413ca3c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T03:00:18.313Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "944fa2c5e67ea527b13447ad515121dc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T03:05:17.925Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "46e74f605a7eafffc69f63a4c9d5bc46", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T03:10:19.616Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "457fe3e56c1df3dfe0b34918b7e2c3b1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T03:15:18.306Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0b4075a7583fbe403e93aaeec3771665", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T03:20:17.368Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "46255b3ca53a8db6c2516122b30ce931", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T03:25:18.196Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "177d719c322c3e33d3a9ac1fa9038d07", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T03:30:17.523Z", + "quantity": 118.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "77c88704df1d855295178aa6e3f49209", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T03:35:17.693Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "11d1780c506ece58f0a564a0abe1f39b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T03:40:18.108Z", + "quantity": 118.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cc0c7703ee50a8bc16616252685296a5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T03:45:18.255Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2fac723139c06ca1278e9fcaceeab499", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T03:50:17.696Z", + "quantity": 123.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f82950bb88962fd9c34906809cfd451d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T03:55:17.739Z", + "quantity": 123.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "124162e59ed33f47a675624a70074753", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T04:00:17.827Z", + "quantity": 123.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ea0f3312b26c02576a54a7bd59d64262", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T04:05:18.451Z", + "quantity": 127.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "664ea8e7750a4ba9bdbffababfe03986", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T04:05:18.451Z", + "quantity": 127.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e1182fe9f7cf2a118aec2f43643bc267", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T04:10:17.542Z", + "quantity": 125.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c6330b207c1436418b9916b3bbd310fb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T04:15:18.355Z", + "quantity": 130.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d042ccd348ee279946c2bfaa3fdcc134", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T04:20:18.236Z", + "quantity": 133.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "aedafed5aed94a114c303e4645df3a79", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T04:25:18.07Z", + "quantity": 138.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2e18a0a6d2d9d4f03d898c2723cd22af", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T04:30:17.619Z", + "quantity": 140.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0d877ed73ba032e82b74b0a08892d0db", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T04:35:18.376Z", + "quantity": 138.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5f072f3d223004ff5e8a3dd8be42dd09", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T04:40:18.523Z", + "quantity": 149.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "378f28fc83b511b3951aaa1d514a8830", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T04:45:17.622Z", + "quantity": 162.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4ea5690e0444c10cd53db5cde06b9cf8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T04:50:17.637Z", + "quantity": 156.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8178a1220cd2185c3820fd13372ace8d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T04:55:18.224Z", + "quantity": 157.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e0989dc7c625e2a159df86607ed7be4a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T05:00:17.696Z", + "quantity": 162.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a3368bbca148f68d93c6a5fb62277196", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T05:05:18.364Z", + "quantity": 167.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cf0f52a0672f7fca5b67c3dcb26ac422", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T05:10:18.424Z", + "quantity": 171.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e39f04583514fb3182b871266edf22a2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T05:15:19.712Z", + "quantity": 173.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9324653741a4199bda02e815d7088db1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T05:20:18.293Z", + "quantity": 172.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2d11752df8c5292a5f1255716f14b1b9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T05:25:18.31Z", + "quantity": 169.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "eb9ced9d76b26fab5d619ae1d832e427", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T05:30:18.3Z", + "quantity": 164.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cf6124490cdea6401be99d0f76466f46", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T05:35:17.915Z", + "quantity": 157.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d7a23d81e70fb16ce6ab6c5f8463fe4a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T05:40:17.821Z", + "quantity": 154.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5e76b378bac175726cb7c8361d920f47", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T05:45:18.454Z", + "quantity": 147.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d52e6f917561781bddd64fed84618372", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T05:50:18.09Z", + "quantity": 139.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "714101aee480052e3234cf29ef01c3e2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T05:55:18.25Z", + "quantity": 145.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7004386b51b02722987684e71ea52cac", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T06:00:18.638Z", + "quantity": 144.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "559d77e4a09afab67a301c74635476d4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T06:05:18.511Z", + "quantity": 141.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9cb7b59659d86fcd7e12f2603f5cb531", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T06:05:18.511Z", + "quantity": 141.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "09cfc55a269aa6b9a08e6f455507b4d3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T06:10:17.838Z", + "quantity": 144.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "08a8f8dd5b398d13cf19b6c138a2972b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T06:15:17.855Z", + "quantity": 144.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ead07ba38016f6347976cbd2d32db794", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T06:20:18.127Z", + "quantity": 142.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "929681be8f039f159a76ce23dcf3541a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T06:25:18.511Z", + "quantity": 141.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e8180109a4304d3efecc969139ea3fe4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T06:30:18.643Z", + "quantity": 143.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c49f9222f0b9e671e8b9fff5b3373458", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T06:35:18.027Z", + "quantity": 141.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a5b0b6bbcb74c5eb6bc704355dd37a8f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T06:40:18.477Z", + "quantity": 136.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9cc60197d44cfecaeddab6992209e1d6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T06:45:18.703Z", + "quantity": 137.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "90e009174f88788adc9b423237eeed7b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T06:50:17.996Z", + "quantity": 135.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2bc6609e3cc63b7a1230467fa395bc23", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T06:55:18.565Z", + "quantity": 133.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a41cf0672bf0f0439e9dd830182ea197", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T07:00:18.45Z", + "quantity": 131.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c93bdab95e1f183baa3349ee3f5691ee", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T07:05:18.574Z", + "quantity": 129.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a2d32b7e274404d436dec4aee60c88b1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T07:10:18.497Z", + "quantity": 128.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6605e24451f4525e3ea0da2566591fa5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T07:15:20.036Z", + "quantity": 127.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "38d82bb020d44a7b4018460cb4d51060", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T07:20:18.022Z", + "quantity": 126.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c7bd8fad4818dcb60a4177171e82a726", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T07:25:18.644Z", + "quantity": 127.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "da58cd6f41cb979e80072b7625a1570f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T07:30:18.962Z", + "quantity": 131.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "635b751772375dcb1ea90a36a56f365d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T07:35:18.161Z", + "quantity": 130.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ad1a709101dc2f29c49661766725a937", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T07:40:18.748Z", + "quantity": 127.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "854a095a77644c9c919fc4e112f719ea", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T07:45:18.656Z", + "quantity": 126.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "40834b0703c2eadaaa5226950d7be9f8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T07:50:18.21Z", + "quantity": 124.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "672236cb7e88ed0c4d09a9104f9b0c31", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T07:55:18.844Z", + "quantity": 123.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "71c40d60d805833d4a2dfde38c586432", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T08:00:18.637Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b8eb26b46f10d9ebd97fbd641fff4c5a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T08:05:18.718Z", + "quantity": 120.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "dae585caaf618a84069f155c44b04f46", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T08:10:18.905Z", + "quantity": 120.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c9058c492d60b36427c0a7ae218732d5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T08:15:18.955Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f5b0e4441c229b7fae66bdc686046ef1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T08:20:18.918Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c62ff36bf722df2dc54c07c642598531", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T08:25:18.41Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "92b2360e9a31cca4474135bba9ce9c9d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T08:30:18.808Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "72639d5beb16add5c2bd0096201555b3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T08:35:18.75Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "322571e1a28323e29b8db26129c0201e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T08:40:18.916Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1f6bdc28c484e92442db6eb64ce3373f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T08:45:18.807Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6c9fba8c58fd043c9072f807b85fc158", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T08:50:19.177Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "054562d7ad855fa7dce45dadfd69138d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T08:55:18.818Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6c4a1122d716b72780732ef086b73071", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T09:00:18.296Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a5da160ef56bdae30672e24a1d3bc9d4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T09:05:18.89Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5c5775c29bb7c0a5e89cd5df7358335e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T09:10:19.232Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ffc8e0ed43f74ae9b016f39c75a34ba7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T09:15:18.602Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7dbba0da99c06be7fb394f09d450f680", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T09:20:21.353Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6dd87a99cf1d9e34fe6e29b678b1bcee", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T09:25:18.885Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "24c237ce60a4853a083587c7d02ce4d4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T09:30:19.31Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "152b42f6bd799433686a63945e4e8a04", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T09:35:19.336Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "25377412789318169ad98b5795f55d0b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T09:40:19.04Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bedb101e5d414fa1ebd7585fc14b2367", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T09:45:18.742Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "95a5f67c5c5b1ee65a77125d5571c0e1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T09:50:18.498Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a2b6f08f167073c8666d64f1dad64cbf", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T09:55:18.597Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "46407f1762fb94dab2a300ff673929b6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T10:00:18.856Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1302b6a38f33901ee7ec3e2c4278d318", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T10:05:18.52Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b9bfc27401e243a0a41bb55efa67b568", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T10:10:19.314Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3ce404854c1abfc9f8ad600455f82578", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T10:15:19.288Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ce4d0f33c2e3583344dbb2f0dd8cafa2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T10:15:19.288Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8d26efb7ec4ac6f6d0a6f6120c3ccd1c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T10:20:19.449Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "de1a12be2403a40cbcb0d81f65eedbd6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T10:25:18.546Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7a15e678071d5752c2de8753bd250536", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T10:30:19.214Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2d203a7ad0de085afef0283e88cafafa", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T10:35:19.244Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e2d7331923fb5dd5c069aafa5b7c2376", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T10:40:19.331Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "365611ac44fc3e4a6381601daa462c66", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T10:45:19.561Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cbfbd2c8488b92a45a75fdfb33d24dc8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T10:50:19.047Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "40d2115df2931745c0dffc5b7cb1261d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T10:55:18.957Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0025f675b5bfcfd10b178cbd4a198252", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T11:00:19.576Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8ef166ba1677af21813e497a9bb1be43", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T11:05:19.397Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "84c3a389e5e1c9f26114018d2b678503", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T11:10:19.43Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6a795a5bab4a84bfabc84a96b62ef73d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T11:15:19.38Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f88c6c1314050c15db287eafe3a9efc9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T11:20:18.927Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "45e20fdbf9ce5b095018764f372c3c21", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T11:25:20.83Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e28dd6e8c833181924c61a9dfe8c0581", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T11:30:18.761Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b0aedbaac85cbaed0f0e58d4ca82a770", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T11:35:18.889Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3a6c850e3bf1c770e5fc4c81f7366705", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T11:40:19.016Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "096e7a629ead3b423ed60b95cf2b3efc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T11:45:18.992Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4bd28dfcfabebd20d6ccd1271c5973af", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T11:50:19.351Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "475c62724111686c55b511c0c3401495", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T11:55:19.043Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a4db8cce196aabff0e47b430bb1a0ef9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T12:00:19.257Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5716bc29b7c36d76bb6660cb0279074e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T12:00:19.257Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "868716bf378b798f6e4271f81deb29ca", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T12:05:19.249Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "35d334a49a8602918cd92afb181564fc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T12:10:19.267Z", + "quantity": 118.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7896ff8032c812e15ecf4cadcd0ccea2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T12:15:19.057Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "18ee39a0707ce7beaad4cbff91cfb857", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T12:20:19.636Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "992c95b4af1247db50e92fd071e015e2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T12:25:19.668Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ebcae8e1c64c66120bd2df9a3e86c69c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T12:30:19.675Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fb1ef026a868aab30ee4f4de1862a813", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T12:35:19.186Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4acf1c13339d78721ba26a239cba37ea", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T12:40:19.823Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "13c130e69fbacdc76acd0f6588c61ddc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T12:45:19.478Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "96de1fbd70934bbfcdd9b83ff0b1c74f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T12:50:19.635Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "381829a35b1163b2c288e6cd2aba5412", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T12:55:19.625Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "be3113315c36ff09d62c5df1a3af78a1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T13:00:19.049Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "291150d2f0b1d4f7d748484b2c14c36c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T13:05:19.042Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "adba33524cbba07b4d2ec857bcb4ae14", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T13:10:19.287Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "717cbf2b905e5da33a92f612bc32a8e0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T13:15:19.89Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "04a0734da01bf33c2048dab65bfeaef0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T13:20:19.701Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "33739f1124912778931222b9ced6068d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T13:25:20.981Z", + "quantity": 118.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3375859f8bbd0c48c89759445ff0b4fa", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T13:30:19.799Z", + "quantity": 120.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "068360df298201932be0531b2a361df9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T13:35:19.216Z", + "quantity": 118.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c629b8c03f6f3135acbcdd7644a40748", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T13:40:19.955Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "332debebc44e3fc8247c45c498ca920b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T13:45:20.029Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "589ad28490f77ea191be29d4eff06ee5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T13:50:19.661Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "45a1e6daee0645f735480fc7740ac65b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T13:55:19.104Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "27c466c828ac45bc22f5e144aec36592", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T14:00:19.466Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8818919b746e20d96f4c3801479cfc28", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T14:05:20.099Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ae535b15343d92284bc378f2bfb9c89c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T14:10:19.157Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9d0fedb5bef7ab594b1dd43e86140714", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T14:15:19.797Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bcbff4fff93ebee2418fac98ceb66749", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T14:20:19.2Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "698f46086ecd9ea5d5508cc6eb79cf16", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T14:25:19.793Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8486469f989b75fab2fa5e04c0a78a85", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T14:30:19.285Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2dabaad3f22804680702ed9fa3c61ec1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T14:35:20.021Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0e0002ab7ec487b5f7903f7b9f9a4bdd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T14:40:20.052Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5d7eb195b0720e19cfc16a719061ed10", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T14:45:19.987Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "33aeb95644b534d2045c7e192ff2f048", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T14:50:19.335Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b83a3ae0d4d8b68a1969a3295771f485", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T14:55:19.403Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e057c03e0f9243c440b245f4abb5cf59", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T15:00:19.997Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bbfcbd5a80dba1d2bca8d2f000a4fc24", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T15:05:19.516Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8ef8d569d04f2853b8b27f532ed53321", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T15:10:20.191Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fac6a897e237548c747399d87db778fc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T15:15:19.6Z", + "quantity": 123.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1675dbeeeac96d0a079be281cdec6b07", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T15:20:19.39Z", + "quantity": 126.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "486a030b2676b2d77e57ae571e969f5c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T15:25:22.277Z", + "quantity": 126.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fbc964c27d3e34b03b57ce8c1ef0a946", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T15:30:19.436Z", + "quantity": 137.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fc11a93a77285221e9268e9c05fbc2ad", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T15:35:19.633Z", + "quantity": 147.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2e8b604366f00e8ce449bef273a7b670", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T15:40:19.517Z", + "quantity": 153.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cb9c4488e4ff2e5477fa8c5246ccaca0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T15:45:19.528Z", + "quantity": 155.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "00491b9f0654a3bca469260bd30ec2a0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T15:50:20.006Z", + "quantity": 159.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7418a8375abe94f8115ab084be6b9c7d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T15:55:19.952Z", + "quantity": 164.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6af3ecd7f3dfb7a4d7ac39518c039ad2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T16:00:19.46Z", + "quantity": 165.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ed6c4e233e50e8687b51f5175e54c53e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T16:05:20.01Z", + "quantity": 162.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6e74022e0cd198f6a530ac28f63889b1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T16:10:20.419Z", + "quantity": 156.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2e6167d15d4923328ff0cc5cab5b5630", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T16:15:19.934Z", + "quantity": 155.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "37d40a247579f77eceddd0d7ea0210f7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T16:15:19.934Z", + "quantity": 155.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8f51a921b734f23685d90e2b4bd2cdbf", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T16:20:19.899Z", + "quantity": 151.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1f918b7779cd141d58580a6a2443ef85", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T16:25:20.379Z", + "quantity": 149.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ed6977e8d69c42989f750b4be63efc88", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T16:30:19.612Z", + "quantity": 146.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d5d56d80cb3e711e373df093a4fc72c6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T16:35:20.37Z", + "quantity": 143.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f9d0cc5f93939dcfeee41d2a6d40da3e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T16:40:20.267Z", + "quantity": 141.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4e644fe2f365a858b49950e7a0a8a40e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T16:45:20.272Z", + "quantity": 140.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c23445793585c098d781bf864869aa37", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T16:50:19.67Z", + "quantity": 138.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "237b21f438eaa876e0ed28f5f2af8889", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T16:55:20.501Z", + "quantity": 134.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a6e78c1ddd4e73019754630e8712c554", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T17:00:19.659Z", + "quantity": 132.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "dc997b1c5689711d7e4b5e77593b714c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T17:05:20.415Z", + "quantity": 130.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6def508dc0c244f01e1ed1c358719b55", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T17:10:20.036Z", + "quantity": 126.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5cea9dec6ae6214f4d5a09f3dbe002e6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T17:15:20.188Z", + "quantity": 134.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "17324413eea83f77fd2c443f3e23f151", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T17:20:19.777Z", + "quantity": 136.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "555442052b1532d34793bfbaee3de84c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T17:25:21.097Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "44b773324e79f336509e24c2c18b295c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T17:30:20.246Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1d8a039be562278e6173a9e6461163aa", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T17:35:20.684Z", + "quantity": 118.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2673a223a31f5170319bf1403b824d28", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T17:40:20.466Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9c8222f1375aa8047923159aa83d9e03", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T17:45:20.466Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3bca05947ae9111984a9a132476ca961", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T17:50:20.095Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f4e3466bd3f7a63ffd8df93949580145", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T17:55:20.614Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "dd6d646b4f803399f06b42f56baada62", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T18:00:20.379Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9f259da3e437acc610ba0d2feb4e5397", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T18:05:19.945Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f83d37d48e28d8e1d7e464f0b8adfb3a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T18:05:19.945Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "92916e5fbec30779269f3ecbb44f713c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T18:10:19.884Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "caa8a3b6ffba775b97b60afed9cfaf59", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T18:15:20.155Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fd788c4916f0f7c0cf4d6ee62bd32cbe", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T18:20:19.895Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "13c37ea12c516d5e59c22da45b2ec4bf", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T18:25:20.037Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "afb6d93476fe123b0fb714a2720cb292", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T18:30:20.324Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a2ad4254020cc04397e0fe9adfa7be22", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T18:35:20.187Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "596b47687865f578b4f16ca039c6b30d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T18:40:20.104Z", + "quantity": 120.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ce1ef1f83b47e06140fa8c2878dfd4b1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T18:45:20.507Z", + "quantity": 123.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fb2b715ff0d692d84615f39b4e01cdc5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T18:50:20.777Z", + "quantity": 120.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d45418775f111472dbb278dc9e86ded4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T18:55:20.215Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f32fc773a294ff6d8e6f07b18ce2bfa2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T19:00:20.187Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4639ae9ad389eb7b2d890b980bed8cc2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T19:05:19.988Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0234c6dc1557be85814905850156eae5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T19:10:20.757Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "818e437e3d950fef549bf0688a477aa7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T19:15:20.825Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "62a6bfde8a5b4461cd34e91de8fe1a58", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T19:20:20.382Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "efd0a5c290a1e8a3902d3766ef4a4dc9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T19:25:22.194Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "be1f917b192a8aabfe5d2edb8642c031", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T19:30:20.047Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "225ce595e6713a28b3c19d8212327208", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T19:35:20.799Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "28e8501e855467ae9a0cb1645de38317", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T19:40:20.296Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8e5aa891f28ba4f9a9a771ba172f918f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T19:45:20.852Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "41778cbd6b9038cb07de4c94ca07abfa", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T19:50:20.22Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a98d10a38bd794f6b4662aa74772ebc4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T19:55:20.739Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "97319e4efe4bed8c2f856fdf8fbc8dfb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T20:00:20.322Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1785b6ab0e3c19b0469225df9b0e62eb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T20:00:20.322Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "10831698270b54f79ac025133e464a70", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T20:05:20.621Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3064040e2b0a109879cd77e09daeb45f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T20:10:20.376Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "85a0edaa63764341d07459a873deca00", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T20:15:20.438Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e8e08b778e4859e1976dd2bc7bb417d0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T20:20:20.669Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "45a2fd3691b279021c6946b7f3d439ec", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T20:25:20.385Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "931bf07cd2451a683b8b0e1183763338", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T20:30:20.62Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8edff1716abc2a99d9e4b498c3aef713", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T20:35:21.085Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6ca09d0e7c2a933c65f99f51c8cd504b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T20:40:20.821Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5ceb6a16744db4a9a28881dea4112414", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T20:45:20.93Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "df987e3045dde17bd83af2c85a4efd3a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T20:50:21.158Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e067aaf98594bb4f7474ce68d883b10a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T20:55:20.696Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0e0efee28749549a0684786379b70947", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T21:00:20.647Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f49d996c1391e718598440d96eb6ce59", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T21:05:20.343Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "700a7f7653ed1432d4bc2fbcb9f767c5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T21:10:21.058Z", + "quantity": 91.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5983fae4e2a5c6d0f864ca44f499da12", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T21:15:20.917Z", + "quantity": 91.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "67c071458dbc4c98bc796b65df63c4dc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T21:20:21.312Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1346a4adee6f39427a2cc8cfaf6c9de2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T21:25:21.89Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "03272e565901d3a82f7176f4a390f02a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T21:30:20.4Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3c511d2b4a8dcb018f6b2084f7edee78", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T21:35:20.642Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "09e5a7dbe970440d0cd8dc2039337310", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T21:40:21.108Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "546af7df1ee9e378b3c8cd00d647a2dc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T21:45:20.916Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bb730aa306bcfcbb7f8df31d354b35bf", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T21:50:21.187Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "70bec329888dfb0a6b6b0bba075e84c0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T21:55:21.547Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "17dc87c02cb3486e71359b8c40f5c1e3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T22:00:21.341Z", + "quantity": 118.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "28e0e98a9f3d124923e71bee987d1860", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T22:00:21.341Z", + "quantity": 118.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "12158bbdc33b2ec587f1e9ac9b92ce34", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T22:05:20.797Z", + "quantity": 121.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b090502f235a509d7363ec607543c3da", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T22:10:21.24Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0a26987732c89ba57e823416f0714fb7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T22:15:20.55Z", + "quantity": 131.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "075df8f04697e9c97c8724475861293e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T22:20:20.503Z", + "quantity": 127.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a7f98bea80415737e81cd850c4fcdf99", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T22:25:21.354Z", + "quantity": 134.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "487b05df2b2a0ea658f85928351aa97f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T22:30:21.077Z", + "quantity": 135.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8c28c5eb314eef7f3bcab1e6aac1eebe", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T22:35:20.585Z", + "quantity": 134.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ccb03f80ae80087a872863dc0225f7e0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T22:40:20.807Z", + "quantity": 134.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7a4095b09b6eac4032ad2d253adfe166", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T22:45:21.201Z", + "quantity": 133.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2fa7e0388cb306f19b1e6f8b6e0956c5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T22:50:21.164Z", + "quantity": 133.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3681a63ccbfd07a1450bef1ed93c0ff6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T22:55:21.105Z", + "quantity": 133.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5e51df8f819139826fade345133069a5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T23:00:21.182Z", + "quantity": 133.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cf27baf1439cf85e864c5cf6e310a0d3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T23:05:21.38Z", + "quantity": 132.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7e565e654eefca73d48c89e6fbbc915e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T23:10:21.155Z", + "quantity": 132.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2b0776c771f3e3ab03860b98a8e7f5af", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T23:15:21.201Z", + "quantity": 133.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b3b3943cb1bd07ab7a9a8f7d5a157d56", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T23:20:21.571Z", + "quantity": 125.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1b9391854d08f97f886536ce132f5bef", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T23:25:22.838Z", + "quantity": 121.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a505caa9c425bd98ed91336a85ba697f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T23:30:22.838Z", + "quantity": 128.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e76175033eff6cc5660e0425ea28face", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T23:35:21.445Z", + "quantity": 138.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b2c48e5b0602ad7c2bb91d4a2083d633", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T23:40:21.231Z", + "quantity": 140.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e9b0b93fba0c46f211d673e7a317ec46", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T23:45:21.433Z", + "quantity": 142.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "41eb9afde37cebd7b1e12395fdb50934", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T23:50:21.131Z", + "quantity": 142.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "99a43cf1f90e6ea81aa04cbfccf8581c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T23:50:21.131Z", + "quantity": 142.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "25d0333b75bc1398b20bbab736b8e169", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-06T23:55:21.729Z", + "quantity": 139.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "461d7c7830f3f7219395c72f4eb146b2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T00:00:21.022Z", + "quantity": 151.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "dad0dd0a9f3a123514520577ed65e0f3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T00:05:21.47Z", + "quantity": 152.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4e848176d4957af5a639c2d1e98ff8c9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T00:10:21.206Z", + "quantity": 147.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c5db14210b03b4dfe624643e6e25b6ba", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T00:15:21.565Z", + "quantity": 150.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3aa0e4f77eec8551126570de44cb3e47", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T00:20:20.949Z", + "quantity": 157.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1b6e2055c6d82ef5a310ec656f1a1ce1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T00:25:21.147Z", + "quantity": 163.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ebc7439f6a13c17c7484e8f0deeee63c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T00:30:21.364Z", + "quantity": 171.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e4be119f8018244dca1fc3b1010b211d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T00:35:21.438Z", + "quantity": 173.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cd2e50b062a911276e597b1675bfbbbd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T00:40:21.715Z", + "quantity": 176.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c9ddbc307b1d8f7bf2c82692e2bb138b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T00:45:21.243Z", + "quantity": 176.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "27721cddeb1087c78517053c6a513cf5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T00:50:21.662Z", + "quantity": 175.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "40357f654a53b3049457e6c1e7d32348", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T00:55:21.169Z", + "quantity": 171.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "075d7424c7a6885000aa8e5d9187ed92", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T01:00:21.686Z", + "quantity": 165.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3e8b313744794a9a8e55523d2ebb4213", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T01:05:21.199Z", + "quantity": 164.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0c0aef278c6d09190587439ecdb867bd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T01:10:21.128Z", + "quantity": 163.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f7d5fef5850616d566cf2269a75e81a2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T01:15:21.587Z", + "quantity": 162.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4dbb154aa7ff2a5ac6cf00cf6cb3f8c4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T01:20:21.544Z", + "quantity": 161.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "be0e30643771c7361bfd6946fc2b76c6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T01:25:21.51Z", + "quantity": 159.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c74ad39ad4580e84758f1c63529f3279", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T01:30:23.095Z", + "quantity": 171.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "02fe290be8f54d1d3496807956005c61", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T01:35:21.233Z", + "quantity": 177.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "45f292342b817cca5ab0f469688842ef", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T01:40:21.186Z", + "quantity": 183.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b3f304194e07dc8437b7f469606ed3b8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T01:40:21.186Z", + "quantity": 183.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "dd65641e1041f53a546c6273e91b43c9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T01:45:21.246Z", + "quantity": 174.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fc6edc78a39fc2e9d558fd28cd50a385", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T01:50:21.861Z", + "quantity": 165.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2101082a239f43e3e5f294b66fc7852b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T01:55:21.788Z", + "quantity": 180.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bffef9995c57b27fadb01b797a12f4de", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T02:00:21.355Z", + "quantity": 179.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cc89d20f3e46b07fa2592c0781b4b71c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T02:05:21.124Z", + "quantity": 177.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fecf2537cd156b233bdb70001e621db1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T02:10:21.685Z", + "quantity": 174.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ac1e715bec101acb7e9320ef6bd91f9d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T02:15:21.586Z", + "quantity": 178.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "beb3113034c309443788bc9d96512339", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T02:20:22.061Z", + "quantity": 179.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5c1734e8b5dfd6cde38f9f1900fdfa80", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T02:25:22.049Z", + "quantity": 178.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4d08cce354eeb4da1ee053aed8ed059d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T02:30:21.548Z", + "quantity": 178.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "152115c4f2e9cb57d189783a641ae6a0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T02:35:21.582Z", + "quantity": 174.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "688ef1ff913fb24404bbcc7f82299dbf", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T02:40:22.185Z", + "quantity": 171.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7041c3d4ced6f26c351f217f2ced71fe", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T02:45:21.668Z", + "quantity": 173.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "214852ad9197b013d199762d70daca69", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T02:50:21.673Z", + "quantity": 171.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "02d237a5cb51d657fe218815280578f1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T02:55:21.455Z", + "quantity": 170.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a592711aacecf1f952e67e5e3f70a1b2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T03:00:21.392Z", + "quantity": 168.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8886abbbfcfacc381d7e3283759e903c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T03:05:21.632Z", + "quantity": 171.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9e755e7a4b36a5010c1d6e6962d33149", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T03:10:21.433Z", + "quantity": 173.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0aec88e604164cb58cff0a18846d3bee", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T03:15:21.554Z", + "quantity": 172.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "efa1eb409f5d8c48b5750c2061fa73e3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T03:20:21.659Z", + "quantity": 172.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5879d43372517d20148a4cf28a8d9a8d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T03:25:21.763Z", + "quantity": 179.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fad682f883204c0a1ae992c07d3b4091", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T03:30:22.872Z", + "quantity": 168.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c4683a84a7b4f187a6a4e05d11d2e3ee", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T03:30:22.872Z", + "quantity": 168.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a4c84d48315811ef0c87f8d4aeec3fb9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T03:35:21.431Z", + "quantity": 172.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "15624e310ea529c64f2f83e4beb52065", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T03:40:21.432Z", + "quantity": 181.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2bc6e815b0ea44a26cbad3680b0d3ee9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T03:45:22.393Z", + "quantity": 185.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "592204296e9e5adff217085111021ffd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T03:50:22.06Z", + "quantity": 187.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "592ae799e5f4ee7045dac6caff201b1f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T03:55:21.805Z", + "quantity": 186.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "eea6bba22969cf8f905f0b0c8998fd8d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T04:00:22.135Z", + "quantity": 182.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8f1880a1d42293be1ca950e1526f7c4e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T04:05:22.164Z", + "quantity": 188.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8784019246ed591f7de6f10b7917aaa6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T04:10:22.25Z", + "quantity": 197.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0d585c9bf74a43607b62d176e087a018", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T04:15:21.861Z", + "quantity": 200.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b57726fdfec840e146b0a8fb8f00c3d7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T04:20:22.401Z", + "quantity": 199.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e3ba06e9520f471b018b2271044b2db6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T04:25:22.73Z", + "quantity": 194.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c91eb62474e3a19080df10472c2c4b1d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T04:30:23.315Z", + "quantity": 193.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0bd3cc2f264791158e696db4c22a1178", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T04:35:22.627Z", + "quantity": 186.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b7a9ad1a3b518b83ca546e471884dd52", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T04:40:21.94Z", + "quantity": 178.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fa78caa5905e245be3673146c958d36c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T04:45:21.725Z", + "quantity": 177.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f93a4293ec0297cf81c6b9b807833228", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T04:50:22.62Z", + "quantity": 173.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "94da88032e974798c6707d24c3fb8bfe", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T04:55:21.929Z", + "quantity": 168.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "aba170eb1e889c3da6d3f8e13f63e37c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T05:00:22.272Z", + "quantity": 168.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "de8860b29fb3c30e0c9c417c360c0262", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T05:05:22.517Z", + "quantity": 162.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bda0e05655791773fa142b3cb940f44c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T05:10:22.353Z", + "quantity": 152.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5afc0c4913535e9e8035b07381d336fa", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T05:15:30.77Z", + "quantity": 152.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a4ceaca4d15eed895788c06d93353a1d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T05:20:30.77Z", + "quantity": 159.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7fb4d970485ff9e4bf7e9fff9d1368e9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T05:25:30.77Z", + "quantity": 157.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5014afbb2472a38ac9aaf06b243dd498", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T05:25:30.77Z", + "quantity": 157.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "53099a88bd8e1f76cf90d808522c5d17", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T05:30:30.77Z", + "quantity": 162.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c93b09d98b7928e2bbac4f6b0f9b8f5a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T05:35:29.954Z", + "quantity": 165.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "15364ed23909cd7ae6f68081076363bc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T05:40:27.272Z", + "quantity": 165.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f865e0be30d017df4e1684e96e66f89d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T05:45:27.124Z", + "quantity": 163.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "81fdeedfd50b60935ca87dfae12253f5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T05:50:27.553Z", + "quantity": 167.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cacba27473f5682c1c5b74b7ee1a3a16", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T05:55:25.924Z", + "quantity": 166.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b05f3f1911171b6a4fe943402803a23e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T06:00:29.744Z", + "quantity": 165.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8dba373ad2a3179b5b23f0fbf3d886e0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T06:05:28.591Z", + "quantity": 170.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3e64e1347ee1ce65050e85e14ebca980", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T06:10:29.572Z", + "quantity": 168.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a74982af33e42f45bd65ad68f239f0ab", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T06:15:24.41Z", + "quantity": 166.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "29d23591e42b1a969aebef2f49a314fa", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T06:20:22.836Z", + "quantity": 167.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "dd60bb4e366622b07835efa18cd6329d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T06:25:22.252Z", + "quantity": 169.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6a9aa62417efc31db4e8a97a1bbfaa35", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T06:30:22.21Z", + "quantity": 172.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "36823fc805c59c8f735a2a348ae00f6e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T06:35:22.91Z", + "quantity": 171.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5becfb8f588919fce84709f4083742af", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T06:40:22.68Z", + "quantity": 168.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a0cd9e736773be9b823c9c0a4b038010", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T06:45:22.227Z", + "quantity": 168.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d2d61d0ba3509da4d41b2ede3f3f1c33", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T06:50:22.15Z", + "quantity": 163.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c3fec2af69595f5405cf5d00787830c0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T06:55:22.288Z", + "quantity": 161.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fed99a26d874eade70db6f1858e18810", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T07:00:22.908Z", + "quantity": 160.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "764fb14f98c8421273bc38aeded0c088", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T07:05:22.958Z", + "quantity": 163.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d2622cfc44a6495a99cbc0c25924db46", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T07:10:22.793Z", + "quantity": 165.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0a34d38f297eb965219f5e0d99259f1c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T07:15:22.72Z", + "quantity": 166.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a0538d4a201a22bd12db49b6884eb283", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T07:20:22.132Z", + "quantity": 167.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d8de0fc5140749135a06fc3d6fa63e86", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T07:25:22.312Z", + "quantity": 165.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f605b878213613381375e38b3a647bbf", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T07:30:22.622Z", + "quantity": 164.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "500cf18e74032201cb97059a2fca1385", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T07:35:22.575Z", + "quantity": 164.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4f5322990acbb04558aa1201bcf648f5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T07:40:22.517Z", + "quantity": 160.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "21d984ddd47978f4580d49d3e2baf398", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T07:40:22.517Z", + "quantity": 160.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c5a811497e6967754f19cb77fa6244b4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T07:45:22.245Z", + "quantity": 161.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5caf08b776dd23668e13282dd8c055c6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T07:50:22.251Z", + "quantity": 164.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8e90d11531d45b438b27892ee66d6c46", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T07:55:24.661Z", + "quantity": 162.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "64147a0529823e64d7d774bea010f2cc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T08:00:24.661Z", + "quantity": 160.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c41b8d6887f207685c2b5a9a12dca277", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T08:05:23.339Z", + "quantity": 159.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "559bf7e11f7876c6869b9b1d85a84a4e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T08:10:22.418Z", + "quantity": 157.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7b0e92048f13d27f25b394a488e885b6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T08:15:25.129Z", + "quantity": 164.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5112c968f6d5e770bb16c98c475b10c4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T08:20:22.797Z", + "quantity": 167.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c85a5cb92bae87b35ee786ffa7be8e05", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T08:25:22.478Z", + "quantity": 166.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ce4d92d1d8125b5f33d2b8a0adc89956", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T08:30:22.339Z", + "quantity": 161.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "710ee6eb8a3c8ef9168001fc847244b8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T08:35:22.295Z", + "quantity": 160.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d917ca83a726f526fe2c1a719c34de96", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T08:40:22.515Z", + "quantity": 161.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0f5e9ce850117204265f0cbd0f9c8e48", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T08:45:22.497Z", + "quantity": 164.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e7e27be718f50137c99deab9fa98a7a6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T08:50:23.219Z", + "quantity": 162.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c96d27b630887ab503927193fb5657d8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T08:55:22.939Z", + "quantity": 159.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3cbaebea90c3ef8099694178664ed83a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T09:00:22.8Z", + "quantity": 154.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0f28ce5a0f5a6b2e55ee4fc2fa6fe137", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T09:05:22.786Z", + "quantity": 153.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2fca1e32156f431119dd7749e2585e92", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T09:10:22.653Z", + "quantity": 162.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e3dc716e3f80e6940a08789fa78f5bf6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T09:15:23.271Z", + "quantity": 167.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e18dd8cfec87ca84ff36656f50eadfcf", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T09:20:23.23Z", + "quantity": 165.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "24d0d9276b45d15671753247b782dd90", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T09:25:22.538Z", + "quantity": 164.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fdd2416bc92fede962f88b1ba41eef56", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T09:30:22.526Z", + "quantity": 162.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bde08fc58ffc55b93960b5af7a11aef8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T09:30:22.526Z", + "quantity": 162.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b4b0e3a089da254a8ddc3ed1fe9f33b3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T09:35:23.19Z", + "quantity": 159.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "be489609b96cdf4c55d5031008f2ecc4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T09:40:22.404Z", + "quantity": 165.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bd284cb8f2893a478bf823fabe9cd5a4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T09:45:22.908Z", + "quantity": 164.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0d3ebc32a4b6f5cb4f8de12c13a517c2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T09:50:23.327Z", + "quantity": 155.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9ae1f0400a9b0f069638c0398006744d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T09:55:22.741Z", + "quantity": 153.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cd4e825f2c25dda0661cfd9690f4d4ab", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T10:00:23.239Z", + "quantity": 150.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d474024811144501199af88dd4352d84", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T10:05:22.994Z", + "quantity": 149.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3910862090a8e77e4887b538548a078b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T10:10:22.833Z", + "quantity": 147.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ff033e32397f5a89fa67f043dbbcb518", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T10:15:23.746Z", + "quantity": 145.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fa7f92fef4289e9d8be6b75fc5f003f9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T10:20:22.567Z", + "quantity": 144.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "aea99f9d26a32b826e8be3385f35601d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T10:25:22.614Z", + "quantity": 141.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9fac85e33886bf47cd2a677becae29e6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T10:30:23.042Z", + "quantity": 141.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "72fa9fc39d76ce2399f642287c8de48b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T10:35:23.341Z", + "quantity": 137.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "28e5fecb1e9fea80d77b26c4e9f04c93", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T10:40:23.266Z", + "quantity": 137.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1814501b9bf3ed7c4661696c48eaf461", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T10:45:23.419Z", + "quantity": 133.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c4db7d9e1efeb74646d2ca928f617294", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T10:50:23.067Z", + "quantity": 134.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1b938aa2c903e85988ef2f586db1e567", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T10:55:22.636Z", + "quantity": 134.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "91bb1b5b757d2f9d0f2294d23ff44dba", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T11:00:23.196Z", + "quantity": 132.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cc7f9bc9ef708df9a38c2f0aa8aac14b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T11:05:23.419Z", + "quantity": 129.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "78d9efc42452d4f9c7b6e47c754eefa1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T11:10:23.497Z", + "quantity": 127.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3fba121cebf88dcb0fceb579afb42c42", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T11:15:22.876Z", + "quantity": 127.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "07c92b8668323a588c1aaaaeb9472401", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T11:20:23.228Z", + "quantity": 129.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4e885d4ff23c61cae9009e1315427826", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T11:25:22.734Z", + "quantity": 129.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "77a4bf8f6079a702ac7c7307a2c01284", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T11:30:23.164Z", + "quantity": 124.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d5963053352ade504af8bcb89ca07028", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T11:30:23.164Z", + "quantity": 124.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8c467e2c63d231d49e7a3f0053971eaa", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T11:35:23.736Z", + "quantity": 123.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3fdceb01b099540892ca5268b87a5595", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T11:40:23.475Z", + "quantity": 120.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "023c271578b9a741281adef40e802436", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T11:45:23.468Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2953594738b6c91cefd1db5a2b7dd571", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T11:50:23.53Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7e2904d2246014d7ff0dd4fa51097f39", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T11:55:23.32Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bc17800233f5c7c21353aef1912070de", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T12:00:23.07Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b6d1565533b0a68bd2e985cdbaa252c9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T12:05:23.726Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1f49cbfcb8679a21bbc820566c3ee525", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T12:10:23.248Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "aa66aaccad75ff5d2fb3c8b17b168a25", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T12:15:23.567Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c86504903576e350c29a673003b9a558", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T12:20:25.021Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4bdf16cf25f568f043edd0456b410191", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T12:25:23.439Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "29c47a7c327b78f63ac15dc3367455b1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T12:30:23.779Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a14ee055df5a68a74b005fec4f26547c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T12:35:23.722Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3cc9a783cde1b3f88a6df7aec72ac129", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T12:40:23.911Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "630348bb5fee48c1c19f6c5df8b85793", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T12:45:23.467Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b9477bd7abb7e7b501d4d1ab6dd68e09", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T12:50:23.828Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "718c7d267c22f5e9b5b7f630cc26c91e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T12:55:23.59Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a3cadb64ca204eb7af79e721ab2dc9a3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T13:00:23.978Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c0db056f849f10361a2176367ccee524", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T13:05:23.94Z", + "quantity": 91.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4eda57f253332d06b8f19a3ea3fea2f7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T13:10:23.089Z", + "quantity": 89.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8bde9d9168d936f897c0207d8b05442f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T13:15:23.421Z", + "quantity": 87.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4be40697ec733c45ce613895cae8f90d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T13:20:23.208Z", + "quantity": 83.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9e9c7729085d3659c8cd5e9dd3a2a32c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T13:25:23.977Z", + "quantity": 82.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5274047ba3d5d177f77cea647bdcdf66", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T13:30:23.576Z", + "quantity": 82.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3a1af3845f9665c5cd2a8073f9843cd1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T13:30:23.576Z", + "quantity": 82.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1782996f02a0da47770b8a8cebbce6d3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T13:35:23.426Z", + "quantity": 84.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5db8e8d604a5f342d9d57653cc3be492", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T13:40:23.744Z", + "quantity": 81.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "aaa908c675f0f99a062dc9e2a7208d71", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T13:45:23.766Z", + "quantity": 82.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cc85b6b518ada33c5965a826506c8b81", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T13:50:23.653Z", + "quantity": 81.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6cdaba529de2c2eba3550cbb9f030c98", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T13:55:23.686Z", + "quantity": 81.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "96cc0933d3a4dc64744c6e1533933533", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T14:00:23.998Z", + "quantity": 83.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fd96af13dc102966dc5dfa48a1c1f81d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T14:05:23.683Z", + "quantity": 82.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "dc1648639fe2e68588c40aaeee40be25", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T14:10:23.502Z", + "quantity": 84.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "43637601270148f773a688f0781e31b4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T14:15:23.265Z", + "quantity": 81.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "054a89f28083d61968ebc9dcd65fe5d7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T14:20:25.424Z", + "quantity": 84.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3caafa4c9a287c6192e6adb3cf9fcbbb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T14:25:23.742Z", + "quantity": 85.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "25b12177af28fc146ad61060a7a47872", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T14:30:23.859Z", + "quantity": 83.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b124d179caa596a1310d7ececa13514c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T14:35:23.949Z", + "quantity": 79.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c25bd90fa2cab60175a459d0e025516a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T14:40:23.652Z", + "quantity": 75.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f964a15a4037bac43239469d8617f968", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T14:45:23.744Z", + "quantity": 74.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ac2c4a65f77bd4a4bbb20296bc3b0c9c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T14:50:23.744Z", + "quantity": 83.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8c85882a5e0b0c1c14068acd75786192", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T14:55:24.064Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ea6a8b995a7baad67fce71fc2aa5f826", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T15:00:23.726Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "93ae1ccf4747c5f8a3199b0dc585adf1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T15:05:24.16Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ffe30999634305fe6ae7a69084ba409e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T15:10:23.841Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1cfea2fea21f5762f070723dad4beb5a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T15:15:24.12Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5d9a02fe5581f17b261f4ffb0897e125", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T15:20:24.993Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "60afea76b3826b18423e825858fa3491", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T15:25:23.384Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bb4b82da787e3600ef6673eb462f05a1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T15:30:24.024Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "64b8a18c29aa32ac32ff3b6f0e23376c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T15:35:23.663Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1909caad1c6b30c442000622e5ead853", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T15:40:24.312Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "640ac02e1c399ddda7172c3069e418c6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T15:40:24.312Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c20ce36d6de668a36173028c2d8f2d7d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T15:45:23.706Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "de71135d9056b1e96796770121a85600", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T15:50:23.859Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "33e8d1afa108c6be8ed79a74d7c20ad7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T15:55:24.418Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1993d554b93333ec59591bacd6da1068", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T16:00:24.19Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3c4d8c5d9aa2e00ebc8a0e3df22bc827", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T16:05:24.38Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "840d284346ded7960e105f428b817bdf", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T16:10:23.913Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "20a576a688001ede68316736275ce9a5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T16:15:23.83Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ad7675d3d9fb2d535267a852ca52c7e6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T16:20:25.25Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7c5d04f3420d6272acbc03377a01d124", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T16:25:24.054Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7c422f69f6d8e7b4506466d8772bc74e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T16:30:24.348Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b9ae08e966d8a179ff8a830096f59b25", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T16:35:23.708Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a4ba443b6df9ee6dc42c8fa62634c4e5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T16:40:23.805Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8cfe43c1cc55c0848420748a1f205739", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T16:45:24.558Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a6fc327ba82c749f448a49953326353c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T16:50:24.423Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "444b37a869e32fd660f387b3e4292578", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T16:55:23.726Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4523f95abd8c5ba767a2436d8a19dbe8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T17:00:23.754Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b56ff9936c8a41984272187677aac729", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T17:05:24.444Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c87e12308ab7cfcd0a1c226068dd63a8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T17:10:24.381Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6c3a5d3770033441ac33797654949390", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T17:15:24.192Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "61999c0e81553df7a924ad87919e931c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T17:20:23.941Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f25723c48a486c8708624c63477949b3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T17:25:24.18Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "19fb11b0b7560e81bce4900917a4a3cb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T17:30:24.152Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "183738da3562949ab95bb4de6e769827", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T17:35:23.727Z", + "quantity": 124.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4ccbe266c924eb2f48108376f46987eb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T17:40:24.346Z", + "quantity": 127.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "eddbff3d623521e73cf0222b2cda4bce", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T17:45:24.686Z", + "quantity": 129.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4ab312924ef008bb93bfe4fa9c34a87f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T17:50:24.828Z", + "quantity": 148.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ce27340ace202549fc41e5c85a5f3095", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T17:55:24.828Z", + "quantity": 144.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b9805a09cd952790b3bce30f2fdbb184", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T17:55:24.828Z", + "quantity": 144.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7fa32801a8e4425b8e07c5dad63550f5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T18:00:24.378Z", + "quantity": 155.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a97bcd6ed5648d87be263c3bf416e1b0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T18:05:24.663Z", + "quantity": 155.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9b30e09146d9b32ad8f943f1f4789761", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T18:10:23.957Z", + "quantity": 158.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b33c918102ac51d9cdb32a640a9ffce2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T18:15:24.654Z", + "quantity": 171.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f6ce3a892b1085980b66c5a451e1644a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T18:20:24.473Z", + "quantity": 186.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "79ab064b2352d547f842ec34c05432f6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T18:25:26.417Z", + "quantity": 194.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b328d564a9ddb1729cdbc293366b2a6a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T18:30:24.296Z", + "quantity": 207.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d929a39aae34dfd6dbe387d3c48bc119", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T18:35:24.657Z", + "quantity": 212.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6cb87f11f077162cb27fcf14ae384ea5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T18:40:24.435Z", + "quantity": 223.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fda4d80bc3b18f70b1bac5f88b209eb5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T18:45:24.504Z", + "quantity": 222.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c0aab224e9c072f1f54132be19430a0f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T18:50:24.296Z", + "quantity": 223.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ebec95a6bc4c4943d99287d0adad5c8a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T18:55:24.845Z", + "quantity": 254.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "55860b7b7c7c09fca51bca1eaa707880", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T19:00:24.524Z", + "quantity": 271.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0e549f48c84cb0acdd06808a62b03ca1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T19:05:24.313Z", + "quantity": 272.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "934a4e42b62c547d6ab207d208a7d07f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T19:10:24.876Z", + "quantity": 271.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "98a9ddbc9e6c8e1d29d80079e6f24b3c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T19:15:24.876Z", + "quantity": 258.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6add0130fb7194d41102269c8a0c7b6b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T19:20:25.003Z", + "quantity": 259.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c29e0ce3e41cdec905156899e99de2f2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T19:25:24.234Z", + "quantity": 250.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "911256a9e1111e24a3f6c96df01aae80", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T19:30:24.934Z", + "quantity": 247.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "37f8014eff2ce56c4f5afe96da89fdca", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T19:35:24.129Z", + "quantity": 246.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1fdc43ddeebd4ffed1f0be085462e487", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T19:40:24.499Z", + "quantity": 246.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "37cef76670e835bc7b63adbb9d129e5d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T19:45:24.691Z", + "quantity": 246.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ca676386ae90a132c4c9e5f21f85cd7c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T19:45:24.691Z", + "quantity": 246.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cce5744d61af86c8c85470d061dc8df7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T19:50:24.812Z", + "quantity": 244.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a30f822dfa1c3896c13a02ae9d4bc555", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T19:55:24.757Z", + "quantity": 243.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d20ea21b1a368f694fafd06d13e52821", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T20:00:24.822Z", + "quantity": 240.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "144278a7ae6f280778f8400db3264d66", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T20:05:24.72Z", + "quantity": 236.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "81f28a6246f1af9b815153b94e619961", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T20:10:24.631Z", + "quantity": 227.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "061f1fd320607dac51c82b8bea7b822c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T20:15:24.848Z", + "quantity": 226.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "45183c50f4faee1249b4f08cf51070b3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T20:20:24.889Z", + "quantity": 221.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "50f3b4b7084083f4aaae22b4341e41d7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T20:25:26.61Z", + "quantity": 219.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1d1f92e112e1626ffab77fc3614f4701", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T20:30:24.869Z", + "quantity": 217.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ac3d1460385300dea39ff57073c3d502", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T20:35:24.76Z", + "quantity": 214.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fa0ac18b8f73cb3e3f04f1daa5db64a6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T20:40:24.87Z", + "quantity": 213.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4e0616daef8704ce742f1a4fd657fffd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T20:45:24.754Z", + "quantity": 210.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "24704faa725ebd9427dac8270fef5258", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T20:50:24.82Z", + "quantity": 208.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5f0944479f2daeedcb0e4da89d8584cd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T20:55:25.109Z", + "quantity": 208.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5ab88fed7a307bb474bfc20a99840a3e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T21:00:24.986Z", + "quantity": 208.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9e14ced81dd32822456ae32741d18ff2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T21:05:24.809Z", + "quantity": 207.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3384df4480f9530ce0a4f7e302582d14", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T21:10:24.407Z", + "quantity": 200.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fc0fb5218830198e127ea3dcc87843ff", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T21:15:25.332Z", + "quantity": 193.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b9f46c9491e413998fc74efd4c62ffac", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T21:20:24.357Z", + "quantity": 177.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "80722b4315dd0badda8e6da8e2863a98", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T21:25:25.485Z", + "quantity": 163.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "aabfc659a2ba29917d793437ba26eae5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T21:30:24.5Z", + "quantity": 155.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1db1f193fa958ddf5efa64c6c8ec6f3d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T21:35:25.792Z", + "quantity": 141.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "56420270b06552880243cb34c7115325", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T21:35:25.792Z", + "quantity": 141.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ec471de4d9e0f18e548ce70b62f444e5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T21:40:24.5Z", + "quantity": 133.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "80372f8631852dbcd1962a05a7976c4c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T21:45:25.145Z", + "quantity": 139.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e7daf95123775aa4c1f332b9e54ebd2e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T21:50:25.364Z", + "quantity": 146.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "737673c288b8b13c8e0866b545becebb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T21:55:24.874Z", + "quantity": 147.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b6402c6cb3c7fe542d12ae68b04cf52f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T22:00:24.796Z", + "quantity": 151.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "37562cc657a96833f37aa31041c33fbf", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T22:05:25.387Z", + "quantity": 159.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5ab318a62ef08a050069068a141a02a3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T22:10:24.987Z", + "quantity": 159.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "897a79eea519381d309002dcc33a7692", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T22:15:25.767Z", + "quantity": 151.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "03d819eeab5aec149fc0c7b7177c7643", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T22:20:25.567Z", + "quantity": 145.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "979151b47c70a98b244a1660d1e7c4ca", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T22:25:30.06Z", + "quantity": 143.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0bbc2b51dcdc7e2f322436a625f3c666", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T22:30:25.518Z", + "quantity": 138.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0498e877aa2137b9e8d765edbb56a089", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T22:35:25.989Z", + "quantity": 136.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "eaf396d7d30d82ada1b4ac5055bdb454", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T22:40:25.021Z", + "quantity": 132.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d1cb9cdbdd3c77474ae3ac42eb80377a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T22:45:25.498Z", + "quantity": 132.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "be95ce2902edcb947d31b27028c48190", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T22:50:24.794Z", + "quantity": 130.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8795599c8d5b7fea78cc8a7bf59aadb6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T22:55:24.755Z", + "quantity": 130.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "927a3b8f8764e3d3567208821e3cf2b9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T23:00:25.231Z", + "quantity": 135.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b8a4d85e2007cbd74f81d8a2e7e7211f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T23:05:25.425Z", + "quantity": 128.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "484d27e238fee1342e4459d692be8df6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T23:10:24.652Z", + "quantity": 128.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4fa0960deba5dfd7cb277315037bfef9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T23:15:25.138Z", + "quantity": 130.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fea09e0a3975ceb71175ea947d50a4e1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T23:20:25.093Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2e59ae8e153e642649ad34030f58d956", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T23:25:25.304Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f6501c11c7794e465bc96483f1ca2133", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T23:30:25.438Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c94ebc0b1d8cdd9790bcc2569b69efc8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T23:35:25.558Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d2cd579de763f80bd3b00ceac0445328", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T23:35:25.558Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ee3d2b85f5c3114c95d90103d98ef2b8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T23:40:25.605Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6f77c378a0ef03053d6286a8b41c31e1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T23:45:25.216Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2e330ac34509d4a8056bd0d4ae473521", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T23:50:25.188Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "051eaebd88d5a03853858776fb228c3c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-07T23:55:25.378Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "51653f4bbfc1e51f65ae7243fcd7ee4d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T00:00:25.056Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "47d446fdaa839150890d5e2585e2e7c4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T00:05:25.153Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "566b88a8e71d4723d2e33c579468f6ad", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T00:10:25.685Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4bf96ed79b78a6e72ff02303d2ce57f7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T00:15:25.67Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a13b6d1e2119425b43c65c542c671b53", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T00:20:25.374Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "88e714d7e849170a5b281597e9fe7fd3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T00:25:26.949Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9622e82f57b7c3303a4f0cabd86f5991", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T00:30:25.279Z", + "quantity": 91.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6ca7948207a12a52cd27dcca47156176", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T00:35:25.774Z", + "quantity": 83.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "58ddbd4e9c8ecf24e882039962b7d5ca", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T00:40:25.104Z", + "quantity": 81.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9af0450829dd71f7976bd1a72b2d5e56", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T00:45:25.592Z", + "quantity": 81.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "51ef735356546b499a6a78a7c4b4a757", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T00:50:25.748Z", + "quantity": 77.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9ee6fb545cf2c73afdfa63d569f7f4f7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T00:55:25.287Z", + "quantity": 81.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a3534e92422152bd2c6219d5ba9dce98", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T01:00:25.66Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e6f91067dababfe508c147e189c4609e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T01:05:25.836Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "43ac4e3b8c13c57a2986a8caf225e278", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T01:10:25.791Z", + "quantity": 120.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c8ca5122f3f40fe982a25692f1649f25", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T01:15:25.846Z", + "quantity": 121.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2970ad3629602cef87340af04be0ab35", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T01:20:25.15Z", + "quantity": 134.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "784b4d926d344dc65725697adf3195ef", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T01:20:25.15Z", + "quantity": 134.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e3bae8719d4b4ac672f130bd754376c2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T01:25:25.419Z", + "quantity": 137.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bd0b223e8d4ba3cc6e186b8480051999", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T01:30:25.934Z", + "quantity": 131.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "64cf3ba786d68770a830e0e009ae27f2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T01:35:25.356Z", + "quantity": 120.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f61f041f8738614763b795803c56d59b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T01:40:25.564Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7be0aabc5f42e53b2e7a821ee2877100", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T01:45:25.486Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "42192c703dc665b425f5035f0f7bf14e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T01:50:25.905Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3604d95d9d28f997e0c8444557330df7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T01:55:25.9Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e4a5fd2023c9bb11409ebdb28960f89c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T02:00:25.235Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e5c443fb69853ede5144c9e22b2bf295", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T02:05:25.334Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2aa1464e4f6867ebb271ac13f817d57b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T02:10:26.104Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d449871753455028a05e2cfec44819fd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T02:15:25.93Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3fd418a36067c1a51b11dfdf025d32c6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T02:20:25.819Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8bfea1963d1c22ec2fe152978d831ef7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T02:25:27.3Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0deec7ddbee735dafefdcc0e14d941aa", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T02:30:25.235Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0abc52ff9922a204db637eb836ee1707", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T02:35:26.111Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "95d059c16552ab5f2e49dcb1e40580c9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T02:40:26.218Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1a1a91050bd4b7c4cda94d18f636959e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T02:45:25.862Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bd373896ae37f13504226bca21a526c4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T02:50:25.428Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6a40f3071a77c9706a7ac6b67c2538f4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T02:55:25.469Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "062061584f778ae5dfaf3652fefb484d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T03:00:25.976Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4a42366fd96c008233ab137099f35d49", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T03:05:25.844Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "aa5cd3363e7666aaad7c62b0419fba6e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T03:10:25.858Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "339e5a46a4b51d9eef2056f61154b663", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T03:15:25.514Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6325a9c06138dc4b5b4375a047fbbbc1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T03:20:26.081Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1b495e464a728c461582ad89f96365f9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T03:25:25.939Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2f6dce38aa4366fa8a6d0d1d2c8e5a38", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T03:30:25.985Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a878cbff24b559a31c3f279d06b9afaf", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T03:35:26.049Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b8cac1a0a36dec9a91d9fb8230d5d1c7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T03:35:26.049Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0b951bd6cea9b7965cf84f017eb8fb58", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T03:40:25.978Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a097b5c05355014406dda33adf9d3b88", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T03:45:26.065Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "592d812df45d7cc895525f5f68bd8d41", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T03:50:26.19Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6e0c647530c58e3639bcd6b54e5872a1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T03:55:26.218Z", + "quantity": 125.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b2366abfda4002d0d44e603e0068f6c9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T04:00:26.176Z", + "quantity": 128.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "10eb096fae964342021cbce8b72fde6c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T04:05:26.004Z", + "quantity": 134.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9d27fc9ca637d6499c436c6e641aa664", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T04:10:25.526Z", + "quantity": 136.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e675bddf9b041273057822916725c262", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T04:15:26.19Z", + "quantity": 134.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "99ff287f49503077dc3151b838e3d83a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T04:20:25.8Z", + "quantity": 136.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7c9bab99f05a2cd5a7db3d9341a22991", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T04:25:30.868Z", + "quantity": 135.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9637f16e917c4dd25b3d2fb93c91fba2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T04:30:26.941Z", + "quantity": 127.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0e04434abdb4c19dee41b0355df520b0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T04:35:26.11Z", + "quantity": 128.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "eef9b3a744c5700aa7497f66173e4991", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T04:40:26.426Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "69de67d421e0ab5a07236e4edf945371", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T04:45:26.055Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c16b746e1966077605ca1c1afdcd450d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T04:50:26.465Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "faba4dc92bf0badd1d99d59eb6611e05", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T04:55:26.444Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "574809f8f2ed803e6c557e34e6e75000", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T05:00:26.18Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "10a9306b7505052ff5716d2a6365eb56", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T05:05:26.007Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8936677d50d20d3663a160e9fd062e56", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T05:10:26.124Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7fe5e9e25c07cd783ada3548c360021a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T05:15:26.336Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a7c79a6d64b4a953be8b219b2543797d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T05:20:25.787Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c90b1683062a4914e4bfd23c24024159", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T05:25:25.95Z", + "quantity": 87.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ee3a73fd6e74a33ae6d740e3ee73b1b0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T05:30:26.094Z", + "quantity": 86.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5a465045e9df8f2626463c44215b03e1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T05:35:25.785Z", + "quantity": 84.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3923c5a6ad732ccde75bc2d7ae679eb5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T05:40:26.691Z", + "quantity": 82.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "325edd215b83566a70946b7454a8a99e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T05:45:26.39Z", + "quantity": 79.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a57b6ad18dd3b3982cbf633d52882c35", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T05:45:26.39Z", + "quantity": 79.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0a9a368b1144168abdfd11cd2910bc03", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T05:50:26.652Z", + "quantity": 76.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4604cc7dc830d233d8a978dcb413a3ca", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T05:55:26.504Z", + "quantity": 72.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4be9b2ae4fbd4d0e6c2c9937102a0cf7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T06:00:26.052Z", + "quantity": 68.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "59ed18c74705742bd2156b36605bb438", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T06:05:26.746Z", + "quantity": 65.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "52db94d55428bca48b77953667e75eeb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T06:10:26.492Z", + "quantity": 62.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "118d4b02864830ba9912fa4cb1f35f8c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T06:15:26.627Z", + "quantity": 59.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8b4e4d69c5a40eff32917f13d121f18b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T06:20:26.18Z", + "quantity": 56.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "58ef5aa78d1a0a5ee9f24f68ce50845a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T06:25:26.18Z", + "quantity": 56.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d29683ecf54b205b02c96fc2af9d3309", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T06:30:33.96Z", + "quantity": 56.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3b5808eee34a2069e637f73f4a914675", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T06:35:26.65Z", + "quantity": 57.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "57e77508b5b9ddcb670ec13c2ca97386", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T06:40:26.19Z", + "quantity": 59.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7b405fa77934b34f514b7b3405b2a646", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T06:45:26.695Z", + "quantity": 58.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "810ef70a5f8692e4a3030f43c9b0c64f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T06:50:26.075Z", + "quantity": 57.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c51a7c1b0a36164afc7f089418f3174e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T06:55:26.349Z", + "quantity": 57.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bd2f619bc1561b510cbebbde970d7af8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T07:00:26.15Z", + "quantity": 58.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d01e580e7c339de80693d23c6c0b81b7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T07:05:26.126Z", + "quantity": 60.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d31945cfcdbcd615ed76c7d5b4a8ca62", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T07:10:25.971Z", + "quantity": 60.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9a75132bc8d515691b185c99d0993cab", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T07:15:26.478Z", + "quantity": 60.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "77f6ced3e5695afdc28b4607b864ab4f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T07:20:26.2Z", + "quantity": 61.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3541aa21346a626df220ca92744263ca", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T07:25:26.197Z", + "quantity": 60.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "26dc2c309dc1fa8c2fe472440f29562a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T07:30:26.199Z", + "quantity": 60.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "949875872ebb71361d9063f64bcd3b35", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T07:35:26.746Z", + "quantity": 58.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3bf9a359a892b3aa42b760f3a8476c8c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T07:40:26.701Z", + "quantity": 57.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a406a08d08ed3f5e0a2463214b2dac5b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T07:45:26.831Z", + "quantity": 56.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "44b2dfd8090ab570badb53d2145cc99b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T07:50:26.902Z", + "quantity": 56.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5acfc24e9da796abccbac97aa7136ede", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T07:50:26.902Z", + "quantity": 56.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d2b509ebc333ae246d84744321df9430", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T07:55:26.908Z", + "quantity": 57.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "71137a0a9613a7d4ffed6b057cd1c988", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T08:00:26.395Z", + "quantity": 57.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3b1bb31f0e25397036bee3740704a030", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T08:05:26.944Z", + "quantity": 57.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d6ff478656e675dd8a22c935b9af4471", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T08:10:27.005Z", + "quantity": 59.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "56ad6b7e0bece101482311ca507ab42d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T08:15:26.785Z", + "quantity": 66.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2b1ca72e4055e149ae5592bc69e96330", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T08:20:26.773Z", + "quantity": 64.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c079af97f6ef5cad984932cc51a62638", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T08:25:26.301Z", + "quantity": 64.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7c11887558c42d584fb575b6f0142bcd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T08:30:26.509Z", + "quantity": 64.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "14488f111f570a7e3f3e3b59b2531c36", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T08:35:28.363Z", + "quantity": 65.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4ccdd747e18a17a85687eac64afed846", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T08:40:26.741Z", + "quantity": 64.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3fb7a2944d71f1e64752178709c9758c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T08:45:26.95Z", + "quantity": 62.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "526f58d3c414e41ffe9c499eadf66a47", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T08:50:26.659Z", + "quantity": 59.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6a4e5f5b02d80662457442bd1ba26bc0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T08:55:26.627Z", + "quantity": 56.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f9f8d576eefb4e1b6db88169671b38f3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T09:00:26.99Z", + "quantity": 57.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8ec29726c9b62bd15bb84cf0d101b868", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T09:05:26.313Z", + "quantity": 57.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d52994aea6913dee995eeb28222c7ec1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T09:10:26.785Z", + "quantity": 57.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3b506799708f655fda48e6403093d4bf", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T09:15:27.247Z", + "quantity": 57.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "07fadef3ef389c781c09fcfe44a781ff", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T09:20:26.583Z", + "quantity": 57.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "212c78f465b022d3e83f5c84817e437f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T09:25:26.374Z", + "quantity": 57.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fa99fbdc8992b62c8c6d7f3222baa1fd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T09:30:26.351Z", + "quantity": 58.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "dda7252119dd9507930bce87ad730aaf", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T09:35:26.861Z", + "quantity": 59.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "19526a098b75cc904cced1d6eeebf9e8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T09:40:26.942Z", + "quantity": 61.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "22967d2253801f5e47613084b9c2dc93", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T09:45:26.912Z", + "quantity": 67.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d79fa48a9e24c007ee577cf55961f73a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T09:50:26.719Z", + "quantity": 71.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ba424f9a3ec98d407ba86ccb827b7338", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T09:55:27.051Z", + "quantity": 70.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "06069321f60363ab0f20b7df7be04a8e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T10:00:26.538Z", + "quantity": 68.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9c9cf240a9e6328dd838c455b937e7a1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T10:05:26.847Z", + "quantity": 69.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "419fe96e8e4ecbf4ab45fe1fc262d06e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T10:10:26.497Z", + "quantity": 68.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "25afb753d9c53fa234c51011e95027ac", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T10:15:26.489Z", + "quantity": 66.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c4113f2c9013c2e2359dab0b92a29c06", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T10:20:27.337Z", + "quantity": 64.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ee12d649cc969085e811b854ea7e6878", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T10:25:27.445Z", + "quantity": 64.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cc068ffe76c1328425814d0ef96b642b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T10:30:27.346Z", + "quantity": 63.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a6f3b2d86366248de8e90ec8f350719d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T10:35:28.808Z", + "quantity": 65.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "67efbf98bf5d5ef57f13e0732a83c2a1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T10:40:27.297Z", + "quantity": 65.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f6fb29a35f8e2ae22f707f84a223fc50", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T10:45:26.921Z", + "quantity": 65.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "58e32dd6eb4d33e3c5e33adcfe8fae7a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T10:50:26.866Z", + "quantity": 66.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0fb282d158c4aef6f925eac78617bc24", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T10:55:27.438Z", + "quantity": 70.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "55ecfeb37d761910fc5d8961995735d4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T11:00:26.644Z", + "quantity": 70.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "549ce8cf4f630bbc50a326a45944f22f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T11:05:27.373Z", + "quantity": 73.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6c9861914501725db585e4f7a5ed3687", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T11:10:27.003Z", + "quantity": 75.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "15723c7d5a13b7b87ccebeabd9eeeadd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T11:15:27.102Z", + "quantity": 78.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cf1ed7b4bc2a2a6425487c36cabe1bcd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T11:20:27.363Z", + "quantity": 78.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a8dfd7385c24efb52953d7ed88fbeabb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T11:25:26.999Z", + "quantity": 81.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0e79267b19e4db3f74e45c3d06cfe8a9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T11:30:26.88Z", + "quantity": 84.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fd6d8232a0bf6cb01b2d47daf71ce9cf", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T11:30:26.88Z", + "quantity": 84.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ca15889d6cdae8c0b0aef872ef2c496f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T11:35:26.992Z", + "quantity": 87.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c0da83542cc3c193f82a69f5c75fae4d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T11:40:27.41Z", + "quantity": 90.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b279c8a9839f6fc5d7873bdebd650964", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T11:45:26.783Z", + "quantity": 91.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e42fafbce13988a37435e9f66d64c4ea", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T11:50:27.352Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "384c0290409a29ce894420b251a899a1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T11:55:27.023Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d1a10c431d17a07cdb4a71971551dbd5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T12:00:27.074Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "16b8461581e64c44724129e8e22dc626", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T12:05:28.032Z", + "quantity": 91.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5042034b57f669f261b7359b5fe5e8b7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T12:10:27.523Z", + "quantity": 90.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f141e403ac44e3dfe774dde11f7643ed", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T12:15:27.563Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "02019abd4800f4463a0189392b98ca05", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T12:20:27.578Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cb0860ed0540e6af1dd818763987ed89", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T12:25:27.406Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "450ff4369bdb92582b23eeec73e76dbc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T12:30:27.371Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d1ddaeb9d91dee2784af745025cc4a3b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T12:35:27.291Z", + "quantity": 89.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "509aacdfae2058ce08fffcce96453ac0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T12:40:30.38Z", + "quantity": 88.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5f599d8fffa9bb1fbe3c59c0bead47c5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T12:45:27.012Z", + "quantity": 87.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ba5f887e5425d40aeced690270adedac", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T12:50:27.688Z", + "quantity": 89.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4604d15f216cc575523a9e8ee2544d46", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T12:55:27.758Z", + "quantity": 90.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "84eda9b3aa98f3260ad4191baa6e6023", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T13:00:27.685Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "55e8d2de545999008a4d652b8d56e3e0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T13:05:27.715Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cfffa066bc7d236ddc71d54ac1719828", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T13:10:27.074Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2609bed0e424947866d9813e44365106", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T13:15:27.053Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "323d99b96fd00c879d641f2998914833", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T13:20:27.814Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "edaa5cbecf2054d91ae369575a74d149", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T13:25:27.754Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "825e3ca6a2712d8060c12a55bf1f5f17", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T13:30:27.511Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d498dc746a4d86a6d948f009b40e1f71", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T13:35:27.202Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e9e331e38ef3b024f95e9abe40f8532d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T13:35:27.202Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e6797748abcafd7dca8150984c43c974", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T13:40:27.648Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0364b68437fb8f3be3dea795388d6af0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T13:45:27.879Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7f3c53659dc98d023ae34cb2705f4c17", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T13:50:27.156Z", + "quantity": 89.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5f1bb05b1fdd83b45efc228ae966a505", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T13:55:27.947Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "de6c519fdba0b2e8d561fc3b425d6350", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T14:00:27.455Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a04aaca25a8ce357da963ce3d687bd99", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T14:05:27.591Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "88a8243c6bafdba2e606da071ae040b5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T14:10:27.771Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "83da386a5ab67c4d5d59cdf5b1ec488c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T14:15:27.893Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5f9964e7c3bb06d70d7330068ed7ff21", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T14:20:27.67Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9f30c9661b072d8646abd41be0f6ae8a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T14:25:27.87Z", + "quantity": 90.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f9cb8a807c51843a6662a212a0f4255e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T14:30:27.503Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ff57fe88b83780bff957d6226c8a1620", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T14:35:28.248Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "12afebde2bd66efd32ee34615960dee8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T14:40:27.445Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1eedd309e7ade8773f7d3fc36ac33824", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T14:45:28.636Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9cc33c80528509afe6aebf908ddd9b51", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T14:50:27.314Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3e433e55240b0bd589d6582384f15028", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T14:55:27.842Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "06f7a03d3d31b99e502277c30e85d772", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T15:00:27.97Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cae4c5b8503b7de00fc7ceac4f4b84ac", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T15:05:28.048Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b7df464f032c573a4717fb45fa7bcbc9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T15:10:27.967Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "336d02b166bd6d39231c4ddabf83dd59", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T15:15:28.066Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "38d9fd846cd1925b83040f6de12733f0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T15:20:27.62Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2219b148a38346f90f18b319373f3c77", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T15:25:27.653Z", + "quantity": 89.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e6bc318001c35b53caf19b70b8542ece", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T15:25:27.653Z", + "quantity": 89.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "57a4b8464e2bb70483015d86cf9d9e30", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T15:30:27.713Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "71b8a6eb03004201fb3147b2e426d5de", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T15:35:27.714Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0d4d3c95379ede74ab2a6f32b8620e30", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T15:40:28.254Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "24c911e615943608a448ad6e815a22a1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T15:45:27.75Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "296ac210faea313223ac3c9e0952f499", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T15:50:27.837Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "43cd791d7220c345b7f5192b21b0c639", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T15:55:27.827Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "03578741f1dc36180ba94192cc5401fd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T16:00:28.198Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "80f2eed6991f191f2da0484a14021589", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T16:05:28.437Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7235e0f97c12a33c508869f1b575b335", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T16:10:27.635Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "62f690ddd7eefce2d8ed22fc952a4d12", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T16:15:28.123Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c8878e1d41f094836211848da672c1d7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T16:20:28.398Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "132a0c53bead951bf70d70fc5e9e4386", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T16:25:28.376Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8f3db46695560bee3ccb3388909e07b4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T16:30:27.707Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "55961f655dfccc11c244a039651f67c3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T16:35:28.196Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b58aa15bbd303fb508fea29279660c52", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T16:40:28.615Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7c62d919d919e813cde1f12e4b97ce6d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T16:45:28.537Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "739b7d09b71fdc4b767495a3afac0996", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T16:50:30.262Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7a2cc849dd549c89a3e7790ac927aa20", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T16:55:28.141Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ef7fd9a647a44baca2acc48fdb1241ce", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T17:00:28.233Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7329d1596e73cb001984e172e26be7bf", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T17:05:27.956Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1481150e67f693be5a75eee107e14523", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T17:10:27.622Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4bea81d81cbb55ac6509bd62682e5731", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T17:15:28.161Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6dcf83b92310a68926a1669f5723fb8b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T17:20:28.259Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2aba83cc09db06478c5f8a6636dd77a8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T17:25:27.92Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ae9660019b385fb7052d799016c7ec7d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T17:30:28.219Z", + "quantity": 118.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "38c737879a96b75817e66dceb4b55f4c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T17:30:28.219Z", + "quantity": 118.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "822bbdb02751d86ddb21b17bec2289e6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T17:35:27.858Z", + "quantity": 120.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "de6b1b8feb5d25ca3cdc32cba76f609c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T17:40:28.139Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "adc64adc884648947aa981cfe2cd5392", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T17:45:28.242Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4113ef6808487db7fcbdf384167dba36", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T17:50:28.6Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5ec776dc9bc59a9644a99dada5df5f1a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T17:55:27.953Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7aef7363422700f7eb8c9f4f9eff8898", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T18:00:28.398Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "00eff0f673017b009ec1e1527354515f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T18:05:27.978Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b6bfd27b9bd0edae373b936aaccc4479", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T18:10:28.665Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a14b27f7986f38d40eecc7b4a26a684f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T18:15:28.653Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "301c4973a40020deadc55325a6fd408a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T18:20:28.182Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7728830bdf4fc82fa7cf8588553d7b90", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T18:25:28.244Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0db45214112a21d37e6b2c07d2deab4c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T18:30:28.314Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5822246ad29f7442ce8e1d71b94c2e1f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T18:35:28.35Z", + "quantity": 90.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1e0e987bbf96c391397e05c55eb7e223", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T18:40:28.815Z", + "quantity": 90.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bb4e3d82cc581154485a06133e6546ff", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T18:45:27.972Z", + "quantity": 91.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "76610ef7509903c910f10f38e23dcc0b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T18:50:29.616Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "33d20ecfc82d5a6b11c7282e613fe52a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T18:55:28.506Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "53978b9b01ea5ca10e192306cd27241f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T19:00:28.487Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4309b056d3e55c5f0d9208b28bd3f041", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T19:05:27.956Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7bc5150e50dc6fbae15a845944f851ce", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T19:10:28.805Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2145205516926393d8c5e7d6b41aaaac", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T19:15:28.049Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6b3980701cae2f32aa4b5e0679a89b6d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T19:20:28.985Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "338cc3543504f2179b4253b6417850b0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T19:25:28.742Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "adcdf40e160033a0ed3053e48137182e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T19:30:28.135Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7ff97561dcebc8472d4173620a1c2d89", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T19:35:28.875Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "19ffa2cb43b23fc1c47549ac5cc7364c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T19:40:28.726Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e837850b98f756048d47bb6484c4a39f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T19:45:28.096Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "249baa2965b824055dde94351eb687f8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T19:45:28.096Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6b9b949c11b38ef2a50edc107110de73", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T19:50:28.921Z", + "quantity": 126.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fff70dd10621f9d08e24a71d6a759fdd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T19:55:28.503Z", + "quantity": 132.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "59d3e671cacf117dae2a13369950930b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T20:00:28.884Z", + "quantity": 139.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "27bb7797b050d36d0deafe09a84e78eb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T20:05:28.856Z", + "quantity": 156.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "225f81da6ebdd3c445138e41e5a79c65", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T20:10:28.482Z", + "quantity": 164.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "487ab40940296da6f1a98a6f14a19448", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T20:15:28.697Z", + "quantity": 171.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "59a1e2033397b243460b84c208622f84", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T20:20:28.866Z", + "quantity": 176.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8de155a6d61ffdaa1624490c36af2cf6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T20:25:28.155Z", + "quantity": 170.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8cb4207e3cfc170051d7058eba395edf", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T20:30:28.338Z", + "quantity": 175.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7d6ae0aa644e36beb8a7b3dc904d25e3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T20:35:28.959Z", + "quantity": 170.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b01ae6399819024ad30871bdcd7b5ac7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T20:40:28.873Z", + "quantity": 173.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2c36abe27d70726730c2f815a117cdef", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T20:45:28.887Z", + "quantity": 174.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9d3b131af01b1d422652407177190e79", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T20:50:29.842Z", + "quantity": 174.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "20751112a3b9aff82e04fd070a546558", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T20:55:28.929Z", + "quantity": 171.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "efc87b986c7b96dc9f8593ddf6aa13e0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T21:00:28.553Z", + "quantity": 175.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cc7c431faea538c501f41d3ad353c25e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T21:05:28.874Z", + "quantity": 174.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "91406b0925c9c5b529dfe1c767687a53", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T21:10:28.563Z", + "quantity": 180.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ece25419f479d87d1574dfea45edbf63", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T21:15:29.181Z", + "quantity": 185.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1267724c3a0121344853848af64c72c4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T21:20:28.462Z", + "quantity": 185.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f0be31c83a6488fa93a2dc121421a1d4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T21:25:28.462Z", + "quantity": 188.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "deea2bf42e699bcb33b747cf07c67526", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T21:30:28.372Z", + "quantity": 189.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8c02d27303c2489f6c2fb03b467bcc4a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T21:35:28.962Z", + "quantity": 188.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "91e5871e9b788eef1eb735fae43e3cd8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T21:40:29.26Z", + "quantity": 187.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "832e4023c24e638be4e3d4c59bcf9c79", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T21:45:28.51Z", + "quantity": 185.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "11a5dd361c669b4cc136e905c8fdd0cb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T21:50:28.933Z", + "quantity": 180.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3bdd37b7e43f9302c5fd2154e80b24f8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T21:55:28.544Z", + "quantity": 191.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f910b34d1bb009064f6fb3986dd1c444", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T21:55:28.544Z", + "quantity": 191.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f539049838afac03f6b85968c836f78c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T22:00:29.808Z", + "quantity": 178.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "945f7bc55dd36c9dd4efc2338adb8240", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T22:05:28.833Z", + "quantity": 167.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ccb82e0f87f6bcb8ba937341e1b9caee", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T22:10:28.981Z", + "quantity": 164.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "38d6a15357d4a4c5a22d32b855ba33de", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T22:15:29.236Z", + "quantity": 168.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "587feb7d18612e66db02f5a48ee45de5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T22:20:29.325Z", + "quantity": 170.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "72d731513fac10b7114567ae2ce651d7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T22:25:29.415Z", + "quantity": 166.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5899cdc53b969090342f0bfe4334e61a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T22:30:29.279Z", + "quantity": 166.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "94602696a9b2f032ddc2f5ac6911276a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T22:35:29.377Z", + "quantity": 162.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e73610dc7f964b24f2b4cdb3b0535237", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T22:40:28.908Z", + "quantity": 162.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a6857caaffd61b6d7edd2cbef22be1d1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T22:45:29.377Z", + "quantity": 162.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "32dc1f80dbbe9066cf7d7b72c12e4570", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T22:50:28.686Z", + "quantity": 155.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "13f6edf4e9cf5b4c4dff85394d4f252e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T22:55:29.871Z", + "quantity": 155.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d017e00366793c5ca3ef82ea130d6846", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T23:00:29.519Z", + "quantity": 152.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cbce6fadc22af8c45638fe26d058087a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T23:05:29.217Z", + "quantity": 146.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "651ad19c85e02ca30cd8c3f2909f35d6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T23:10:28.997Z", + "quantity": 148.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2f6cca6e219e85959c2faa2ae0e7c4e1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T23:15:28.693Z", + "quantity": 144.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9165d6c20df08fb4f165380834ed6931", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T23:20:29.261Z", + "quantity": 143.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f53fb6b83659037f48974cf387e9569f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T23:25:29.41Z", + "quantity": 140.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b179be86a355e65a2f28c09ab41b196b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T23:30:28.931Z", + "quantity": 136.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f7948149ff418db5d58626e293a2cf4c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T23:35:29.422Z", + "quantity": 133.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9c594bbcd16d81c4d5db0f20bef5e505", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T23:40:29.149Z", + "quantity": 127.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0c3f7a71b48324e9ec9a55b944ee6d3d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T23:45:29.113Z", + "quantity": 124.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8226c4080c7ea57bc8e9afa762bc529e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T23:50:29.331Z", + "quantity": 120.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1e35dd3d1abefdcaf52f482a686bd256", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-08T23:55:29.67Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "02d947a4f7d27f9eb4ff37f96ecb02d3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T00:00:29.472Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "36abf0f0d9e17bc4c8703e1cb61fd7a4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T00:00:29.472Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9cd95ac76d2f8cb27c5c933c9bf83123", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T00:05:29.44Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "92572d3d2d871eee4c4186c16d119dc6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T00:10:28.86Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ae5fb4bb6b2dfe1b184b2d86635e288e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T00:15:29.218Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e141cff706d7a6c9112656ca3a32f9cd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T00:20:29.184Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "65ebaf95aff49934c6e68723f75e4376", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T00:25:29.274Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b054d1e1edb0c424bcde0105c2070f3f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T00:30:28.945Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d8b5e8777e9e2024cc60bf61f7f5e3da", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T00:35:29.903Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6988c525bd98254d3259e435016e7c7e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T00:40:29.673Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "db4620659d35ae0aa09ac1a27e972066", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T00:45:29.218Z", + "quantity": 124.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "75222667db7a7ce8e17b6917b33fa1a3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T00:50:30.626Z", + "quantity": 130.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "80d1833c633133c46dda04ebb3ff1c3c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T00:55:30.626Z", + "quantity": 130.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "838eb9bacda399ab37971479920a2f0a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T01:00:29.822Z", + "quantity": 137.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "123a9d3b1e75244c923f133ef772567a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T01:05:29.911Z", + "quantity": 139.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1ce5f106865924daac06e9b537ce3652", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T01:10:29.666Z", + "quantity": 144.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0e421a25c4005df0a6d0e078ffb98c54", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T01:15:30.043Z", + "quantity": 145.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c981e80b82f45ca3222bac36e699d3a1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T01:20:29.659Z", + "quantity": 145.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e0dc8ae462fde0d05ebacc8a65b3218d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T01:25:29.483Z", + "quantity": 148.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5faacb44fb3f0463b761c345cdbfebcc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T01:30:29.739Z", + "quantity": 154.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "21f5de944c1220221cc23315e74037dd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T01:35:29.98Z", + "quantity": 159.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "64f47d6aa83d2f290c256eb1206f2fe8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T01:40:29.29Z", + "quantity": 161.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d50a62c33f89cd91dba1b953bf491b58", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T01:45:29.754Z", + "quantity": 160.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d62f3d188a6fa700dd5fc039165fee7d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T01:50:29.528Z", + "quantity": 153.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "de788204dc6b17cf1e903450efd18438", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T01:55:30Z", + "quantity": 160.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1e7855d4a47e37fbc3000992ab3f3a82", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T02:00:29.462Z", + "quantity": 168.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "803298958b948c7992febb2f1136570a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T02:05:29.433Z", + "quantity": 181.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d415c8085bd579fb697ef86ec0533b52", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T02:10:29.459Z", + "quantity": 183.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c6102bb5a9bd6123bcc034a7490eb6a5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T02:15:29.731Z", + "quantity": 183.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d3ba58bef2ecc6d6d182697e5813e05d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T02:20:30.31Z", + "quantity": 183.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b8b924c25d7ff7c1ad8c9e567aa6dec0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T02:25:29.511Z", + "quantity": 181.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "38c8e98c4d079f9c9230c3c2d3f5c229", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T02:30:29.931Z", + "quantity": 180.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ba579827476d2996b14d14219908ea30", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T02:35:29.511Z", + "quantity": 177.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "40e7883877ef2f5b1784ae8ecdb77220", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T02:40:29.574Z", + "quantity": 168.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "51b332c07a95fc12aa4422ce462a3c56", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T02:45:29.574Z", + "quantity": 161.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b5d1ae55db08b0c70037d294b57b16b0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T02:50:29.579Z", + "quantity": 161.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d195cc0c858ec393c5c7b776d1b3d528", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T02:55:30.101Z", + "quantity": 155.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2d90e3a4180f9861cced0aad54b578c8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T03:00:31.941Z", + "quantity": 159.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ab6b4a0ca4dac47a468496a561662284", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T03:05:29.84Z", + "quantity": 161.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ec4da4610f8d80ba56630a938e02761a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T03:10:29.415Z", + "quantity": 171.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "af1b5169ccd85c671ededfdd801e09eb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T03:15:29.871Z", + "quantity": 178.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7b8376d5d4d0371d0cae5f39a1be5ef7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T03:20:29.705Z", + "quantity": 178.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "039827eec6612272913f12a3dbc45a97", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T03:25:29.513Z", + "quantity": 181.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "769695669f4c21461c2dc0a63c655356", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T03:30:29.713Z", + "quantity": 179.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "da1205efcd47a7f0c7373d87c17a0053", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T03:35:30.202Z", + "quantity": 171.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1de5944f3f4e026fd9e21ede66487e32", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T03:40:30.045Z", + "quantity": 180.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c3bd8ee1c492a55d8730af7cce4aa06a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T03:45:30.203Z", + "quantity": 182.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "23b59599cfc6eb48c433285c1ca6a179", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T03:50:29.905Z", + "quantity": 184.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "98850f0b92bb0cbf6a5b5235065fc889", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T03:50:29.905Z", + "quantity": 184.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "326cf438542ad76de93997a7fbd3c315", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T03:55:29.82Z", + "quantity": 192.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f2ab17d5f2678d99eba7016b558cd9fc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T04:00:30.488Z", + "quantity": 195.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "65a88b8bee91769df490441c90446763", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T04:05:30.266Z", + "quantity": 196.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "83e825de1c1f763a88dc794616a2b1ef", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T04:10:29.836Z", + "quantity": 204.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "dd8c3617d68c394e00e8796a32658a00", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T04:15:29.597Z", + "quantity": 199.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "853aedd515970c9a51d3652c90b7a2f8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T04:20:30.271Z", + "quantity": 196.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ade90bd8aa8741923987f0afb750edc2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T04:25:30.349Z", + "quantity": 192.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "54ae22bfd9000b26610135ed44cfbfb6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T04:30:29.943Z", + "quantity": 191.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5e1d3765cbc8e558127326df3c15fe1a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T04:35:30.122Z", + "quantity": 188.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8938a5551e223e3822047be10d25623e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T04:40:30.461Z", + "quantity": 188.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6e7537add8782531e9c69d99438e8fc9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T04:45:30.07Z", + "quantity": 188.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d48084d1e323fcb28094e28f43a99ccb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T04:50:30.44Z", + "quantity": 188.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f7e8e8adc8182466dd49f22a3312a327", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T04:55:30.298Z", + "quantity": 185.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "05de98e1b24ea45c0cffe21fbf434bdb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T05:00:31.196Z", + "quantity": 187.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d0a43955e4d8b4f9303735c5f2f876a6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T05:05:30.354Z", + "quantity": 183.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9a2eec1ac03481d3d128308f7b6d68cd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T05:10:29.917Z", + "quantity": 186.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2f7b6bdbe49f5dc65b4e466966a743f2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T05:15:30.138Z", + "quantity": 185.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "89571c008864e826faa81b7d59d82977", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T05:20:29.773Z", + "quantity": 177.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "14be1f8d37f300932d68602bfdf2cfa6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T05:25:30.135Z", + "quantity": 178.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "88229a214b23d9a1615cb467081d2bf6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T05:30:29.758Z", + "quantity": 176.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3eee3365a9f5291ab24e9e54717f7e4a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T05:35:30.525Z", + "quantity": 173.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "47bce690d10647e5d8e454df6ac4d306", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T05:40:30.338Z", + "quantity": 179.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a35cae4da1045377c73f3e4b4012a219", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T05:45:29.837Z", + "quantity": 181.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "eec9e26ca71b8a6cb161235812699ea3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T05:50:29.93Z", + "quantity": 183.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4aeca0d40fe8f7b3fe05f3d74f8dc4d5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T05:55:30.139Z", + "quantity": 179.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6bdd0a192dfdd3eb5ea32fbeb9b6a62d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T05:55:30.139Z", + "quantity": 179.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "865d14501fb783a53aee26051b08e8d3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T06:00:30.623Z", + "quantity": 175.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "95ed688d1351cfed5587fae38c8590bb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T06:05:30.577Z", + "quantity": 168.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "53cbcb29cc55e93949bc3af2129bb8ea", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T06:10:30.782Z", + "quantity": 163.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e92d0767544081a1d5b7add5cb9afac5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T06:15:30.563Z", + "quantity": 162.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6808521de752b2efe20a395f415a3e30", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T06:20:30.387Z", + "quantity": 159.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2d71709dfdaebccc4d61ba49bd4714e2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T06:25:30.403Z", + "quantity": 156.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1e9e491030e7d49111fa143fe318c7ae", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T06:30:30.07Z", + "quantity": 151.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "517c5d0293e0fb0edb530f5240f6a3fd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T06:35:30.481Z", + "quantity": 150.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "72ac24d1898949c88358cf0858eb6321", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T06:40:30.921Z", + "quantity": 150.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "61ed76e64c75a563fed4f0988cfe9e0a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T06:45:30.01Z", + "quantity": 150.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "27efd9a7601622d2d7c6ec2968366f4c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T06:50:30.971Z", + "quantity": 145.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1c2f8e078887dd9e69fc1a6b0f95e579", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T06:55:30.619Z", + "quantity": 140.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "326bd2ac199f2da094bf823d87d03dcb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T07:00:31.318Z", + "quantity": 140.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ca82970ff81419946c1a2d12a158aad1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T07:05:30.298Z", + "quantity": 142.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "202c45dc5275738503d8f736e702b7e1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T07:10:30.978Z", + "quantity": 142.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2128dd0ac4ecedecc2abbe4d7f896ea4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T07:15:30.467Z", + "quantity": 146.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1055d421878277cdd999d2899e88ea04", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T07:20:31.066Z", + "quantity": 146.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2a23f90028b03f84f2d8110b2c730200", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T07:25:31.958Z", + "quantity": 146.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a99d067314c36d1f5a672e4592b9a957", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T07:30:30.13Z", + "quantity": 144.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d21c4211ec80eed2de6eaa0f2a3a0c0d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T07:35:30.91Z", + "quantity": 141.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9d61f4fd40994bc1b51c184088bd8db5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T07:40:30.77Z", + "quantity": 137.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c6ade0702bef6cbecbe4fb7521b3ff33", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T07:45:30.602Z", + "quantity": 134.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f2913f4a810bba79c0dce878dac9039f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T07:50:30.99Z", + "quantity": 135.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "23aef734e765bca92a427506166bc216", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T07:55:30.977Z", + "quantity": 135.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5b31de2ee2f411c86ecae775dda95215", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T07:55:30.977Z", + "quantity": 135.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2c83fa2f9e855b9df2956f76dedc91bf", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T08:00:30.997Z", + "quantity": 148.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6dfabe67b14d6c0a22d10ddbaea8ae7c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T08:05:30.813Z", + "quantity": 145.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3f5375e2c633f031bda08da40fb603de", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T08:10:31.107Z", + "quantity": 144.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c694ca933883dc2bf2c5e3c2d6dd22a4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T08:15:30.697Z", + "quantity": 146.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "36c32a530b4edaea61ce8a5105c3c6c1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T08:20:30.403Z", + "quantity": 144.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "22a13cffded320e13f29e9b8f7255f9b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T08:25:31Z", + "quantity": 141.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "944c9c162a4d5afb31e2a1e3c57b8067", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T08:30:30.446Z", + "quantity": 138.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "88a304fd70510d576313bc52e7606703", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T08:35:30.908Z", + "quantity": 137.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bfcdc8a3a6f653978503bdfb7769ab81", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T08:40:30.385Z", + "quantity": 136.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b620100519319977f97d2b646a172919", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T08:45:30.77Z", + "quantity": 134.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6e6b7c12430ef0802ab2fe8d8915e628", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T08:50:30.972Z", + "quantity": 132.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9a4862547bd8ea5a49fa729443dcd499", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T08:55:31.308Z", + "quantity": 129.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "411067f6b6939752c71b06f37bc17256", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T09:00:30.722Z", + "quantity": 128.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ff915cbf6a1a7e627bea758b220c5d60", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T09:05:31.813Z", + "quantity": 127.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "74126e2a287f78a364eeb182ce5da1cc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T09:10:30.547Z", + "quantity": 124.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "eee042bd81e25e171d97e22ddbc21fe3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T09:15:31.038Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a4e8ce3b5add12960883ada3962ac3c8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T09:20:31.198Z", + "quantity": 120.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9782fe51f0e135a35768ce7dbfb53214", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T09:25:30.887Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e04945da0bf41528b76a105f2cba38c0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T09:30:31.288Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "73a5f4e83fc69b993b9d88146bd2c019", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T09:35:31.05Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "00bc875d1e067d1743729a1723e2a885", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T09:40:31.215Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b80885773b5447f6b09e5b0989f5067b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T09:45:31.055Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "972ec708a9bcc547809cb8aab1b2fa1d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T09:50:30.659Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "52ac85c5aae99c21e31ea41b6c820096", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T09:55:31.299Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9060b32873b2932a20d9520e981e17ed", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T10:00:30.872Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3fce0368b9a777e78ae895b71432cd6d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T10:05:30.893Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e16faf607f8304958c61008174014a90", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T10:05:30.893Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bd56887a5d5b6fb8a003fce589d34660", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T10:10:30.97Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d47c3fef310e06e4952df21d8b1a6343", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T10:15:31.01Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c09a1d9953e8019ff5fb99b3993c923b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T10:20:30.718Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1469f2fa77bc5e8c5bb4befeb3ce8984", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T10:25:31.226Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "44bea074ef2600967841ac849913c142", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T10:30:31.537Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bb1dba19477bd70df89df43f9cab8394", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T10:35:30.663Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d97d854de21abceb1cd5089cbe47ae79", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T10:40:30.692Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a1b6980a6a6353d865818af2c14fbd23", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T10:45:30.865Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "141e1473ad568fccb54a35c6b3d9469f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T10:50:31.284Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6c1021c25de61e5f8e8c8bf463dcec09", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T10:55:31.442Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "31193b30fe07102d840ec59bac00b8bc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T11:00:31.535Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d0db805f23c254720a360afc29df8e73", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T11:05:30.897Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e0c5f4776eff26177815928989e2367d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T11:10:33.196Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8e2f82834d2dab60123d1b1f559581cb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T11:15:31.267Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "206c860a35345ba98733bdb406e70f35", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T11:20:31.077Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fe0c2d052f1d4e1b280c58c5b3176130", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T11:25:31.356Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "df957d849e3984b00e2ebd0946fad0bf", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T11:30:31.357Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0265343cad561d68586c2c6ae2fabc9e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T11:35:31.696Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2ebf1a33b4477113f1f11dac9ff07928", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T11:40:30.967Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "59a6186292e99e79fa070381d357569f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T11:45:31.562Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "48a3bd33693ccd7c3d0660983d9d65b9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T11:50:30.948Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ff55a83991db19e6878077a11e52d7fe", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T11:50:30.948Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a52f0bf0600b120f724781f1ddcc612e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T11:55:31.647Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e527a4cef6cf06c79c772c9c1f947fdb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T12:00:31.541Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a9e4178bcd42a76e0670d140154ab248", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T12:05:30.876Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "aec4d35013644354f70d1cc69a4613b9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T12:10:31.427Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b99303faa50217fc90315071491eb341", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T12:15:31.628Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cd7b65661f96d8ee3177b66e427851ad", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T12:20:31.535Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6a26b3ff7696abc39f34691fd3ddcdb2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T12:25:31.837Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "87c0bc9da71329c650fb86cabefcf880", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T12:30:31.396Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "dfb4cde8829f6e61bb07b3e4705a50cc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T12:35:31.012Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "472261525885e074b69a84e3637a9d51", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T12:40:31.607Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "50c5b9daa2aa68e079fde23abd9f5361", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T12:45:31.514Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b60f12f4e9064d56104a714ba191924d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T12:50:31.145Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ff41a304b15c1ef606179f64a7c5ebe6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T12:55:31.675Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1759d894023c1bd4bf4ca032aecbc2da", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T13:00:31.933Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d3684dc7ba2a3142e62f3f74540f49ae", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T13:05:31.533Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1b4bfe89853f66365f806dc32ce02228", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T13:10:33.627Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "da160b143490d0a4f74ffe269b67c9af", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T13:15:32.018Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "458e3f8274f757c4fd1c86b1ec918f32", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T13:20:31.708Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "28bdcb7f66f843cbb611c1157a6a58b5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T13:25:31.427Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a1c023c0bf97baa81f022d276ce6b320", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T13:30:31.31Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6b9f970454b3a2fd4ccf4cdc981f553e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T13:35:32.12Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "19723dbb4424897f143fc396032df380", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T13:40:32.075Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "edf976adacee696d69fe3bceed4fec1c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T13:45:31.638Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4b41fb390059efb3b2a9b17567d867fa", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T13:50:31.175Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8828246b5e814e411fd19041c37c48d1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T13:55:32.104Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0923cf617e277a22c14bc74ccb3eec3f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T14:00:31.217Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a8de723cdb2c7ffcb4a2a272e671c76d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T14:05:31.514Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "354c53d7c013d0f68c55bf14fbea6faa", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T14:10:31.216Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "69059948581fc6c31110ba5e8291689f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T14:15:31.754Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "358c4f2f381d51e166d632cd8727d5a0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T14:20:31.856Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fe6be53b7b752f595fd9aa0f0c7637e6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T14:25:31.795Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2ac74a60b9881adab599d798c56fe38e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T14:30:31.986Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "23700277ea70e088a28dfe5a6c52e917", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T14:35:31.949Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "05647e0f9a5da9fa3f36cf2dc29ad376", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T14:40:32.276Z", + "quantity": 91.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5efe8a69adeafe1c5dd35a7014c089cd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T14:45:31.854Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "af3d8850c3b610be105526e3bf30f89b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T14:50:31.956Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8e971bf33c094ca7b052f17631e840ab", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T14:55:31.626Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "db2e8383cb3495f747c7510ddea856e7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T15:00:32.082Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1aa77b8f1c9e0b2e4ebd47cff93948a3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T15:05:32.139Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e28b86d4926a0472f92e6b853fc27605", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T15:10:33.339Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6fbe25db2557a44eebd9f59acb08afc9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T15:15:32.174Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "99f77a445d9ca1e8fc010034bb4bdb50", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T15:20:32.408Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cfad41cf07b73276cc1e2fa52771c0b4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T15:25:31.865Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cf9cc16aebf5aff5c6a5d5da9f14a913", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T15:30:32.126Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "09a67b016498e5c18e4138cb89b2b345", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T15:35:31.584Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e57640a883b843e59862e8e581273035", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T15:40:31.412Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8c2baf770b93171d83c79f078c3f960f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T15:45:31.941Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3f702d9396a0b486e2f25db37740e129", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T15:50:32.012Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7f11c02c012182be3dc281270ee98bca", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T15:55:32.051Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1ecf38b7da5fdf597f027d0939056edf", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T16:00:32.369Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fd90876291d2cce668e4264bf0288ceb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T16:00:32.369Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1886b4b05ae2c40d164a67efe8f4c0f2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T16:05:32.096Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b3cd1655103880a7b50e15efe0be5370", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T16:10:32.203Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bf5b3003b29fd72d51300b9548ae0325", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T16:15:32.321Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7682f52250197401753860c6c6df7597", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T16:20:31.622Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "af6ef36b778ae6840a9af9f67a93d642", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T16:25:32.223Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5b4505676041f61b2a4c155f14f4d9d3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T16:30:32.221Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bc37319e2113a7fbc140ec324f6f56af", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T16:35:32.373Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6f31456d5e9aeadee380562ab828fa71", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T16:40:31.76Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d122d56584406f87097e3590e7619aa9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T16:45:32.259Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9fa13e60bee9595246c93e883e95cd27", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T16:50:32.34Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d76bedba9394c5c2584adda28fbc5026", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T16:55:32.085Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2957a6b42d91ad68884bcc62c22cea16", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T17:00:31.819Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fe12e83c87e513b84e2776066c74985f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T17:05:32.538Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "75c4abd7490b7c265de51dd4a6243e2d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T17:10:32.42Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2763ae2861afdd9568af3d6b75280114", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T17:15:34.119Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "543d6904b3615851c31b96f17c650ccb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T17:20:32.64Z", + "quantity": 118.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "af163b2596beccc5f8e150c797b59608", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T17:25:32.641Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7f3f227d8922c52b73268ad8689aee9e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T17:30:31.793Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d31312793d806199b123a79861d5e42f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T17:35:31.864Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "24ec5b552e9ce8cf58c2e3e172b2602a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T17:40:32.61Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8e89420443d246e2ba75192421d02e76", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T17:45:32.288Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "47da70d888de16a74fa519cb287dbf07", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T17:50:32.138Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a0d053084c63429defe8298f37f6d780", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T17:55:32.144Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f7a61033f140bfe27a2ea627efe2a264", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T18:00:32.235Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "355b1c6989e382b7585634a89de7b102", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T18:05:31.836Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c03a2e44fb5bdf3e2e53d1b20e083621", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T18:10:32.396Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d3df47e15b7ff82a543ea7922ff514d8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T18:15:32.524Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "48316ca018fbc87c7e23af2e9475aecc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T18:15:32.524Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bf4bf3c1c4d8e3cc7305947d8c26030f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T18:20:32.613Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1a7dace58b01a048ee7128799d6002d2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T18:25:32.511Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ed90744f5d52e21bb59d01794398fa67", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T18:30:32.684Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "251cdbff024267ad702a330ecc490ab9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T18:35:32.069Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a424fa6290936a5bd863849fa6534cc6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T18:40:32.893Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0cb0dac38474afe7c2ed855d83d95871", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T18:45:32.53Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5aceac30e4b31fd4ae91eb409925d0eb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T18:50:32.685Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "86637c14629c03f291751f4e518a4d84", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T18:55:32.622Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "27db0274d4ddf813ce8743060dc43fae", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T19:00:31.992Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9c31a3e6542441e149a46c1bc67c6a1f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T19:05:32.769Z", + "quantity": 127.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "aa5769c2470a1b3e015874391d17a843", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T19:10:32.113Z", + "quantity": 145.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "62b7bc1e5179ceed288211b3ea0f5cb5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T19:15:34.2Z", + "quantity": 157.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "50b186a8a41c90105690b67c86cce158", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T19:20:32.811Z", + "quantity": 152.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bfa4798c5c15c8c447e8eab3535e81df", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T19:25:32.639Z", + "quantity": 145.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e33cc4a5126c2232f698fb8635cacab6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T19:30:32.616Z", + "quantity": 137.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b4a834ba9acc49bddcceac53515fb219", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T19:35:32.705Z", + "quantity": 132.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a17f99d03d736ab2c2597cb1a0203bf7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T19:40:32.543Z", + "quantity": 126.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "667625c6e89da6e50fad1231a33df6e5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T19:45:32.301Z", + "quantity": 123.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d96e2e363e7d85e0d77e8d5641ffe0cf", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T19:50:32.919Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "841be4fa1f959bed7438143bd6ebcddb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T19:55:32.513Z", + "quantity": 123.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7f0756d2aba818a6efe3c583ad42a080", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T20:00:33.057Z", + "quantity": 129.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ce66c8068f80491a3c7395834c6bf079", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T20:00:33.057Z", + "quantity": 129.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cb3676753ef87d49ae870560f0f8bcdb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T20:05:32.714Z", + "quantity": 130.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "51f67681f323cf018b05329bb51a1472", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T20:10:32.7Z", + "quantity": 130.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d7f86305172adef089fca423c0b3b614", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T20:15:32.92Z", + "quantity": 127.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "18f3ea3008990e80226d0c8e91fce450", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T20:20:33.028Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ab5334b9f7fb7f009b18c02310a16259", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T20:25:33.016Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "676376c92f33e0ee46f4adda28404aac", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T20:30:32.451Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a8ee957d71bc809efb8047234a7a32be", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T20:35:33.051Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e6c588a74f18b0aa4f053681199d1b4d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T20:40:32.781Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "040b06ac8aba30002a44b87c31a4efb5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T20:45:32.662Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "267c8736fef506bda4ba9f9a52d11a6e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T20:50:32.87Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e26f17106b0710843440bc480af011fc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T20:55:33.336Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3f9b9f3590264dd501245a12db90e00d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T21:00:33.123Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1450897024ecf0d4d9cbe0acddd8f49f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T21:05:33.162Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d42806c758c42c91100d14d2d56ccd1d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T21:10:33.051Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "288eab3e23eb4eca9222949986311627", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T21:15:33.117Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6310e9b401f2452e0b4e4eedde88df46", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T21:20:34.2Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c046f34a0debfe298d724fc93f14da24", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T21:25:33.082Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "40a29c2dd8f4a29c25b21fa721c980e8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T21:30:33.237Z", + "quantity": 118.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "78238ebd8a40a2d7410a0867ba1830d5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T21:35:33.156Z", + "quantity": 120.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "219b062e5a6d11341f8c0583c43b966f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T21:40:33.128Z", + "quantity": 120.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a3cf978807c711bac377216d458f2a2b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T21:45:32.944Z", + "quantity": 118.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8c2bebe6720e7054a9faf750adba7988", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T21:50:32.662Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8067ac1ce0461bccdfa84f84f2eeedae", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T21:55:32.96Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cea354835b16753e8b16ec8e6d3e0672", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T22:00:32.719Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bc30503722d985fcf4d7301e62e5de00", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T22:05:32.657Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "670cc1e504898eb4179a0f805f9e07ad", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T22:10:33.177Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "df7565ec5ab90e6932b0ee90baf6bb2c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T22:10:33.177Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4a4c7e703aae348377d408a41e24310d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T22:15:32.633Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fc67475db468cf5fd307e9a9f19e9ea3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T22:20:33.204Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "85466116beb0ea10993744bd4ba69340", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T22:25:33.267Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1b258b60e7769fb2d635ff4fb0c650a7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T22:30:33.115Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "48d45e6098d4d365ba1198719f05f7bb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T22:35:32.926Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5bb899cdfe2ad3660a00bcbb3cc12cb7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T22:40:33.366Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e58fa01dc1a06c6e728426f74d526956", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T22:45:33.105Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "dd9f3de5ff7276f1fac3e79468dc7505", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T22:50:33.305Z", + "quantity": 120.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a416c5688d4939ab74b59bbf512c650a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T22:55:33.43Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4a0fa735df0c1f4786010a5e828550db", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T23:00:33.222Z", + "quantity": 123.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a6d3af950b48d4b8dcdf10672a9fe6c9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T23:05:33.539Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5a8a055a1e14615eb9ede7b508c29cec", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T23:10:35.416Z", + "quantity": 120.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d306e70add4ddfc62e957bd9ed96bbe6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T23:15:35.416Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e3d6ab26816e43fbcb698f777d0b7464", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T23:20:35.416Z", + "quantity": 121.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "25462a4e690d0097ca9d391f56025dfc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T23:25:34.583Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9eef06b5ed23b27577f9dea12a1087c4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T23:30:33.6Z", + "quantity": 118.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "786768ad6c9ba17a9192ebdc97623424", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T23:35:33.756Z", + "quantity": 121.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "078755b7cbf47973de08685f6edae19a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T23:40:33.233Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f3db0bb46ee8fd13f2dec44640878fb9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T23:45:33.696Z", + "quantity": 118.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8f74b4642b64b0d9041ef5546580bfc1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T23:50:33.383Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7e898a3693c7bfd4fe59b3a58c658625", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-09T23:55:33.667Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "59399865665ac813d7364bef4035079e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T00:00:33.721Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fbd2e90d654c358d347ded45186a8650", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T00:05:33.57Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e56f8ef0976e477854291a19b813fc09", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T00:10:33.755Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fa9098f5a57b898285351ef81ac7f92c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T00:15:33.089Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a428aba7453a6ec3408ad63d98566e39", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T00:20:33.783Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d4411fb599947faa1f396b7f1ea60891", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T00:25:33.532Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "160013cd9ee2809ab6d3674971eaa727", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T00:30:33.257Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bc8da83147b1323dca7d10ea4f17d3b0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T00:35:33.013Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a7a990584d4c3351c9d6751369bcf89d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T00:40:33.147Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3dd90391cdd916db725ef84639d1fe78", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T00:45:33.273Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3b60317c7fd057fbb4eb2b45537325b0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T00:50:33.678Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "706b696a3acd4f2b1e8b16fdd0c6c14b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T00:55:33.905Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "27f717c6e7cfdeeff96aa9871de36618", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T01:00:33.621Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6ad42d54bdc89ee42d1042f1d3470860", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T01:05:33.581Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8e95e5aae0cf55ee8ca4a236365ee26a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T01:10:33.665Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1e39e5fbd310257c5a89bbd6e6fc8c3b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T01:15:33.331Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "68f7d4e74b1387fa7794b5e838b763d8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T01:20:33.346Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f844690f8f5ec8ae9771de3d668a6a3e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T01:25:35.614Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d42aa9083dce8df22580c771c66d307b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T01:30:33.294Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d09b11efb514f98df20fa16eca780057", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T01:35:34.135Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cbc2dbe6afac86664b4661ef6e35e2d7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T01:40:34.17Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "499d0b5b7124bf7c9b0073c7cec00e32", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T01:45:33.338Z", + "quantity": 121.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "52cd007f71095a5297cb828909808ae1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T01:50:33.189Z", + "quantity": 120.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b970d5eb978f4e1ef68fdfc178c23135", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T01:55:33.77Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f52934df3a604f88037fcc4c190592e1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T02:00:33.821Z", + "quantity": 118.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "95aa2cc7b69a031807a31aebca75d599", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T02:05:33.228Z", + "quantity": 120.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "60c3db60b5004a9ce36807b4ce52ce27", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T02:10:33.822Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "905339f35e96527ef0cbb9a2d37e5dbc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T02:15:34.058Z", + "quantity": 118.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bca82937ab291586fac77c1e4cb9d727", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T02:15:34.058Z", + "quantity": 118.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1c3dd3547cb5235f065f35261badd610", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T02:20:33.699Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "65d08328e95099371b06498c4fc54a11", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T02:25:33.852Z", + "quantity": 121.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "90b9e48bf8b72c201205d0a03ef5f0c7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T02:30:33.297Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c61e9f8e6f8d97bec0d6a184a5c9adff", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T02:35:34.124Z", + "quantity": 125.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "519bccbb017c90e68a68ddea9505f91b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T02:40:33.519Z", + "quantity": 126.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "30718631cb32b1135b88349ca98c2307", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T02:45:33.841Z", + "quantity": 129.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "dce02c8dd46c10ae5a0dba84d7b98740", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T02:50:33.974Z", + "quantity": 126.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "772c4aab2dc4bfc6c6df42eeb5f84e55", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T02:55:34.165Z", + "quantity": 138.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "33044931b8ffab54b8f71c81679e0016", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T03:00:34.305Z", + "quantity": 134.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4e64f69ec852d9845f583fe1e76ebb83", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T03:05:34.346Z", + "quantity": 135.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "770dd2ef4a7a8dae85d69a18a715dd80", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T03:10:33.917Z", + "quantity": 135.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9d577e04c1a3e28b2fd73f0aa4550cb4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T03:15:34.126Z", + "quantity": 131.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0c3a362433ac8a9c1a481648e03842b4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T03:20:33.983Z", + "quantity": 127.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "46163d441ccc33a8a04dc2b805853e83", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T03:25:34.164Z", + "quantity": 127.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "312bcdd32859f7f1fec322cb05c0017d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T03:30:35.509Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b77026fcd9893f30e8c4067b49d3c0b0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T03:35:34.459Z", + "quantity": 124.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c5b094a0a1cac0cb777951d649543c1c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T03:40:34.068Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "44a0dce5222c081d024491b7c9de5103", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T03:45:33.795Z", + "quantity": 124.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6bbfdfa4ffea91c5ef464c4753d7fdf9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T03:50:34.081Z", + "quantity": 126.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b70e604ceda18d12f17a91abc346ad0f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T03:55:34.15Z", + "quantity": 125.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a06eab445777f5c76601c583fa451296", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T04:00:34.158Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a4c6ea61cbb0a180d5bcd5201e23db06", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T04:05:33.646Z", + "quantity": 121.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7a7d515a9e01096e271a32eb9f944d23", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T04:10:33.855Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "996903ad164303da866095579e00a3e2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T04:10:33.855Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a3fcb7a41adb4f4934046c0df1517c1f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T04:15:34.331Z", + "quantity": 125.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e9607321d3ecc0f46e5928ab143db38d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T04:20:33.973Z", + "quantity": 123.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6a3c925f0a895bc681fa381131cc61aa", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T04:25:34.092Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "73f07d702b5103b448201cba1c34b8ec", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T04:30:33.648Z", + "quantity": 123.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b4e5242770f01700bcc599638bac24a3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T04:35:34.091Z", + "quantity": 127.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ff4cb4bb7d53bbbf36173bfc32a7daef", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T04:40:34.014Z", + "quantity": 127.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "aa7645f81455f8f2f00c367020c4426c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T04:45:34.24Z", + "quantity": 125.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "26570f054d64d51f933c0eb669dbcd4c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T04:50:34.191Z", + "quantity": 124.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d7d78e8ab43bc403a3595e4550a51b82", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T04:55:34.326Z", + "quantity": 124.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3f60607575e23897c4001b05b623117f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T05:00:34.481Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "14b9191944ca48d5949ce119e2fce88e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T05:05:34.641Z", + "quantity": 120.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6aaef764aa85ef45243435dd91ad3c2a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T05:10:34.012Z", + "quantity": 118.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2413f463b665a1e5a85ce137d115bf59", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T05:15:34.551Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "504e1445c7d607b7ef1c40f6584a1916", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T05:20:34.548Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1f374c1c902871d482b5d6ac56b6d852", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T05:25:34.522Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "96d62255584a7abf98fb634db02e5c71", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T05:30:35.479Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2ad9ff141cb2f80efa1396b867bb1b1d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T05:35:33.879Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "360ce0e001699f9b81112cd3848d6eb4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T05:40:33.879Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "403c00ca1143ae5f6a0139d7a5cdf4df", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T05:45:34.016Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "32e9bf375c2ac9ad4bd30445a29c18bf", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T05:50:34.675Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "95a678c191c0acf885291bc7cbeb9d3c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T05:55:34.486Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e741b9ffc8871fc482cc7b35ab0cdeb1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T06:00:33.93Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1bfc7b73b56caed7bb6073b52b53856c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T06:05:34.419Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "63beecbe929c11759c208c5660f045e7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T06:10:34.559Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2e4d0b7d8e1574006a11672597b3665a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T06:15:34.569Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b6f5f116db5f011d39d9700b4d2e6140", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T06:20:34.377Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5cde4a1379c89cbbb61bc5696756628f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T06:20:34.377Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6deebab90d564d9ef6a085022810929f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T06:25:34.613Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "53fe832cacf62d71231416d60932ef49", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T06:30:34.221Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f1b93b68f3dbadd6e69436fd8b787b93", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T06:35:34.422Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f4bbf9ca302ccbe664cf4b785f16028a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T06:40:34.765Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a7e12504f23d0c8200b99d3c8095a01a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T06:45:34.568Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "46d42eebf8a3b844a8b9278e073d668f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T06:50:34.456Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "67e76bf51fc5469e318b83764c86ff9e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T06:55:35.014Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6fd040c6c7f2bea1be334009b9871e0f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T07:00:34.481Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3ad5f2c95b4f30f39b28910885d02f62", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T07:05:34.652Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b476d72c6a48613ac96f2675a35a1110", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T07:10:34.18Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3ab1d558e1062f411ad2c2e17cc9af23", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T07:15:34.716Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "888f781ed800ed213a3355a9b9358727", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T07:20:34.587Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "91acbf7bf2fc2deece003af768be0586", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T07:25:34.892Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b818b64c670134daa21db0bbbf693359", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T07:30:34.987Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "18ed8182849aab1992b26660898a7560", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T07:35:35.479Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "831d2a605265c0c94573a20d87282972", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T07:40:34.589Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "00df9162d595f6a5b6c02799a363286c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T07:45:34.915Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "94769b6fdac2cb6bcc5d8c909619756b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T07:50:34.916Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "630387316f8e197934c04e23d826c4c3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T07:55:34.247Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "55ce6223586db40ff7f1911c71864e76", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T08:00:34.803Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0f91f0cc5e10641095a2411ac2735076", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T08:05:34.249Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "358a6668352b4822a9a2caf0fa71ef1c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T08:10:34.271Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a988d93e332042958162fedad7f02712", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T08:15:34.497Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6228249e3e11382238d753d810d2e07f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T08:15:34.497Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f87e8e3e34dfd1c73befecc28322ca2f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T08:20:35.146Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "27e6a13e91359cda9514eb315f9c16b5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T08:25:35.1Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f69bd5f33d1977c2335cce00beab5c36", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T08:30:34.997Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1a50bf6f79c1174d3cbf87a5d93c2be3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T08:35:35.095Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2d700d2b75cd554e9d2bc007e8a6a94d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T08:40:34.857Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1e635768594c7c7ca99b5bc622f1f134", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T08:45:35.054Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "733074c92afd8e5b9b91a29935b4f1b4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T08:50:35.216Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ad22c5a6ea20d5f6d9cba757f73b4ba3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T08:55:34.953Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9c5f7fc6e43541b6c76d7eac7acf7923", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T09:00:35.14Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d026a9e4ae25c8f090e435a14106a7ba", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T09:05:34.412Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "eebc810e33c496d8315b2c3c0dc1760f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T09:10:35.221Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9a0b2292e32566f311ca33c63a5e7658", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T09:15:35.295Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "395634f8e31b06cdf15711bd12ad5da9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T09:20:34.629Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2cee7990ec9cb379053fe5ea20eaa9f7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T09:25:35.368Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ad64a9925c2b92164a4f7399e4d17e34", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T09:30:34.646Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ea6beb7ea629af1f43df446e85386d80", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T09:35:35.361Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0340ff1038a009549f9bf5073a961f67", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T09:40:36.123Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f2f9cea45aa71269ac4be55c419c2fa1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T09:45:34.792Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bded2a69caa70c35babaffb6e778aafa", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T09:50:34.938Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "27e0eaae2e3f3badd0af47b60ed462be", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T09:55:34.897Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2a45e3322ca465c3feba5f6585d7e71a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T10:00:34.76Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9cc88cc3a2bc51bc56cef7f4fe23f5d4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T10:05:35.359Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f851fb3f5503c131b90f6606a5b457a1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T10:10:34.684Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a05a1aaecdb72ffcadc8f2d03e227475", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T10:15:34.898Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8f3f261c9a5b5a1f4a28a4be233ad339", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T10:20:35.378Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7bfd635f5edff1b9c7f999631681811d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T10:20:35.378Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "068b79490fd430bea257541972246a52", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T10:25:35.387Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "77f1477ea677bf2c8b3ad2cce7fd95d1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T10:30:35.226Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b4abd327367b92eefc96dbc0dfa8356c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T10:35:34.827Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cc7089b567edfffe8177969e64d10566", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T10:40:34.884Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ba5974382e7aae2e6c74b9d70a47beb7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T10:45:35.423Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "17bccdf6e042734dd20a971f563d89cd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T10:50:35.294Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4dd6c39f0a0c38e292ef0f10ea64061a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T10:55:35.203Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "994725be98dadf475fccc90b5d666731", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T11:00:35.268Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d437632f5fdba3f9610c3ac787ebcfcc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T11:05:35.251Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "027626842f9f6f1ffeacda3a6e1f5b5b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T11:10:35.329Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d7b1a0f102b7ca89b48c2da4b810da4e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T11:15:34.895Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f4a14ee5d8665bb799faa38a8a06370d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T11:20:35.2Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3ead745ac19f7580bf1177879451d096", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T11:25:35.617Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7c68d83b4d80edd99ae5ca587a6ddc67", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T11:30:34.875Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "00641b23503f261235a4fcad589b9a5d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T11:35:34.987Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b9bfa0b89f71abe206fdb14d061b0f5b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T11:40:36.686Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3cda6737f05f4f242d5f6e28f7f87b4d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T11:45:35.573Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0c0401f346d6cfa85b253cb0b0f80a63", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T11:50:35.724Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9a157d7728f207672dfd5490419819af", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T11:55:35.586Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a9a51e4427020332c59122fd26387099", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T12:00:35.736Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b5dd53d86efaa27af24f265759db4f41", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T12:05:35.002Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3f530617ddb66474ebc2c446869e11fb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T12:10:35.509Z", + "quantity": 91.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5f4cfc01cecc96d8e561d0e0a1c034ce", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T12:15:35.261Z", + "quantity": 90.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "52321deb154f57afafe44e382369fb83", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T12:20:35.112Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "91f6061e7a8940dad3dc6722dd3bcb1f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T12:25:35.19Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d1688d20070fd74730b1fd9f52f1eabc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T12:30:35.242Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3c2e3057c1464da274da8b5a82279c87", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T12:30:35.242Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7d2714a2bf08644e2a85a5de5ac4acc8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T12:35:34.948Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7f6267e34f3af20567e8458c91615818", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T12:40:35.857Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ffa99ef5adbbdefa404992ec5718cd51", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T12:45:35.537Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ba52bc8f8475e3a701a2eb070c911a4b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T12:50:35.567Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c59231f69383bf23cc52c0fc235d12e3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T12:55:35.744Z", + "quantity": 90.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b6ecee57706a7d4eea4ed1ced8c816ef", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T13:00:35.942Z", + "quantity": 91.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6e40b0bf40cba8e68b5f93c051200492", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T13:05:35.233Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "725006acd7071b5c8e009e010a47c43f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T13:10:35.842Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3d0e7867208981659159fb7daaf54135", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T13:15:35.721Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f62eb8e5f01e247c5c359206a459ac5f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T13:20:35.327Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1ec8c9d659fcee15851c9a5a342fc2ef", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T13:25:35.679Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c9f47cc3cdbf6ed9830d18401476fa99", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T13:30:35.771Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "18134c6ae916647f1cc0c7d305fe0e84", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T13:35:35.752Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7aae6e5a0e18deeb36dac771b6b12b5b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T13:40:35.729Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b6093d7a1ae8c4cb4eae1f9b2ec07f74", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T13:45:36.557Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "25e615d0e148c7756ebe1222ebfe0285", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T13:50:36.055Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "62207a32a3fe257fe94571d2b706d7e6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T13:55:36.077Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fa0f25efe4f5f5dc955df102b2d6a070", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T14:00:35.974Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a82e20a031801de615238f249a95e7c9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T14:05:36.011Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f6e11eda5ec36c514d65520591316ee7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T14:10:35.869Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "50133a9175a62ec8a3ea8928b597c9ac", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T14:15:36.132Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0d1e7a9662b80280a0a6ec5c8b545d4b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T14:20:35.834Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f97dd837bd6b94fb029a3f31b0a66573", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T14:25:36.166Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7f72c7be8aa2eb139b7ad2924fbf1782", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T14:30:36.141Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "36d8980cd968145ba25cfee2a55fa30e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T14:30:36.141Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7749104148f19031913b314d30642e61", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T14:35:35.957Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6ca928300137b3d179f41e6f2de846b2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T14:40:35.443Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7894d93589cc0c2effcb65cf64b7c3b6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T14:45:35.488Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "95ad6c42eba6f54152f06b657dce9815", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T14:50:36.109Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e176712224164dc5651d18ce10df3611", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T14:55:35.962Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8ffe6035e6163931e7bc7dfba2f1bf19", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T15:00:35.873Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4faafffa586843e17f7744a32e81175b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T15:05:36.097Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e96a41a95a93873e3de38439b31de3d2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T15:10:35.928Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8d509d77e777f8b942ec4f038c6288c8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T15:15:35.476Z", + "quantity": 118.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8e7e7fe6d160e2097f20d5ff15d7f10e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T15:20:36.41Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b7b6e238dcd1e77eb148ed15e1ccf498", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T15:25:36.12Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "babec8040f0da58726eaa77fa36dfa10", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T15:30:35.802Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "872d37778e212f41d5aa5ab0e56cc20b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T15:35:35.562Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a40d34741ff1c8786de272fca1d45703", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T15:40:36.302Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0becdb329a32b90e11db48730003b48e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T15:45:39.95Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "18bb4785bd8c4f2e12b826ec47a66679", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T15:50:35.753Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2d0f6022972b24852638822d44105a13", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T15:55:35.744Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cc206fc8bf97990285cdc93b94ee3873", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T16:00:36.244Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1a0043ed2ad3cdd98e628f4053f2f2a3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T16:05:35.555Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "41baa5a46435a19709312556ffbb69e7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T16:10:35.655Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6ef53a8e40136a1929fa1ccf87ddd4ec", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T16:15:36.589Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "48739c9d2a68cbb4eaae735eac972ff2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T16:20:36.245Z", + "quantity": 121.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1e00fac489b6b34461df231d7da0b23c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T16:25:36.277Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "46b976f613eeeb8237dfce0118c93507", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T16:30:36.094Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "31f985c5431a9c60a1467c7e0367222c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T16:30:36.094Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "34b0053b1326f2d7e71265a00a387310", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T16:35:36.327Z", + "quantity": 118.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "650b1084945ec929ecff21223b798379", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T16:40:36.358Z", + "quantity": 125.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "95764f1b4a59f5df913c67a6d13f2479", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T16:45:35.739Z", + "quantity": 133.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6cdf0bad7c8f3ce7af83b71b09e1a0d4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T16:50:35.747Z", + "quantity": 143.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "66666aab6eec609f9e0fc0822841f994", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T16:55:35.811Z", + "quantity": 150.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8e115b47169b40b36a82a1411a919c40", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T17:00:36.617Z", + "quantity": 153.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "04f3a50d0ee4d8ab5c1639f1ad91851a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T17:05:36.617Z", + "quantity": 156.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7bb6b7f2a411c61280f3667510a4a421", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T17:10:36.168Z", + "quantity": 160.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b3538bd9c69c1b9a7e26f228548348d2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T17:15:36.098Z", + "quantity": 158.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e4113b1d51dc240cb6a0d2142a19fca1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T17:20:36.559Z", + "quantity": 164.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f9e879a8d848cf4361680f2fdc91347b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T17:25:36.505Z", + "quantity": 165.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f3afa4354e16c8dffe4bb9aef43b78fa", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T17:30:36.602Z", + "quantity": 173.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "728c478b521a176f6d9dbb93c0b21271", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T17:35:36.444Z", + "quantity": 178.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c9764d33ee700b1b94ebbf578199db2f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T17:40:36.671Z", + "quantity": 183.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "aa1ed46101555ed652429b921db0c601", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T17:45:35.956Z", + "quantity": 183.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9b74b4801696b3b9aa64bbb93c41fc5f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T17:50:37.945Z", + "quantity": 185.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "89047a7c3d47af2cdeab60ab76a0499b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T17:55:36.145Z", + "quantity": 182.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ba89778a892435112e5efed6bc342bbf", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T18:00:36.448Z", + "quantity": 179.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "89e195fa31d8e33ed79a9a97e473032c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T18:05:35.898Z", + "quantity": 176.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1c254068928e52375161a45dbd55b7d2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T18:10:36Z", + "quantity": 171.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9ba75e0fb65a52992e53d238521492a4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T18:15:36.548Z", + "quantity": 172.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f16eaf2afe163da096595ffa8dc8cd7e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T18:20:36.781Z", + "quantity": 168.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c811a31abd2d1a457c448975d968c754", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T18:25:36.592Z", + "quantity": 163.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "465d045e110bd0db1a106347dbcc25e8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T18:30:36.856Z", + "quantity": 159.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5cf02bc7fc48fcf8e0c51dd245251e32", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T18:30:36.856Z", + "quantity": 159.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0b6c4c310b1c288b9d7657faff3cdbb5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T18:35:36.465Z", + "quantity": 155.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b3b960d43bbab8ee098959bb47b00a47", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T18:40:36.125Z", + "quantity": 157.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "68d385219d91028243be7a6f07671a76", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T18:45:36.516Z", + "quantity": 152.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "530a3b29e0436e3fc3e94df720cd6a0a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T18:50:36.9Z", + "quantity": 147.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7b59e45ce598729f1ce18e106f5abccc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T18:55:36.745Z", + "quantity": 142.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1eea70d2bc63702aa6e29ffd5168027a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T19:00:36.602Z", + "quantity": 140.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fd7c55725cef0ca4c1c45136e58277ba", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T19:05:36.62Z", + "quantity": 143.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7c6ae1e92f835a49d9762c9d19e82d7e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T19:10:36.312Z", + "quantity": 134.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2286b1e9b8e01263628bb8137407b54b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T19:15:36.344Z", + "quantity": 130.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "57e94625505ed8522c88e711624234d0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T19:20:36.893Z", + "quantity": 123.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "792f9a71374c88eedbbbe062e85ea48e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T19:25:36.636Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f558b41f752cb16bea5d6c3d4df21728", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T19:30:36.363Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0e777f95b51323bb804f9263ad0a44c9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T19:35:36.231Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "dd05679b4861ed2a1dbcd7c8afa372f5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T19:40:36.949Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7c2145ae602cdeeb773f34744ef912fc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T19:50:33.41Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "348ea9e94d5fb78ed366185b8789b282", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T19:55:32.177Z", + "quantity": 121.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a0a1fafaaa03df8291f92999645e5dbc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T20:00:31.761Z", + "quantity": 130.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a67c6e392e1aec1cad46f33e1430749d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T20:05:32.228Z", + "quantity": 135.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "41d599884720bd7a4cfd867869aacb08", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T20:05:32.228Z", + "quantity": 135.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d1464cf5f209444d2f7af997453b0e84", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T20:10:32.416Z", + "quantity": 151.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e51bf9fa9ff758d1040a2a260cedfd62", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T20:15:32.439Z", + "quantity": 158.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c71c06ee40e3267a34f7575617c2bae8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T20:20:32.548Z", + "quantity": 158.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b4682b0084d8e04202c83b8439a34bc0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T20:25:32.026Z", + "quantity": 155.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "70b4b7a4d7a575b58582b36c908f614e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T20:30:31.982Z", + "quantity": 160.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "27357bca10e877b8d58dc732c917e74f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T20:35:31.763Z", + "quantity": 160.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "04c4f3605207ad6a4ef7c56ee918427d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T20:40:32.435Z", + "quantity": 149.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7d00b11504140eafb4495f8675ae1e22", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T20:45:32.284Z", + "quantity": 139.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ac1432ce83835f5784d8465cd13f1ede", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T20:50:32.89Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0761ab938e76001cc49d26fb8ed0202d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T20:55:31.794Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1a31f35f9cf02e61d556796177c86a92", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T21:00:32.72Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "86de4388be10aa0484d18f0792fc8d8a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T21:05:31.933Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3ac21f31c9ca7b538eb888be941d5583", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T21:10:32.203Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "69b2b0ade79f7ee585cc486a8d04cb10", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T21:15:32.009Z", + "quantity": 87.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "39da802f14ae179bc16150bfbd95e5ad", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T21:20:32.065Z", + "quantity": 91.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4d460567c751c3d5c1bbbaafe9546c90", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T21:25:23.793Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "01223378e5d31af028ae3a45096b81d3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T21:30:23.904Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c39570ac8a388a99af0c79a4d8c7f07c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T21:35:24.194Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d86e1dae6523ad409a1167f586130f02", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T21:40:24.285Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "507d634b82f8df75da49771fe59d5ccd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T21:45:24.112Z", + "quantity": 118.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2c5d7d104ef95bf501b5f10d471b248a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T21:50:24.528Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "52571062dc0f3f96cb208480704773e4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T21:55:25.533Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0c9775a28f49adf51b072dff5038551c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T22:00:23.869Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2782b1148d55b30cbe29c828406fbc10", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T22:05:23.848Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "32d694396036cb4489dedea34e16c382", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T22:10:24.468Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8ec7ab056deb23adcb5ed589168ee339", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T22:15:24.331Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9b3e50ebcaf36a0b7745626d014b7ab4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T22:20:24.035Z", + "quantity": 126.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "170a6d75eaceae465a6c396f3497d230", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T22:20:24.035Z", + "quantity": 126.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "684524ac09991b21370cb0f82d269fef", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T22:25:24.091Z", + "quantity": 134.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f582e1dc1cc23b3fdbac00ea6b7706c3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T22:30:24.402Z", + "quantity": 140.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "124a759cff22e0100f1a7fa50d66486c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T22:35:24.192Z", + "quantity": 145.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "dbc0166b24b238914fcc0375b6e30fc7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T22:40:24.324Z", + "quantity": 146.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8035a3d5deeb3b60ae48933da5781097", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T22:45:23.88Z", + "quantity": 144.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e7cbaf61a9229764ce9990390c6f5b9c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T22:50:24.378Z", + "quantity": 145.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "89dc2842e781fdd6a07e45eb36d73286", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T22:55:24.608Z", + "quantity": 136.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f5a21699f820cabfddf792fbd118be80", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T23:00:24.623Z", + "quantity": 128.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "70d1e6f547fcffa4947821e8c0a163ef", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T23:05:24.573Z", + "quantity": 118.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "84a5a38c17d936817dcb61d5cb95213e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T23:10:24.625Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3fe46906d93a3a12b6255e3d6c80c116", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T23:15:24.385Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d8ec4882e017e0655607464f2574226c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T23:20:24.478Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "51622954f297762dccb66a3aa816e94a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T23:25:24.148Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5286aefef57fa4b664c3cb6865ff54a2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T23:30:25.155Z", + "quantity": 89.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "45494a21b716269195301e0995161bd6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T23:35:24.841Z", + "quantity": 85.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "20ab14dd204cf35f7d02d253f4d3e779", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T23:40:23.964Z", + "quantity": 81.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b2484c6df3325deef0fc705b16def48f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T23:45:24.586Z", + "quantity": 81.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7ed3d2aa248617b4bdd144014289a9b9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T23:50:24.534Z", + "quantity": 81.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fb702c51e0226257cabc134dfc377d86", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-10T23:55:24.044Z", + "quantity": 79.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "59dd433f04b908b97ca25496597ce60d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T00:00:26.403Z", + "quantity": 79.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "199b2796c78fbb3fc856a9881c25db86", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T00:05:24.301Z", + "quantity": 77.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "89e954dc3667366b98d638e129972f1c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T00:10:24.065Z", + "quantity": 77.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "00f2198cbf24de5f27b7c12c2fae5cf3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T00:15:24.199Z", + "quantity": 75.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cff9aa6fb92342a2f804442144211511", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T00:15:24.199Z", + "quantity": 75.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8c989528a8912b0890d451ab57270557", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T00:20:25.054Z", + "quantity": 77.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6761fb611ee9e1da1b78bdb86bf069a0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T00:25:24.776Z", + "quantity": 76.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fac0fb335cc40c56b3d337c81cd33413", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T00:30:24.059Z", + "quantity": 77.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9e367c921a897ba6d884ba0a100c5291", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T00:35:24.842Z", + "quantity": 78.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "073e6aa096899deaf061adde7c2e0250", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T00:40:24.097Z", + "quantity": 78.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "887204727a5b67647111a314edb84821", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T00:45:24.735Z", + "quantity": 78.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "43cfa880363f60d547f1f12ed77e44f6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T00:50:24.682Z", + "quantity": 79.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f9df93ee34ba6945186c5fc85306f3bb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T00:55:24.411Z", + "quantity": 81.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9932f0d265e26d147dfd884ee0e4efca", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T01:00:24.307Z", + "quantity": 83.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c06e945ff05ea615c1583f5fac3f1fdd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T01:05:24.818Z", + "quantity": 83.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "884f2e442288b7b93fd68cc7e01e794b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T01:10:24.945Z", + "quantity": 80.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8efb898231077f07e664ed1105d60bc2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T01:15:24.783Z", + "quantity": 80.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "65a2af6a6feaca070c34b2c34a816eeb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T01:20:24.321Z", + "quantity": 80.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4402e07aa7ecda41db508c011eb65033", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T01:25:25.283Z", + "quantity": 79.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ae97cf6e45b0698192c489ae4e03605c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T01:30:24.883Z", + "quantity": 76.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5ac6eb7c029fd119b341508d4ee9d268", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T01:35:24.364Z", + "quantity": 74.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "acb2f374902bbb04e0c4f8a7b2d6cc8f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T01:40:24.843Z", + "quantity": 68.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5d1503653ccde8cfb8dc1ee5a3f24989", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T01:45:24.707Z", + "quantity": 69.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e19af098bea1cc697adb1a987b788bf1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T01:50:24.766Z", + "quantity": 79.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "21c369d02623b3fa4a5ef56391690292", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T01:55:24.642Z", + "quantity": 90.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "375b43363dabbf8c5b329f49eecaf77b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T02:00:25.49Z", + "quantity": 89.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "62b1b789f225cd0024c49f3e70b76516", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T02:00:25.49Z", + "quantity": 89.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "dfd9743fcfc11631ae271c84e77e39ac", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T02:05:24.446Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "13cc961c1ef595a6de6f7afa4322f025", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T02:10:24.335Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5f6d442f34f9ee42540fcb70e3a8d561", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T02:15:24.849Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "829491e20a454b3004f3bed4d7381074", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T02:20:24.481Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "876cd227a49f5be34d0f6ee0b556d054", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T02:25:24.66Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d541834f1f184e0b892b580406471663", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T02:30:25.443Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4509d7d93306d13c940435c587682336", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T02:35:24.99Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "823956fce086db46371c78204fa229d7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T02:40:24.961Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "905bfc1981bbec6fe3b03ff09d667ea8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T02:45:25.471Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ddb5eb4fab501d76b8d138df1fd3ca02", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T02:50:24.728Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4e6002903192e7f78ff5ecd7bfb238db", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T02:55:24.919Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6e2f0aac614d3a6b5963960c4924aedc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T03:00:25.327Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6f0bb01c4ad4add19d2cbab058b7be5e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T03:05:24.616Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "780129f3517ce1c03e415f95ce0a8eae", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T03:10:24.529Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "976102d26a6dcd04fb47689f39578dc0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T03:15:25.431Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e72d3ddf805788b3519b9c325d19a2ef", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T03:20:24.542Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "faae9696351ecd789756ac37a403d7c1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T03:25:25.161Z", + "quantity": 121.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7252fc12968aee3805741c2c431430cc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T03:30:24.936Z", + "quantity": 121.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1c95886e85c4e73fe37f1e807860c856", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T03:35:25.174Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "86ead9b6ea609df742c6f1d610b5562b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T03:40:24.903Z", + "quantity": 125.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "63a59f296c28ede7392bd9c79c74eba0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T03:45:25.107Z", + "quantity": 129.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5fdd4950d2c1de54a559824aa282a173", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T03:45:25.107Z", + "quantity": 129.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6cd1a43401e7ab260efcb3c0701572b2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T03:50:25.485Z", + "quantity": 130.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d4edc1cc0beac2c53e8d151941bc5512", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T03:55:24.935Z", + "quantity": 135.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fa9ed8fe40df3ecefbf69784bf148d35", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T04:00:25.558Z", + "quantity": 131.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9cd2de5b0d988b219c2775fb2f0f9a13", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T04:05:26.309Z", + "quantity": 131.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0bda63a1eaa48851c1c4dee3097c8e98", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T04:10:25.146Z", + "quantity": 129.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "23cb72bdf8e1b4222191240d48057ab5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T04:15:25.017Z", + "quantity": 129.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "61e7dea44aa51ed36a5d8b16c471d1c0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T04:20:24.935Z", + "quantity": 130.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8d6ec9ea1ac2599ac26495bbf78314c4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T04:25:25.541Z", + "quantity": 130.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "eb5f2ad5733c3ad4eeb472866b9ec145", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T04:30:25.174Z", + "quantity": 133.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "98e0b65a235e21d3ce349b0561047eca", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T04:35:24.807Z", + "quantity": 138.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0e90e3908f83acc671bec0436b68e88a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T04:40:24.956Z", + "quantity": 140.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1e7bf3b8de73298a6a554377ed52aca3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T04:45:25.632Z", + "quantity": 143.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1003273fe61b592e44c3d63362c7156d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T04:50:25.595Z", + "quantity": 139.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "76af86514c16c7ee58396b6d95009a89", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T04:55:25.574Z", + "quantity": 135.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b9bed1dc1e02ffbcd85e759c2a6c0f25", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T05:00:24.946Z", + "quantity": 133.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "525ad33f7c4743efb32b0a5d1639c969", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T05:05:25.516Z", + "quantity": 129.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9733892c7fa2a55d2e256fb0b653f9df", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T05:10:25.365Z", + "quantity": 132.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2ec3d47f2fa43b69856f7756ad9cb6d6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T05:15:25.239Z", + "quantity": 131.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b3c2b710cf37f5c18a64adb1915c39ed", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T05:20:25.608Z", + "quantity": 131.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7077b648f10da508a975d70187e94841", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T05:25:25.109Z", + "quantity": 132.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "21890a6ed1d9882c2275b412d0d397d2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T05:30:25.707Z", + "quantity": 121.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "598890282b910eda1ac7eba59e6427a5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T05:35:24.941Z", + "quantity": 121.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b66fc007f38aa5c6ed33a52027cd7142", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T05:40:24.855Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "56eee4dce92619d62d0fd2d1b2043569", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T05:40:24.855Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ef21d76a158e312d8bb2ed2f2f947600", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T05:45:25.133Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "831f106b2923f086442233146bfccdbc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T05:50:24.969Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f2038d9b47f60f2c84fdd6e12531b0be", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T05:55:25.468Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "da76a24efe8a459583d86194da781319", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T06:00:25.543Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "130222e221c22ffaa39d3d833923656d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T06:05:25.187Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7ca31829079499b1f96a88f130084068", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T06:10:28.316Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bad5a8da053ffb7a9f42618f2e0d0d62", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T06:15:25.268Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "71cae89fffca93f6df53971066462231", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T06:20:25.279Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5edb4ddc17e54a0e5e48440b168bbea1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T06:25:25.751Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a13f94acdfdb94c686453232325e8d66", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T06:30:25.218Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c8df53e83495f9dab6a75a2ab114fc29", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T06:35:25.804Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "94c58bf19a7092157f38549b01f63786", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T06:40:25.774Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "db47bb3774d2bf681b324665152fc245", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T06:45:25.976Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d89dcd0c68c2e726546930221b37c2d3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T06:50:25.185Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "742b96380d95470ed37cb7fcc06197be", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T06:55:25.736Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "04126b80906dda0d1d176d9f10be17ca", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T07:00:26.063Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b5845ab81520ad365e03f80c55259be3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T07:05:25.656Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "622bec80e5f3d0408d34fdcee90dd153", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T07:10:25.804Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fed10d3696aed687702681e193ee6592", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T07:15:25.7Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2604632641d46a3b3bea143a819e3116", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T07:20:25.87Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "010bce4791830a44b63f6f1aafafbf60", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T07:25:25.534Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2c08d14ab89fc8c45a490f68708269a8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T07:30:25.748Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a4ff76c7186d8dd45c51d043dd25ea91", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T07:35:25.361Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2c5c15be87101af725af78f4f417c920", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T07:40:26.07Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e36be9aab4c14c02528b02a3cf84dfef", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T07:45:25.367Z", + "quantity": 89.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cec96951c0e6f4b39589f0c9021b3cd6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T07:50:25.97Z", + "quantity": 85.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bdf17935e8fd577e57724cb570c3d2a5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T07:50:25.97Z", + "quantity": 85.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ec6513d2e5eb369efa3c8594073569c3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T07:55:26.179Z", + "quantity": 86.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "35278e3d216e7b1a6dd5ed4b730a5168", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T08:00:26.22Z", + "quantity": 88.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "038fff91a7b8461636b4ac28842147c5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T08:05:25.732Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1aa4b1e8494801c7e851b6369c3f8dd8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T08:10:26.487Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8e30eb17074681f5705b9d44301c765f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T08:15:26.012Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "64072c975baf77631ec5b5d75c875bc7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T08:20:25.585Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3487dc17135aa5ab6941924fd10aeb89", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T08:25:25.877Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f96d438bb01c3cb2af3f93e9ab185a4d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T08:30:25.829Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "12bb59bb35d535f8eeafb17a42746ebe", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T08:35:25.974Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "de2f90a34f051d91163efcfe68665d96", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T08:40:26.057Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2baf1b6ee50324ce879a7b66a2c301fd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T08:45:26.115Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bd0d9271e51959bb2e79c9afa5949f2e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T08:50:26.3Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9f5dd4a608239a523f413ffe83532f0e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T08:55:25.866Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8fb8bb29c75573aa3289dd4d399534e8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T09:00:25.604Z", + "quantity": 93.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ace55f7c3834d41ef0b9f8d9a1317904", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T09:05:25.885Z", + "quantity": 92.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "436c65466debc3a8f5a682687b691026", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T09:10:26.383Z", + "quantity": 91.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "78de613a619da39b64a87fd17a1f5217", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T09:15:26.299Z", + "quantity": 91.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a22a007557c67a5028b1c0ad13723250", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T09:20:25.708Z", + "quantity": 90.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0981cb39668935b14f457e1b9851456f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T09:25:25.564Z", + "quantity": 90.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "62ba63117144168966c99dfd7c3e913b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T09:30:26.205Z", + "quantity": 88.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "963ac477bb4bf4b239a7499f10649693", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T09:35:26.124Z", + "quantity": 88.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7cace797448e17781a334bb33eb57809", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T09:35:26.124Z", + "quantity": 88.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bc0694f19509779efc5fa7427f04d120", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T09:40:26.298Z", + "quantity": 88.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "82c32ed0fe4765953a112ddd4056145f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T09:45:26.136Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "edd1edcd32adb882ba24d43cf994547a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T09:50:25.668Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c0c18317141408e70ae7b4def6caecdf", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T09:55:26.328Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "583f067d579ede22c4441b2bed364766", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T10:00:26.391Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "32514c2994c2608304f72f03c4546ad8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T10:05:26.416Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "dadec59a424e8ff93452620a6bb634a2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T10:10:27.205Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3262d8f3c93b5a94935e79c87d5389d5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T10:15:25.841Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "004e5122abad4ca7be217e8ce444cc55", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T10:20:26.323Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cdf6cfea8270c83e26aa06eb2dec7926", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T10:25:26.482Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5eb19e5afe0c9493e123d6b68d9fc366", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T10:30:25.973Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bb9e7ed519c0c9778cf0e8854ca2c830", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T10:35:26.342Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f41815be73840cbabc621d1b444dc452", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T10:40:26.443Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3ef546346dce19c5812456a38b40c040", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T10:45:25.964Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b82b6353c5b59c2663283d46479ceb71", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T10:50:26.718Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "97ffc5fe59a68246b7c69fc9f68c8062", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T10:55:26.637Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a9fb1cf14f354b0cee841ab0661c7a67", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T11:00:26.728Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "16f2c2b5e319ceb1a26251b18843cbda", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T11:05:26.121Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b1f55c485dc638a624ce850e41e21d67", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T11:10:26.44Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7759e221925772160742f24ebf6d7f49", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T11:15:26.068Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "53128cde3c5bd8a435cd2bb57b12a16d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T11:20:26.647Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "56b1442a735ff2d91701438dd5380a96", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T11:25:26.169Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0dc2dca6e812622133f6c1c7239e7a61", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T11:30:26.15Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "242b2e65db687cbcb4e0bec55ebbbb33", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T11:35:26.688Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "15e237fcff189b326595e5811cf6e961", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T11:35:26.688Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "172e0df4ca0675cb97430f57aec89885", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T11:40:26.057Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8663c70ffe11e856f2adfb62f87178bb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T11:45:26.204Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "feb8f504ddf40dbe4e3a3a641371901a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T11:50:25.99Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9fc439c2c6294c6f2367c4bb1425bd88", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T11:55:25.969Z", + "quantity": 120.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "588b719c6f57858aeb8ed9844961d1c3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T12:00:26.578Z", + "quantity": 124.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "46decea05da35c19304a94e49fabc905", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T12:05:26.961Z", + "quantity": 125.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "87aa86aadef1c21ae6aeeef929d6f143", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T12:10:27.27Z", + "quantity": 121.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "81c29723c76df55de64f6f5fdd50089c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T12:15:26.712Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ca816c4711ae03251161efb3b8cf8f12", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T12:20:26.823Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "00d248e58b2ba7e0a83e446b0a758150", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T12:25:26.671Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5200be5f94c01576af634e8de096812e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T12:30:26.178Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "16ec29fc719552b4fa77e9bdbebc48eb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T12:35:26.409Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "42c89fc718c3c3b0a2be65f51134122c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T12:40:26.457Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c6fbfad980250b47e0969ad1fac34a88", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T12:45:26.156Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2c57a0f0e2e7f1258139591a340b551f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T12:50:26.506Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4ee3efdc2cc963e9415c783c08d31206", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T12:55:26.766Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "dbf45f777d3f837e34209651367aa76a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T13:00:26.884Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d19c74e8290d1c457b42b54ba9514b78", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T13:05:26.539Z", + "quantity": 100.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3e0dacda47083ef19aac312b838ec1b8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T13:10:26.345Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1efdeb258709c51bbe723b9eae982758", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T13:15:27.129Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "841a17829debdb8e668f21c7f11fcade", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T13:20:27.056Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e0192d0dc262a7421db81f1a41df9878", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T13:25:27.148Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b976791ff75480620bc88ab6dbeef07e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T13:30:27.118Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "92aab3c5e8c885d8040ea722cbe0900f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T13:35:27.023Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d7f07f4684c89fadc96bf21107ab92c3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T13:40:26.414Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d3b5f652215e774c17b86b0fa81fcede", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T13:45:26.443Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1531db7fa5b9bd7a585b60d568a4a5db", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T13:45:26.443Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fea55917db3c6608650e9e342e071864", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T13:50:26.544Z", + "quantity": 121.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e2df4c1d397d8b606f1a896b459fc54d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T13:55:26.964Z", + "quantity": 125.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8287c928cdab8324ae1fba2543f25786", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T14:00:26.345Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f324d56beafd777974050375e9b703a7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T14:05:26.822Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a89293296b4f81197848b4088b7f6504", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T14:10:26.9Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d50e38a05f8e036790644c4b240df681", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T14:15:28.993Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "741be65107571b956d3706e9277d5d31", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T14:20:27.191Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7b8e277e91a7856f3386fa0bdbb5edc4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T14:25:27.151Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4c02c7a00fcb3c9dfca220c525f18668", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T14:30:27.301Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2e41eb9ba997f9369c015576aa5944e8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T14:35:26.527Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "760e829c99ba8893070fc896d51c8d31", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T14:40:26.733Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "378e2041d2d7e3dbaa051be49d2a19e2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T14:45:26.921Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "aa2f30b5e4bda2c8c23027231cb5ecf4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T14:50:26.602Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ba000b6eb56ce3d5c08ebb8620ee904c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T14:55:26.59Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0a99dbbc8efd07fde7f67b98b824eeec", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T15:00:27.185Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "757fb4fdc1b4b928f0ce2d9887b6206b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T15:05:27.163Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "044c8e48e83ff8f607bf7506959a6b3f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T15:10:27.407Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "28d1290ac5c595581fe10a4486660630", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T15:15:26.876Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c2dfcf887e205b0b2da2b46cf6c2f0fe", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T15:20:27.225Z", + "quantity": 118.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c251a587e5ba8c62efb00a4701fdb588", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T15:25:26.613Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d0402d03033b6bbdb165ef3a014f5b12", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T15:30:26.536Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3ce96292ceaa0e2f7bcb1f120a0b4c93", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T15:35:27.428Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "41abe9af81acf2280b926dafe83b94ec", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T15:40:26.879Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ad46a22d16b431f3960480c40e622162", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T15:45:27.037Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0b518e870676bf7d14936c0e60991701", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T15:45:27.037Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ef4e3b04ed89abdfdb433695b7a6da9d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T15:50:27.147Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4506a95c9666c6e443c0601e91b1b7e2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T15:55:26.824Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "80976ec8f80e6dbc576c72a69d414183", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T16:00:27.09Z", + "quantity": 121.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "76d88bc1d38e235cf6355e2aea08c5d3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T16:05:26.833Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6b3e4cb3c3415f2fe3a7e42160d39ceb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T16:10:27.412Z", + "quantity": 118.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3b510f155803fa418402bc63955eecef", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T16:15:27.343Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5b76306df9eae32eacc0bae21c864346", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T16:20:28.29Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "293635a7bde79368987260d3dd2d3285", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T16:25:27.449Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c77ef6bb890d117ab534ed930d3d22ec", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T16:30:27.285Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "abb9d34580e3b5f62266ba789656765f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T16:35:27.262Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f8ac8f07bb033b99260727994b722549", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T16:40:26.853Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "72601d321932ae100888f52179f3a2b9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T16:45:27.018Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "de6ecaec375ca3b31e8018f56029da81", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T16:50:26.846Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4d7b53695b94d2acf43dd69c543e4f00", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T16:55:26.991Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "100a3b574b583f7ce5c2c94898af9756", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T17:00:27.707Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "59995c8effd1dee8761ca5561281cd03", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T17:05:27.801Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "820fe90cc498daffab32f08650569c81", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T17:10:27.509Z", + "quantity": 118.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "900611aeee4fc66ef62d76f8efe2051c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T17:15:27.486Z", + "quantity": 118.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8fdac87329591e4cafde66050076e2dd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T17:20:27.69Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "347355d19c6de580844c2f39e52a1d8f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T17:25:27.637Z", + "quantity": 123.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "eb53f28f02afbd8df4be37f1f4f59a85", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T17:30:26.814Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ced95fcabeae869ee71a73f6e428a207", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T17:35:27.633Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "29dc4015605287066f93c847a8af947c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T17:40:27.172Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0651ca21469463abb8876ee4f13f761a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T17:45:27.072Z", + "quantity": 120.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d1f6225e48d205dca4d2098b20307de8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T17:50:27.74Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2b4f7c2384da6cebc50cd8a1174b9f74", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T17:50:27.74Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "14f5be0d5fb30891974f1abbe18a30f7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T17:55:27.38Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5e6614d36758508af6ed477736f482a2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T18:00:27.697Z", + "quantity": 123.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e4edcbc513994d537b2668c90e682011", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T18:05:27.542Z", + "quantity": 124.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a06a80ce9a6afc662ddab48111c8262b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T18:10:27.072Z", + "quantity": 132.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "52fd0d37069d08b0ff678c29d85b5295", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T18:15:27.828Z", + "quantity": 144.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "edaffed59257a62be3394e59069f2362", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T18:20:28.261Z", + "quantity": 154.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d896e0c91b2a8aaf46f8f054b67b8831", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T18:25:27.173Z", + "quantity": 161.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d45c3b5b45bbdb99c97282ad2e4fd79b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T18:30:27.626Z", + "quantity": 164.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bf9a0e13c12fad11a716326e0ab920e6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T18:35:27.476Z", + "quantity": 164.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "14872e4fd10bc0068e9e1307777679ba", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T18:40:27.476Z", + "quantity": 153.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2694476a8f5410407b7def5df4b24a44", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T18:45:27.596Z", + "quantity": 168.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "32a1376fc177429afef24eff7b19895e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T18:50:27.105Z", + "quantity": 175.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "529e3217e97a712736c8e0c0ef8a5ec9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T18:55:27.337Z", + "quantity": 174.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "131fbcf3f958e3cf52b154dbf6ac5bdf", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T19:00:27.822Z", + "quantity": 164.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "52749db308562238752439820bc122ad", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T19:05:27.897Z", + "quantity": 166.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cbec97e6ad44dfe6a2491dc4bc3f692a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T19:10:27.367Z", + "quantity": 158.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "168a006657254fe8ad38781481590dbe", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T19:15:27.67Z", + "quantity": 155.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9277de39a975589999a071f96183a1c8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T19:20:27.356Z", + "quantity": 154.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0af87208434544d9e607f85d29672e5a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T19:25:27.246Z", + "quantity": 153.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0b86cfef24aebdbda0b1e46c9b61930f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T19:30:28.112Z", + "quantity": 149.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fed836afd288cdac0e0ee24312c0a66d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T19:35:27.872Z", + "quantity": 147.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2885bcd46599745759e3a5d587121e40", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T19:40:27.937Z", + "quantity": 144.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "79545d4789593769a5e5a9247685f00d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T19:45:27.999Z", + "quantity": 143.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f062a126e1411787940c1c8777d9462e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T19:45:27.999Z", + "quantity": 143.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2d5261d2cb4051e644711670fa76280c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T19:50:28.196Z", + "quantity": 145.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f07294480cfed31f6a6b5b0e302723ce", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T19:55:27.377Z", + "quantity": 147.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d6e7ed55552e787fca79cb4ea21dc341", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T20:00:27.748Z", + "quantity": 139.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e42eb6f8d5455a59b509961840ac3f20", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T20:05:27.932Z", + "quantity": 144.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "85b78cc913feef5940efe977c6098aab", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T20:10:27.301Z", + "quantity": 146.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bde9279758f49d22b099d73782f89dc1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T20:15:27.594Z", + "quantity": 150.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9a4c2a3ff299599b007de9a81160b0fc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T20:20:27.932Z", + "quantity": 158.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6fcd945b8b1bf588c8e7450c457f8274", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T20:25:29.546Z", + "quantity": 167.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a268664f55bcd2860fc912c0f3a1d51b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T20:30:27.449Z", + "quantity": 178.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "279f0379af621d2331440eeeb3d2b9b2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T20:35:27.977Z", + "quantity": 187.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "dfe8dc294d2d09bdfa84cb53c12592bd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T20:40:28.044Z", + "quantity": 194.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ebfba5b39b5b19048bd4b1f22ccd5e0a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T20:45:27.562Z", + "quantity": 197.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c874bd5c5dfa73f8f006bd0c59ac24d9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T20:50:27.893Z", + "quantity": 200.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7569c54e1c3484e7a2cb5e4210292044", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T20:55:27.811Z", + "quantity": 197.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "166fec094304acde98392278d05a7000", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T21:00:28.128Z", + "quantity": 198.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4e4ae7676eee5addfcadbe248ed2eb5b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T21:05:28.366Z", + "quantity": 193.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "718c7a314d446e668707bcf068f86014", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T21:10:28.246Z", + "quantity": 193.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ce04b31fb85537b6959cd446814bcdd6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T21:15:28.286Z", + "quantity": 186.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "598561d9fc79ac5b68b47a93b829a216", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T21:20:28.105Z", + "quantity": 179.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7262fa6c3778322c65d44d2c3e229976", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T21:25:28.054Z", + "quantity": 178.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "562a89c3b20a1463278bbedae0618565", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T21:30:27.638Z", + "quantity": 172.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1000369c080972cde25e27591fc97707", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T21:35:28.206Z", + "quantity": 170.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8b057947d42dd5d5f30b13745c6a1110", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T21:35:28.206Z", + "quantity": 170.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "eb65a122d7dc95f67c223bdd4a2b390b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T21:40:27.716Z", + "quantity": 161.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4b4c227bed10a4b404d1f9315068789f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T21:45:28.42Z", + "quantity": 158.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "76cf4662ed81ef77f2de0cf111a0f022", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T21:50:28.571Z", + "quantity": 155.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ce6c863fd7408a77bebcc29f5344bce0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T21:55:28.553Z", + "quantity": 151.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6c379aafce18c76fc988cb4cf0fda236", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T22:00:27.615Z", + "quantity": 149.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f85cd84b5bd4076a041f8f054de726a0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T22:05:27.648Z", + "quantity": 150.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "641676e4928fc67df4a40788ffe5c8b3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T22:10:28.648Z", + "quantity": 141.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0a2246d2032e0a35104b5c510f979729", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T22:15:28.648Z", + "quantity": 139.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "439290b86ede400f5ef1beb879e89bd2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T22:20:28.648Z", + "quantity": 136.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8460e6b1cab5d0c61490c938ea74bc7f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T22:25:30.926Z", + "quantity": 137.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ff31cb72bb6b3e21532c63b7c53d5971", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T22:30:27.788Z", + "quantity": 130.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cdeac6e59ff290cc800a34b6f9a227a9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T22:35:28.467Z", + "quantity": 127.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9cb485e30953b0f1d26fbad934a31860", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T22:40:27.848Z", + "quantity": 127.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c47a4ba87e504ffe1c2073e4f8e5254e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T22:45:28.697Z", + "quantity": 125.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6bc0ffd6c02ec1be2368e437b9a81e95", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T22:50:27.831Z", + "quantity": 124.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ddbee7801b4cf9759928a6e984cf227c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T22:55:27.791Z", + "quantity": 124.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fb66f194076405cb5d6494bbcdc1fca2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T23:00:28.48Z", + "quantity": 125.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fe587136ee03a1de5ff9410d5d62bedb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T23:05:28.13Z", + "quantity": 128.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "68562731bc15a1a5102385d440261b91", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T23:10:27.958Z", + "quantity": 130.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6bf84d852d115b838e9dd682c4e39589", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T23:15:28.155Z", + "quantity": 124.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5ec2fd299801a430b6e6ffbc42a0d517", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T23:20:28.345Z", + "quantity": 131.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ab1f8492db2293334b1d086e7eb89933", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T23:25:28.484Z", + "quantity": 143.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3fe9ab2dd7d3305b3e2faf9a2d16973f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T23:30:28.435Z", + "quantity": 144.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4f7f7aa319669d1b066739d2ad3fbe6d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T23:35:27.984Z", + "quantity": 134.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6c43ca2e02441e863f88db5cd4cf933a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T23:40:28.587Z", + "quantity": 129.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "954eb4e3c8fdb0e87956157f9a4ea95e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T23:40:28.587Z", + "quantity": 129.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c013e89c6cff7accae6f5e8e1acdbab9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T23:45:28.587Z", + "quantity": 126.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a4c1f69847fcbf08b2036fa7bc8660e2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T23:50:28.05Z", + "quantity": 121.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2c2845c16a55e68f5f30dc9fe2454206", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-11T23:55:28.031Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8c7fe91df61c3c40142a99c33c3769d7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T00:00:28.933Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ab3bda1b6c88d2269b0706cffef6818b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T00:05:28.462Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d1e3bce5c958227578405da555234856", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T00:10:27.985Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "667bd7e3ff0b57cc1114b36576e90475", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T00:15:28.622Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4c19e986314832c2055b44fa2d858e0f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T00:20:28.075Z", + "quantity": 97.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "eac2084148ba16dad44b742ffaf45ebe", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T00:25:28.928Z", + "quantity": 99.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "19ed34ab20352036628070ca15c8f908", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T00:30:30.025Z", + "quantity": 95.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c2071fb890629f2f1058ae19fe6f7d51", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T00:35:28.969Z", + "quantity": 89.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8095b58d285fa05941af91df5d5e1ea9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T00:40:28.308Z", + "quantity": 89.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f43f470df2b8427c488f2acb3964c405", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T00:45:28.31Z", + "quantity": 89.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cf96ab71505c2a055650983bccfd2fea", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T00:50:28.98Z", + "quantity": 91.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a48478d61140a5adb0e406f7f90c182b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T00:55:28.31Z", + "quantity": 90.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "382b1e07bb5f3c19ad89f3acbbd4a882", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T01:00:29.093Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3daff160ff24a58fd0e36be9161fbe7e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T01:05:28.386Z", + "quantity": 98.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ad8e6e8f4eea5d02237e6357fa909ceb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T01:10:28.383Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "83f5141234fb56f8173a2280d2d5e80f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T01:15:28.215Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d226c6b1b7f11d0aa200f97f624e0b54", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T01:20:28.746Z", + "quantity": 120.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "993fa976b4af766d11f246d655024e1c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T01:25:28.66Z", + "quantity": 121.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "69df85452803bee68db3be8bb0b4cb44", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T01:30:28.884Z", + "quantity": 125.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ad81f4c3cfd5da195978f5bb73869381", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T01:35:28.364Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "132178ff4497c949a9b195e83efc7145", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T01:35:28.364Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "35821eb7dd35de13ce4184420b55823d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T01:40:29.072Z", + "quantity": 126.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "adfa0a7450751cdfd22540540077ccda", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T01:45:29.127Z", + "quantity": 124.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e3c293a61a74cd8be63f32d48b749d58", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T01:50:29.079Z", + "quantity": 120.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "541b405c4547891bebab8ebc76928e8d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T01:55:28.64Z", + "quantity": 112.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bc47e825458eaf2e04e67cef36eda83a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T02:00:29.307Z", + "quantity": 104.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6b875f520fdc70c15ff25ff805077a20", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T02:05:29.142Z", + "quantity": 96.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "32f6dffbea3e90083608b95e70488544", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T02:10:28.684Z", + "quantity": 81.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e875941ed230ff58305212176f042239", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T02:15:28.726Z", + "quantity": 76.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2b66c74561d7763b8abbedf01bdeda5b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T02:20:28.416Z", + "quantity": 74.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5424d210ac7aad1b0f4243fe15d17183", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T02:25:28.867Z", + "quantity": 74.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "64c72ce955ad210c131fe04ff73df3f6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T02:30:29.166Z", + "quantity": 70.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "81ea5c2153927c6603e2707c6812f398", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T02:35:30.787Z", + "quantity": 66.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e84632022c7e1acffb328e958de96f28", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T02:40:29.864Z", + "quantity": 66.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8eeadb582dcfb88bd026338a8c75bb21", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T02:45:29.043Z", + "quantity": 76.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f140b046bdd26a60f9f24bd49379bfe3", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T02:50:28.658Z", + "quantity": 84.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c014a15125a3a3e351a168c9b11779fa", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T02:55:28.67Z", + "quantity": 102.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "269a7b55053e79bb590819681e9bcc40", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T03:00:28.994Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "159e4730e60c079b4b34edb53961794e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T03:05:29.107Z", + "quantity": 143.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "70304bdbd42bf7ec62cf972cefaf73ec", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T03:10:29.281Z", + "quantity": 153.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8e0a74ceb24ad9bf51094b5bad3533a5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T03:15:29.005Z", + "quantity": 154.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a4e3148222a56e47d7fd8874b67c368e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T03:20:29.435Z", + "quantity": 163.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "55598e570750f8e76045ebda54c5ddaa", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T03:20:29.435Z", + "quantity": 163.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7b86907f15f0b74f0f749ab980094e2b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T03:25:29.139Z", + "quantity": 160.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "04679b9730f68b4ea99be6d7447a89f7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T03:30:28.642Z", + "quantity": 161.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "831f251d798aa8e0dfa9936a51a08426", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T03:35:29.333Z", + "quantity": 164.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8b766a7a869076acb60de660811c8be4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T03:40:28.993Z", + "quantity": 159.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ea869ddd293b7d45dfbbaff27a50a857", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T03:45:29.567Z", + "quantity": 152.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a9975dcdb10765734d07453cd956f1ad", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T03:50:29.022Z", + "quantity": 153.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "83435486e62575d0cd936caff0fbd98d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T03:55:29.223Z", + "quantity": 155.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9ac7047bc02be89a1758f1b52e52e2d8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T04:00:29.29Z", + "quantity": 137.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "74a7ed5e497cca0c2827caafd4dcd698", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T04:05:29.521Z", + "quantity": 146.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "372f00efcddbdf281bcad536e1dc51a5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T04:10:29.325Z", + "quantity": 164.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3a1643a43254e7b11016ad07dc07c95f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T04:15:28.968Z", + "quantity": 163.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a265173928f1680d2bf7486357678a47", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T04:20:28.699Z", + "quantity": 173.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c7d9066ecc1e465d17bb0ea81a28bf04", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T04:25:28.818Z", + "quantity": 179.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1b50f12c70dccf97c1b8f3f4b5089190", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T04:30:29.226Z", + "quantity": 177.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "68b430b5a5b2ed26671883b44f0026a2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T04:35:29.487Z", + "quantity": 178.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d3bba16b73346557931932f944da7fd7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T04:40:30.565Z", + "quantity": 181.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ee8c1115b13b9578393de831682df107", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T04:45:29.172Z", + "quantity": 183.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e4c5a37c4b9c0d5eadcefd32f2da567d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T04:50:28.809Z", + "quantity": 186.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "24605e562793b1c01f71c72704e3d0c4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T04:55:29.436Z", + "quantity": 191.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "87e352211ec5b280f1372e2b5211f6b1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T05:00:29.021Z", + "quantity": 194.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0db35fc7a920ce44517bf7fee633cdd5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T05:05:29.398Z", + "quantity": 200.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6ad841154162745464f38bb824f3efaa", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T05:10:29.546Z", + "quantity": 205.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "37e689adf3baa6e01943b87babf8e8bf", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T05:15:29.694Z", + "quantity": 205.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4091f6cc286751dea9adc35b79f7ee91", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T05:15:29.694Z", + "quantity": 205.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3a3a8eb965d94c5a8377241b8b7d2a43", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T05:20:29.675Z", + "quantity": 204.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1c860436a8d5fe67434fd12bae7f2d5b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T05:25:29.755Z", + "quantity": 203.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8c54dfc91c66b79b8cd2bf0e9508362c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T05:30:29.094Z", + "quantity": 205.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ef8ff431c543ca6c8d453828831082c4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T05:35:28.944Z", + "quantity": 195.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2b4e7b36fe3c1fcc4cd25989f6a25271", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T05:40:29.217Z", + "quantity": 195.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "744b2162b2b74d79880a7eed961ef102", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T05:45:29.483Z", + "quantity": 197.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a3f36fba6d54fefe12dbcf66d8ce5efd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T05:50:29.332Z", + "quantity": 194.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9f03ddcdd614f1592a3a98e088cebde9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T05:55:29.462Z", + "quantity": 191.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "95e066cbb431f53904a7ddad9ac61240", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T06:00:29.444Z", + "quantity": 191.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b7fb3a8cac2c50d41b190b5c959162fe", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T06:05:29.591Z", + "quantity": 188.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "426d910d10838906c2d5aeba76c70b0e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T06:10:29.65Z", + "quantity": 185.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e87eb12b07bdce2417028f207b5fa93c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T06:15:29.725Z", + "quantity": 183.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4fb75637e2d66653be6e914472f8b99c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T06:20:29.447Z", + "quantity": 181.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "142f0d8df782963e8b71d334e4ea256d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T06:25:29.085Z", + "quantity": 182.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "84ff180583e4c61a9abfb69073f2aa92", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T06:30:29.367Z", + "quantity": 182.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6a14ed57622c2c8ca307786fca8de05e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T06:35:29.125Z", + "quantity": 181.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c130dc3e2020683967e6cc216d35233f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T06:40:29.964Z", + "quantity": 187.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cb17c29fc8c796fac6cdfdb515a1d508", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T06:45:31.051Z", + "quantity": 199.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7d5dd2a4471f13a1ea135acbcabbe2ae", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T06:50:29.196Z", + "quantity": 202.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "010f5ae6464ebff369f7f4966c777e27", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T06:55:29.468Z", + "quantity": 206.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bc49b068d0560b727f643f1f3ccd3c78", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T07:00:29.319Z", + "quantity": 200.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "85a4034f2146d2e622c6c44571a0cbb6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T07:05:29.324Z", + "quantity": 197.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fc5eaf140d0bf9bd5d66cde87537e251", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T07:10:29.429Z", + "quantity": 197.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "66b3cac67a0c992a82e7c73b9907681b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T07:15:30.092Z", + "quantity": 194.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "201c65f1d540f21ad3a795c2eef51036", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T07:20:29.249Z", + "quantity": 188.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5bf422828741972d9b8b46d93dc99458", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T07:25:29.391Z", + "quantity": 189.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fd5fea8bab033184692489a6e7872c37", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T07:25:29.391Z", + "quantity": 189.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c52a6c24ebe0507113cf992184007c19", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T07:30:30.088Z", + "quantity": 187.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a6913ffd61ee33d6f54b01b463f4a2f0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T07:35:29.448Z", + "quantity": 186.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c22e70b759e4293c1affc680175a69f9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T07:40:29.932Z", + "quantity": 183.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cfaa07f693b38c6486693f41c0cd9e45", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T07:45:29.679Z", + "quantity": 181.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "60bded9a002dc19624dda2c00e9dc98c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T07:50:30.117Z", + "quantity": 185.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "35766f38a0d9ef8a0e640e2bbd9798ac", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T07:55:30.149Z", + "quantity": 181.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "009c5586abb5ab4bab00309b8d524111", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T08:00:29.392Z", + "quantity": 183.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c0dd8f96cda5143860e4380f1b1ee36e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T08:05:30.05Z", + "quantity": 183.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4e6f4dad95933ba1cfae5a4282667940", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T08:10:29.379Z", + "quantity": 181.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5580928c3256a924f7ee7055d07bef7c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T08:15:29.386Z", + "quantity": 181.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d348f14bdbc54c0284e7dd5e1ef6d949", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T08:20:29.926Z", + "quantity": 180.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6c0b81fec734000a7dbc9ed96598ca81", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T08:25:29.996Z", + "quantity": 176.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "14bb63fed83d07e8085e0acbf2615276", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T08:30:29.752Z", + "quantity": 176.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5b895b4b146409a2f0c97bbb72df6d83", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T08:35:30.109Z", + "quantity": 174.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fc8cf0443457d4ecdb95336518f09a6b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T08:40:29.429Z", + "quantity": 167.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d2ff5a96ca8ce7951329a3b7b9c4e281", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T08:45:30.145Z", + "quantity": 165.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fdbf4aa48820df1fc45b2b7eab021b66", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T08:50:31.17Z", + "quantity": 164.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "23bedae4de3dbe8007e437aeeca221a2", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T08:55:30.067Z", + "quantity": 163.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "39b586a71b23aee49404ce0bab8ff967", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T09:00:30.096Z", + "quantity": 162.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d6845121381dc087259ff8538ed3e585", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T09:05:29.939Z", + "quantity": 161.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "513be09c09609a2b10cb3f9402f3ab08", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T09:10:30.436Z", + "quantity": 162.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "dafa97118950fdb15696538d8f9e928a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T09:15:30.338Z", + "quantity": 156.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "27ffcd61f3810504dd9594c1bd1eb0e1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T09:20:29.901Z", + "quantity": 156.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6671814d209136e67a6e0953add95e24", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T09:20:29.901Z", + "quantity": 156.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d9f3c94a00b5009d76830f3f9555f13d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T09:25:30.323Z", + "quantity": 155.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "77bdf3b0f2027b8f327d11fe4be0127a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T09:30:29.71Z", + "quantity": 154.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a2fbed54fb89417b57dbc2177de3cc6e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T09:35:30.057Z", + "quantity": 158.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "a570f8d3b2b4623e1d8fb7469e8b3d06", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T09:40:30.003Z", + "quantity": 151.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "83f3f33a361fb739a48eedc705407bf4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T09:45:30.335Z", + "quantity": 152.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7b04fe686e2b51eae0469c89558e7cf9", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T09:50:30.557Z", + "quantity": 152.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9f470af0e287a3063132ed128714bb33", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T09:55:30.365Z", + "quantity": 152.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "57537931949b0d9415caa93bcab6d729", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T10:00:29.684Z", + "quantity": 150.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6190c49f9277f6f37009f2e877c7edb5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T10:05:30.191Z", + "quantity": 153.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d4f85309af59d2745946e8d04248cfbb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T10:10:30.252Z", + "quantity": 155.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "aeee153e92446514b19a3c212dabda77", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T10:15:30.364Z", + "quantity": 150.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "692f323f68a5d5738f873048ed93c7bc", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T10:20:30.115Z", + "quantity": 147.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ffc271e3d9c8293e369607a94bd4f4ad", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T10:25:30.126Z", + "quantity": 144.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9ae3568b70b8164fca83cc89cb4646ee", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T10:30:30.085Z", + "quantity": 141.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fc9be5d97f34973de6955bae4283727e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T10:35:29.893Z", + "quantity": 139.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7248e5a35c79f14e39d2f68589466577", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T10:40:30.403Z", + "quantity": 138.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "41d1800863f4cb5fa0ac5334e21a5d10", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T10:45:30.538Z", + "quantity": 130.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "90234f9e5089218b7a0a67f8f973f587", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T10:50:31.639Z", + "quantity": 123.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "49ccca97b6eb9eb23467d090cb7dc6c6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T10:55:30.525Z", + "quantity": 121.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3f9399e4780f25c5afd56d5ebfba4891", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T11:00:30.22Z", + "quantity": 123.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ee0b2c4fa6d25513b9df06eafe657d6e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T11:05:30.244Z", + "quantity": 123.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2621f389b1fac0c3020d0eb9cd92e674", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T11:10:30.564Z", + "quantity": 124.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "99713881e6246bcc54ec35d1ad8b13ad", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T11:10:30.564Z", + "quantity": 124.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "7d116327458352325f4b5afb636c859b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T11:15:29.955Z", + "quantity": 127.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "09a39f21af44e82d0d71dd425ca9999f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T11:20:30.493Z", + "quantity": 131.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4ae99476d2530f84ddf3be917c3e3489", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T11:25:30.118Z", + "quantity": 128.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fc2482d4f63e8567ff76bf0672c3c0fa", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T11:30:30.407Z", + "quantity": 126.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "37771b00e01250a311bfc075c33b4d44", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T11:35:29.982Z", + "quantity": 125.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1ccad2a457b5bcf90a5193019535c4a5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T11:40:30.583Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "21139e8e321bfe71ff62e1ce7eef987d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T11:45:30.472Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bc1268fbd9f7a894c225c6fdb6a915ae", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T11:50:30.219Z", + "quantity": 124.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "435c4d5d44c828c3f132f1aced80076d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T11:55:30.708Z", + "quantity": 123.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e4fc83c51da0d787c09419fcc9d997fa", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T12:00:29.987Z", + "quantity": 123.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4ff304934e909e83418cc276c4394601", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T12:05:30.755Z", + "quantity": 123.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8872e4c442a3cd22c574f5d8e5baadbb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T12:10:30.825Z", + "quantity": 123.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d3a9a4bc6d2e1fe915b46aef57e78bee", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T12:15:30.89Z", + "quantity": 123.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0bbbc1429b7efa7d0c654305a5ab6d2e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T12:20:30.409Z", + "quantity": 121.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "793591feb80f9076dd057cad1312aa24", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T12:25:30.978Z", + "quantity": 128.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5db1970d4097f3e6c8825ff271711490", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T12:30:30.623Z", + "quantity": 128.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "205ee2242ff97a7257bd5bf857d76886", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T12:35:30.6Z", + "quantity": 126.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ea0564a65aa45fc46ed6b0c0428ed581", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T12:40:30.931Z", + "quantity": 124.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4160275f32e1bfd23a72ebac11731d07", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T12:45:30.726Z", + "quantity": 123.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "9a8c7cbec46180934c0bdfc195b27fca", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T12:50:30.624Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "92527048d6b9aee6c1c1b66ceffbda7a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T12:55:32.144Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5b94020c0028ab966abd7c18efecb34c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T13:00:30.57Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "89fe62161efaa96dfe87db8ccb4ac059", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T13:05:31.078Z", + "quantity": 114.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2cf425752e08c5113d3c5ff242881bfa", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T13:10:30.309Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "8074fe3be20494f10dc76c1fac002c8c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T13:15:30.537Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d47407b677080f51d39aaea03f806fce", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T13:20:31.135Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6dd6e17465da30f0ff13c5029bbafc8b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T13:20:31.135Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "505ce071c0cbc0f854a4b2f97eb9a604", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T13:25:30.176Z", + "quantity": 120.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fd9e4ff6780c1f612b88906f76643b96", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T13:30:31.086Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bc42d287eac1ed0307eba23c35cf05d4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T13:35:30.785Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "036306f1a8262f8286d6254441eae618", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T13:40:31.154Z", + "quantity": 124.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "95e68fa1515fea52fe11056870011cd6", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T13:45:30.69Z", + "quantity": 121.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0ba71cbd0baccbe3604288096d494d7e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T13:50:31.188Z", + "quantity": 119.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f35391f4f0a0cb511713b358a4f2e9de", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T13:55:31.159Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "2c5f89242dfbccbfc41e689b1613b270", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T14:00:30.47Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "b8a4bddbf41e58a73157793a2e368ecd", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T14:05:30.671Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d0f45cec18d7f7dafe83d563b9f22221", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T14:10:31.048Z", + "quantity": 109.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "99e738c2dfa1b1a74a2298836fe28739", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T14:15:30.568Z", + "quantity": 107.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "dbd811d93d8d1800349644cf43342fc8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T14:20:31.157Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c4db2c16e9afbc24b13b9c94fcb1b182", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T14:25:30.785Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5cbb0eb2b16264d7b48ac25dc42c18ed", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T14:30:31.082Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "955ad09ecd6a2a9248b6461c214d12aa", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T14:35:31.12Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "384c4e324e13063cda236c2da71014b8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T14:40:30.882Z", + "quantity": 106.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "41e944b4206f0dee8d9e4afc52f57e8b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T14:45:30.933Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "51b7713b9321868b65f3e4efd7155ce1", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T14:50:31.133Z", + "quantity": 108.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "bd4c129d11c3f5c7965625e65d58a679", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T14:55:32.684Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "e31368cca3a4b642c7449f62ff4d8a4b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T15:00:30.678Z", + "quantity": 111.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "4a9958dc56283da0ccdf86f46c2ec69d", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T15:05:30.97Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "ca41bce0ca13ae02f4f0a40f7f1f06c4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T15:10:31.388Z", + "quantity": 116.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "148bba6a11c12a745934fb5dd1e3ed58", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T15:15:31.187Z", + "quantity": 120.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "824aaca88bde645c7ab8ddaa87ad9318", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T15:20:31.187Z", + "quantity": 120.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "cec62a84283b780682fd511e85554655", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T15:20:31.187Z", + "quantity": 120.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "c78f8cac29b546f8186b74f81d589263", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T15:25:30.536Z", + "quantity": 120.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "77e062b460fd47d7098b4de469eea94c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T15:30:31.174Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5d7fd0d38d247eedb303a9e1cc8e857f", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T15:35:31.253Z", + "quantity": 115.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "1b088be11fa864f1bf4d3fe7ace1f664", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T15:40:30.56Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0c2384ee9a4f0f29b07cb3886093e2d0", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T15:45:30.831Z", + "quantity": 103.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "d23ecb290425ae4b4666f8429ccaf751", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T15:50:31.246Z", + "quantity": 117.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "fcc3e8b930c443ce167f52c925d376e7", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T15:55:31.453Z", + "quantity": 125.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3e8aad818ceb1405fced895029ba506b", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T16:00:31.166Z", + "quantity": 124.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "82c318098a76ae014d64af65b54adfb4", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T16:05:31.159Z", + "quantity": 129.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "366445c05ae43ad3d65bea0242b1aa58", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T16:10:31.366Z", + "quantity": 122.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "55d571be1a399408acc9a1f3bd1eb791", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T16:15:30.988Z", + "quantity": 126.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f428069886ec8df6680642af48dca55e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T16:20:31.059Z", + "quantity": 131.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "dbc333d3958d25c89a1e6de1de55fc7e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T16:25:31.31Z", + "quantity": 113.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "26e7059a12d04451e4292a15b45dc9be", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T16:30:30.728Z", + "quantity": 110.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3e63ace23a5fd34995f13f20e6cb1ebb", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T16:35:31.113Z", + "quantity": 121.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "67ffc6706adade17c9ce5de074d227e5", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T16:40:31.544Z", + "quantity": 126.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "649772e4d63d327b8a9ab7089807c59c", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T16:45:31.541Z", + "quantity": 134.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f5284c77f320982edf88be9762f732e8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T16:50:30.968Z", + "quantity": 136.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "25d38ed918c12674b976440a059a9a36", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T16:55:32.179Z", + "quantity": 139.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "daaed1d45a32a01bc2bef3c2adbd97d8", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T17:00:31.258Z", + "quantity": 129.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "f7e6f1de7b21614d119559dcb0e9999a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T17:05:31.103Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "5114ea1d293a0e99e5069ceedb60c420", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T17:10:31.229Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "51696a0f3b8e97d66c33232f5b27f433", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T17:15:31.506Z", + "quantity": 83.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "6b5f6ac273b0f5777d5aff964253e1ed", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T17:20:31.731Z", + "quantity": 85.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "0a881d4399632a570ef55f00f1a5ca52", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T17:25:31.145Z", + "quantity": 94.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "94bf992fbdac098cf64bb50d55f4f25a", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T17:30:30.874Z", + "quantity": 101.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "3bb9b36847d32fa115bef3b35b77627e", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + }, + { + "startDate": "2026-02-12T17:35:31.08Z", + "quantity": 105.0, + "provenanceIdentifier": "com.tidepool.import", + "syncIdentifier": "675833d8baabd651a352372edcdc03ef", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + } +] \ No newline at end of file diff --git a/Loop/Resources/LoopInsights/TestData/tidepool_therapy_settings.json b/Loop/Resources/LoopInsights/TestData/tidepool_therapy_settings.json new file mode 100644 index 0000000000..50ede3c012 --- /dev/null +++ b/Loop/Resources/LoopInsights/TestData/tidepool_therapy_settings.json @@ -0,0 +1,44 @@ +{ + "basalRateSchedule": [ + { + "startTime": 0.0, + "value": 0.8 + }, + { + "startTime": 25200.0, + "value": 1.1 + }, + { + "startTime": 28800.0, + "value": 0.8 + }, + { + "startTime": 39600.0, + "value": 1 + }, + { + "startTime": 50400.0, + "value": 0.9 + }, + { + "startTime": 61200.0, + "value": 1.1 + }, + { + "startTime": 77400.0, + "value": 0.8 + } + ], + "carbRatioSchedule": [ + { + "startTime": 0.0, + "value": 4.5 + } + ], + "insulinSensitivitySchedule": [ + { + "startTime": 0.0, + "value": 30.0 + } + ] +} \ No newline at end of file diff --git a/Loop/Services/LoopInsights/LoopInsights_AIAnalysis.swift b/Loop/Services/LoopInsights/LoopInsights_AIAnalysis.swift new file mode 100644 index 0000000000..1fce8f90f8 --- /dev/null +++ b/Loop/Services/LoopInsights/LoopInsights_AIAnalysis.swift @@ -0,0 +1,263 @@ +// +// LoopInsights_AIAnalysis.swift +// Loop +// +// Concept & design by Taylor Patterson. Coded & tested by Claude Code in February 2026. +// Copyright (c) 2025-2026 LoopKit Authors. All rights reserved. +// + +import Foundation + +/// Builds structured prompts from aggregated data and current therapy settings, +/// sends them to the AI provider via AIServiceAdapter, and parses the structured +/// suggestions returned. +/// +/// The "one thing at a time" guided tuning flow is enforced here: +/// CR first → verify improvement → ISF next → verify → Basal last. +final class LoopInsights_AIAnalysis { + + private let serviceAdapter: LoopInsights_AIServiceAdapter + + init(serviceAdapter: LoopInsights_AIServiceAdapter = .shared) { + self.serviceAdapter = serviceAdapter + } + + // MARK: - Public API + + /// Perform AI analysis for a specific setting type + func analyze( + settingType: LoopInsightsSettingType, + currentSettings: LoopInsightsTherapySnapshot, + stats: LoopInsightsAggregatedStats + ) async throws -> LoopInsightsAnalysisResponse { + let systemPrompt = buildSystemPrompt() + let userPrompt = buildUserPrompt(settingType: settingType, settings: currentSettings, stats: stats) + + let rawResponse = try await serviceAdapter.sendPrompt(systemPrompt, userPrompt: userPrompt) + + return try parseResponse(rawResponse: rawResponse, settingType: settingType, period: stats.period) + } + + // MARK: - System Prompt + + private func buildSystemPrompt() -> String { + let personality = LoopInsights_FeatureFlags.aiPersonality + return """ + You are LoopInsights, an AI therapy settings advisor for people using insulin pump therapy \ + with automated insulin delivery (AID) systems. Your role is to analyze glucose, insulin, and \ + carbohydrate data to suggest therapy setting adjustments that improve Time in Range (TIR). + + \(personality.promptInstruction) + + CRITICAL SAFETY RULES: + 1. Never suggest changes larger than 20% from current values in a single adjustment. + 2. Always suggest conservative changes — it's better to under-adjust than over-adjust. + 3. Focus on one setting type at a time (Carb Ratio OR Insulin Sensitivity OR Basal Rate). + 4. Consider time-of-day patterns — different hours may need different adjustments. + 5. Flag any concerning patterns (frequent lows, extreme highs) prominently. + 6. Your suggestions are advisory only — the user makes the final decision. + + TUNING ORDER (one at a time): + 1. Carb Ratio (CR) — adjust first, as incorrect CR causes the most post-meal variability + 2. Insulin Sensitivity Factor (ISF) — adjust second, affects correction doses + 3. Basal Rate (BR) — adjust last, as basal changes affect the entire 24-hour profile + + RESPONSE FORMAT: + You MUST respond with valid JSON in this exact structure: + { + "suggestions": [ + { + "time_blocks": [ + { + "start_seconds": 0, + "end_seconds": 21600, + "current_value": 10.0, + "proposed_value": 11.0 + } + ], + "reasoning": "Explanation of why this change is recommended", + "confidence": "low|medium|high" + } + ], + "overall_assessment": "Brief summary of the analysis findings", + "next_recommended_focus": "carb_ratio|insulin_sensitivity|basal_rate|null" + } + + Time blocks use seconds since midnight (0 = 12:00 AM, 21600 = 6:00 AM, 43200 = 12:00 PM, etc.) + Only suggest changes for time blocks where adjustment is warranted. If a time block is fine, omit it. + """ + } + + // MARK: - User Prompt + + private func buildUserPrompt( + settingType: LoopInsightsSettingType, + settings: LoopInsightsTherapySnapshot, + stats: LoopInsightsAggregatedStats + ) -> String { + var prompt = "Analyze my \(settingType.displayName) settings and suggest adjustments.\n\n" + + // Current settings + prompt += "## Current \(settingType.displayName) Schedule\n" + let items: [LoopInsightsTherapySnapshot.LoopInsightsScheduleItem] + let unit: String + + switch settingType { + case .carbRatio: + items = settings.carbRatioItems + unit = "g/U" + case .insulinSensitivity: + items = settings.insulinSensitivityItems + unit = "mg/dL per U" + case .basalRate: + items = settings.basalRateItems + unit = "U/hr" + } + + for item in items { + let timeStr = formatTime(item.startTime) + prompt += "- \(timeStr): \(String(format: "%.1f", item.value)) \(unit)\n" + } + + // Glucose stats + prompt += "\n## Glucose Statistics (\(stats.period.displayName))\n" + prompt += "- Average Glucose: \(String(format: "%.0f", stats.glucoseStats.averageGlucose)) mg/dL\n" + prompt += "- Standard Deviation: \(String(format: "%.0f", stats.glucoseStats.standardDeviation)) mg/dL\n" + prompt += "- Coefficient of Variation: \(String(format: "%.1f", stats.glucoseStats.coefficientOfVariation))%\n" + prompt += "- Time in Range (70-180): \(String(format: "%.1f", stats.glucoseStats.timeInRange))%\n" + prompt += "- Time Below Range (<70): \(String(format: "%.1f", stats.glucoseStats.timeBelowRange))%\n" + prompt += "- Time Above Range (>180): \(String(format: "%.1f", stats.glucoseStats.timeAboveRange))%\n" + prompt += "- GMI (est. A1C): \(String(format: "%.1f", stats.glucoseStats.gmi))%\n" + prompt += "- Sample Count: \(stats.glucoseStats.sampleCount)\n" + + // Hourly glucose pattern + prompt += "\n### Hourly Average Glucose\n" + for hour in 0..<24 { + if let avg = stats.glucoseStats.hourlyAverages[hour] { + prompt += "- \(String(format: "%02d", hour)):00: \(String(format: "%.0f", avg)) mg/dL\n" + } + } + + // Insulin stats + prompt += "\n## Insulin Statistics\n" + prompt += "- Total Daily Dose: \(String(format: "%.1f", stats.insulinStats.totalDailyDose)) U/day\n" + prompt += "- Basal: \(String(format: "%.0f", stats.insulinStats.basalPercentage))% / Bolus: \(String(format: "%.0f", stats.insulinStats.bolusPercentage))%\n" + prompt += "- Correction Boluses: \(stats.insulinStats.correctionBolusCount) in period\n" + + // Carb stats + prompt += "\n## Carbohydrate Statistics\n" + prompt += "- Average Daily Carbs: \(String(format: "%.0f", stats.carbStats.averageDailyCarbs)) g/day\n" + prompt += "- Meals Logged: \(stats.carbStats.mealCount)\n" + prompt += "- Average Carbs per Meal: \(String(format: "%.0f", stats.carbStats.averageCarbsPerMeal)) g\n" + + prompt += "\nPlease analyze this data and suggest adjustments to my \(settingType.displayName) settings. " + prompt += "Respond with JSON only, no markdown formatting." + + return prompt + } + + // MARK: - Response Parsing + + private func parseResponse(rawResponse: String, settingType: LoopInsightsSettingType, period: LoopInsightsAnalysisPeriod) throws -> LoopInsightsAnalysisResponse { + // Extract JSON from the response (AI might wrap it in markdown code blocks) + let jsonString = extractJSON(from: rawResponse) + + guard let data = jsonString.data(using: .utf8) else { + throw LoopInsightsError.parseError("Unable to convert response to data") + } + + guard let json = try? JSONSerialization.jsonObject(with: data) as? [String: Any] else { + throw LoopInsightsError.parseError("Response is not valid JSON: \(rawResponse.prefix(200))") + } + + // Parse suggestions + guard let suggestionsArray = json["suggestions"] as? [[String: Any]] else { + throw LoopInsightsError.parseError("Missing 'suggestions' array in response") + } + + var suggestions: [LoopInsightsSuggestion] = [] + + for suggestionJSON in suggestionsArray { + guard let timeBlocksArray = suggestionJSON["time_blocks"] as? [[String: Any]], + let reasoning = suggestionJSON["reasoning"] as? String, + let confidenceRaw = suggestionJSON["confidence"] as? String, + let confidence = LoopInsightsConfidence(rawValue: confidenceRaw) else { + continue + } + + let timeBlocks = timeBlocksArray.compactMap { block -> LoopInsightsTimeBlock? in + guard let startSeconds = block["start_seconds"] as? Double, + let endSeconds = block["end_seconds"] as? Double, + let currentValue = block["current_value"] as? Double, + let proposedValue = block["proposed_value"] as? Double else { + return nil + } + return LoopInsightsTimeBlock( + startTime: startSeconds, + endTime: endSeconds, + currentValue: currentValue, + proposedValue: proposedValue + ) + } + + guard !timeBlocks.isEmpty else { continue } + + let suggestion = LoopInsightsSuggestion( + id: UUID(), + settingType: settingType, + timeBlocks: timeBlocks, + reasoning: reasoning, + confidence: confidence, + analysisPeriod: period, + createdAt: Date() + ) + suggestions.append(suggestion) + } + + let overallAssessment = json["overall_assessment"] as? String ?? "Analysis complete." + + var nextFocus: LoopInsightsSettingType? = nil + if let nextRaw = json["next_recommended_focus"] as? String { + nextFocus = LoopInsightsSettingType(rawValue: nextRaw) + } + + return LoopInsightsAnalysisResponse( + suggestions: suggestions, + overallAssessment: overallAssessment, + nextRecommendedFocus: nextFocus, + rawResponse: rawResponse + ) + } + + // MARK: - Helpers + + private func extractJSON(from text: String) -> String { + // Try to find JSON block in markdown code fences + if let jsonRange = text.range(of: "```json\n"), + let endRange = text.range(of: "\n```", range: jsonRange.upperBound.. String { + let hours = Int(seconds) / 3600 + let minutes = (Int(seconds) % 3600) / 60 + let period = hours >= 12 ? "PM" : "AM" + let displayHour = hours == 0 ? 12 : (hours > 12 ? hours - 12 : hours) + return String(format: "%d:%02d %@", displayHour, minutes, period) + } +} diff --git a/Loop/Services/LoopInsights/LoopInsights_AIServiceAdapter.swift b/Loop/Services/LoopInsights/LoopInsights_AIServiceAdapter.swift new file mode 100644 index 0000000000..d2371d4789 --- /dev/null +++ b/Loop/Services/LoopInsights/LoopInsights_AIServiceAdapter.swift @@ -0,0 +1,253 @@ +// +// LoopInsights_AIServiceAdapter.swift +// Loop +// +// Concept & design by Taylor Patterson. Coded & tested by Claude Code in February 2026. +// Copyright (c) 2025-2026 LoopKit Authors. All rights reserved. +// + +import Foundation + +/// Provider-agnostic HTTP client for LoopInsights AI analysis. +/// +/// Supports any OpenAI-compatible endpoint (OpenAI, Azure, Groq, Together, Ollama, etc.), +/// Anthropic Messages API, and Google Generative AI (Gemini). The request format, auth headers, +/// and endpoint path are all derived from the user's `LoopInsightsAIProviderConfiguration`. +final class LoopInsights_AIServiceAdapter { + + static let shared = LoopInsights_AIServiceAdapter() + + private let session: URLSession + + private init() { + let config = URLSessionConfiguration.default + config.timeoutIntervalForRequest = 60 + config.timeoutIntervalForResource = 120 + self.session = URLSession(configuration: config) + } + + // MARK: - Public API + + /// Send a prompt to the configured AI provider and return the text response. + func sendPrompt(_ systemPrompt: String, userPrompt: String) async throws -> String { + let config = LoopInsights_FeatureFlags.aiConfiguration.withKeychainAPIKey() + + guard !config.apiKey.isEmpty else { + throw LoopInsightsError.noAPIKeyConfigured + } + + let request = try buildRequest(config: config, systemPrompt: systemPrompt, userPrompt: userPrompt) + + let (data, response) = try await session.data(for: request) + + guard let httpResponse = response as? HTTPURLResponse else { + throw LoopInsightsError.networkError(URLError(.badServerResponse)) + } + + guard httpResponse.statusCode == 200 else { + let errorBody = String(data: data, encoding: .utf8) ?? "Unknown error" + throw LoopInsightsError.aiProviderError("HTTP \(httpResponse.statusCode): \(errorBody)") + } + + return try extractTextFromResponse(data: data, config: config) + } + + /// Test connectivity with the configured provider. Returns true if reachable. + func testConnection() async throws -> Bool { + let config = LoopInsights_FeatureFlags.aiConfiguration.withKeychainAPIKey() + + guard !config.apiKey.isEmpty else { + throw LoopInsightsError.noAPIKeyConfigured + } + + // Use minimal tokens to minimize cost + var testConfig = config + testConfig.maxTokens = 10 + + let request = try buildRequest(config: testConfig, systemPrompt: "You are a test.", userPrompt: "Reply with exactly: OK") + + let (data, response) = try await session.data(for: request) + + guard let httpResponse = response as? HTTPURLResponse else { + throw LoopInsightsError.networkError(URLError(.badServerResponse)) + } + + switch httpResponse.statusCode { + case 200...299: + return true + case 401: + throw LoopInsightsError.aiProviderError("Invalid API key (HTTP 401)") + case 402, 429: + // Key is valid, but billing or rate-limited + return true + case 403: + throw LoopInsightsError.aiProviderError("Access denied — check API key permissions (HTTP 403)") + case 404: + throw LoopInsightsError.aiProviderError("Endpoint not found — check Base URL (HTTP 404)") + default: + let errorBody = String(data: data, encoding: .utf8) ?? "Unknown error" + throw LoopInsightsError.aiProviderError("HTTP \(httpResponse.statusCode): \(errorBody)") + } + } + + // MARK: - Request Building + + private func buildRequest( + config: LoopInsightsAIProviderConfiguration, + systemPrompt: String, + userPrompt: String + ) throws -> URLRequest { + let url = try buildURL(config: config) + + var request = URLRequest(url: url) + request.httpMethod = "POST" + request.setValue("application/json", forHTTPHeaderField: "Content-Type") + + // Auth header + let keyValue = config.apiKeyPrefix + config.apiKey + request.setValue(keyValue, forHTTPHeaderField: config.apiKeyHeader) + + // Organization ID (OpenAI / Azure) + if let orgID = config.organizationID, !orgID.isEmpty { + request.setValue(orgID, forHTTPHeaderField: "OpenAI-Organization") + } + + // Format-specific extra headers + if config.requestFormat == .anthropicMessages { + request.setValue("2023-06-01", forHTTPHeaderField: "anthropic-version") + } + + // Build body based on request format + let body: Data + switch config.requestFormat { + case .openAICompatible: + body = try buildOpenAIBody(config: config, systemPrompt: systemPrompt, userPrompt: userPrompt) + case .anthropicMessages: + body = try buildAnthropicBody(config: config, systemPrompt: systemPrompt, userPrompt: userPrompt) + case .googleGenerativeAI: + body = try buildGoogleBody(config: config, systemPrompt: systemPrompt, userPrompt: userPrompt) + } + + request.httpBody = body + return request + } + + private func buildURL(config: LoopInsightsAIProviderConfiguration) throws -> URL { + let base = config.baseURL.trimmingCharacters(in: CharacterSet(charactersIn: "/ ")) + var endpoint = config.endpointPath + + // Substitute {MODEL} in endpoint (used by Google Gemini) + endpoint = endpoint.replacingOccurrences(of: "{MODEL}", with: config.model) + + // Ensure endpoint starts with / + if !endpoint.hasPrefix("/") { + endpoint = "/" + endpoint + } + + // Azure: append api-version if present + var urlString = base + endpoint + if let apiVersion = config.apiVersion, !apiVersion.isEmpty, !urlString.contains("api-version") { + let separator = urlString.contains("?") ? "&" : "?" + urlString += "\(separator)api-version=\(apiVersion)" + } + + // Google Gemini: append API key as query param + if config.requestFormat == .googleGenerativeAI { + let separator = urlString.contains("?") ? "&" : "?" + urlString += "\(separator)key=\(config.apiKey)" + } + + guard let url = URL(string: urlString) else { + throw LoopInsightsError.aiProviderError("Invalid URL: \(urlString)") + } + return url + } + + // MARK: - Format-Specific Body Builders + + private func buildOpenAIBody( + config: LoopInsightsAIProviderConfiguration, + systemPrompt: String, + userPrompt: String + ) throws -> Data { + let body: [String: Any] = [ + "model": config.model, + "messages": [ + ["role": "system", "content": systemPrompt], + ["role": "user", "content": userPrompt] + ], + "temperature": config.temperature, + "max_tokens": config.maxTokens + ] + return try JSONSerialization.data(withJSONObject: body) + } + + private func buildAnthropicBody( + config: LoopInsightsAIProviderConfiguration, + systemPrompt: String, + userPrompt: String + ) throws -> Data { + let body: [String: Any] = [ + "model": config.model, + "system": systemPrompt, + "messages": [ + ["role": "user", "content": userPrompt] + ], + "temperature": config.temperature, + "max_tokens": config.maxTokens + ] + return try JSONSerialization.data(withJSONObject: body) + } + + private func buildGoogleBody( + config: LoopInsightsAIProviderConfiguration, + systemPrompt: String, + userPrompt: String + ) throws -> Data { + let body: [String: Any] = [ + "system_instruction": [ + "parts": [["text": systemPrompt]] + ], + "contents": [ + [ + "role": "user", + "parts": [["text": userPrompt]] + ] + ], + "generationConfig": [ + "temperature": config.temperature, + "maxOutputTokens": config.maxTokens + ] + ] + return try JSONSerialization.data(withJSONObject: body) + } + + // MARK: - Response Parsing + + /// Extract text content from the AI response using the format's key path. + private func extractTextFromResponse(data: Data, config: LoopInsightsAIProviderConfiguration) throws -> String { + guard let json = try? JSONSerialization.jsonObject(with: data) as? [String: Any] else { + throw LoopInsightsError.parseError("Response is not valid JSON") + } + + let keyPath = config.requestFormat.defaultResponseKeyPath + let components = keyPath.split(separator: ".").map(String.init) + + var current: Any = json + for component in components { + if let index = Int(component), let array = current as? [Any], index < array.count { + current = array[index] + } else if let dict = current as? [String: Any], let value = dict[component] { + current = value + } else { + throw LoopInsightsError.parseError("Unable to extract content at key path '\(keyPath)' from response") + } + } + + guard let text = current as? String else { + throw LoopInsightsError.parseError("Value at key path '\(keyPath)' is not a string") + } + + return text + } +} diff --git a/Loop/Services/LoopInsights/LoopInsights_DataAggregator.swift b/Loop/Services/LoopInsights/LoopInsights_DataAggregator.swift new file mode 100644 index 0000000000..0c494fcbd4 --- /dev/null +++ b/Loop/Services/LoopInsights/LoopInsights_DataAggregator.swift @@ -0,0 +1,222 @@ +// +// LoopInsights_DataAggregator.swift +// Loop +// +// Concept & design by Taylor Patterson. Coded & tested by Claude Code in February 2026. +// Copyright (c) 2025-2026 LoopKit Authors. All rights reserved. +// + +import Foundation +import LoopKit +import HealthKit + +/// Protocol for providing data store access to the aggregator. +/// Decouples LoopInsights from concrete store implementations. +protocol LoopInsightsDataProviderProtocol: AnyObject { + func getGlucoseSamples(start: Date, end: Date) async throws -> [StoredGlucoseSample] + func getCarbEntries(start: Date, end: Date) async throws -> [StoredCarbEntry] + func getNormalizedDoseEntries(start: Date, end: Date) async throws -> [DoseEntry] + func getLatestStoredSettings() -> StoredSettings +} + +/// Reads from Loop's existing data stores (GlucoseStore, DoseStore, CarbStore) +/// and computes aggregated statistics for AI analysis. +/// +/// This class is read-only — it never writes to any Loop data store. +final class LoopInsights_DataAggregator { + + private weak var dataProvider: LoopInsightsDataProviderProtocol? + + init(dataProvider: LoopInsightsDataProviderProtocol) { + self.dataProvider = dataProvider + } + + // MARK: - Public API + + /// Aggregate all data for the specified analysis period + func aggregateData(period: LoopInsightsAnalysisPeriod) async throws -> LoopInsightsAggregatedStats { + guard let dataProvider = dataProvider else { + throw LoopInsightsError.insufficientData("Data provider not available") + } + + let endDate = Date() + let startDate = endDate.addingTimeInterval(-period.timeInterval) + + async let glucoseStats = computeGlucoseStats(provider: dataProvider, start: startDate, end: endDate) + async let insulinStats = computeInsulinStats(provider: dataProvider, start: startDate, end: endDate) + async let carbStats = computeCarbStats(provider: dataProvider, start: startDate, end: endDate) + + return LoopInsightsAggregatedStats( + period: period, + glucoseStats: try await glucoseStats, + insulinStats: try await insulinStats, + carbStats: try await carbStats, + generatedAt: Date() + ) + } + + /// Capture a snapshot of current therapy settings + func captureTherapySnapshot() throws -> LoopInsightsTherapySnapshot { + guard let dataProvider = dataProvider else { + throw LoopInsightsError.insufficientData("Data provider not available") + } + + let settings = dataProvider.getLatestStoredSettings() + + let basalItems = settings.basalRateSchedule?.items.map { + LoopInsightsTherapySnapshot.LoopInsightsScheduleItem(startTime: $0.startTime, value: $0.value) + } ?? [] + + let isfItems = settings.insulinSensitivitySchedule?.items.map { + LoopInsightsTherapySnapshot.LoopInsightsScheduleItem(startTime: $0.startTime, value: $0.value) + } ?? [] + + let crItems = settings.carbRatioSchedule?.items.map { + LoopInsightsTherapySnapshot.LoopInsightsScheduleItem(startTime: $0.startTime, value: $0.value) + } ?? [] + + return LoopInsightsTherapySnapshot( + basalRateItems: basalItems, + insulinSensitivityItems: isfItems, + carbRatioItems: crItems, + capturedAt: Date() + ) + } + + // MARK: - Glucose Stats + + private func computeGlucoseStats(provider: LoopInsightsDataProviderProtocol, start: Date, end: Date) async throws -> LoopInsightsAggregatedStats.GlucoseStats { + let samples = try await provider.getGlucoseSamples(start: start, end: end) + + guard !samples.isEmpty else { + throw LoopInsightsError.insufficientData("No glucose data available for the selected period") + } + + let glucoseValues = samples.map { $0.quantity.doubleValue(for: .milligramsPerDeciliter) } + let count = Double(glucoseValues.count) + + let average = glucoseValues.reduce(0, +) / count + + let variance = glucoseValues.reduce(0) { $0 + pow($1 - average, 2) } / count + let stdDev = sqrt(variance) + + let cv = (stdDev / average) * 100 + + // Time in range calculations (70-180 mg/dL standard range) + let inRange = glucoseValues.filter { $0 >= 70 && $0 <= 180 } + let belowRange = glucoseValues.filter { $0 < 70 } + let aboveRange = glucoseValues.filter { $0 > 180 } + + let tir = (Double(inRange.count) / count) * 100 + let tbr = (Double(belowRange.count) / count) * 100 + let tar = (Double(aboveRange.count) / count) * 100 + + // GMI (Glucose Management Indicator) = 3.31 + 0.02392 × mean glucose (mg/dL) + let gmi = 3.31 + (0.02392 * average) + + // Hourly averages + var hourlyBuckets: [Int: [Double]] = [:] + let calendar = Calendar.current + for sample in samples { + let hour = calendar.component(.hour, from: sample.startDate) + hourlyBuckets[hour, default: []].append(sample.quantity.doubleValue(for: .milligramsPerDeciliter)) + } + let hourlyAverages = hourlyBuckets.mapValues { values in + values.reduce(0, +) / Double(values.count) + } + + return LoopInsightsAggregatedStats.GlucoseStats( + averageGlucose: average, + standardDeviation: stdDev, + coefficientOfVariation: cv, + timeInRange: tir, + timeBelowRange: tbr, + timeAboveRange: tar, + gmi: gmi, + sampleCount: glucoseValues.count, + hourlyAverages: hourlyAverages + ) + } + + // MARK: - Insulin Stats + + private func computeInsulinStats(provider: LoopInsightsDataProviderProtocol, start: Date, end: Date) async throws -> LoopInsightsAggregatedStats.InsulinStats { + let doses = try await provider.getNormalizedDoseEntries(start: start, end: end) + + let dayCount = max(1, end.timeIntervalSince(start) / (24 * 60 * 60)) + + var totalBasal: Double = 0 + var totalBolus: Double = 0 + var hourlyBasalBuckets: [Int: [Double]] = [:] + var correctionCount = 0 + let calendar = Calendar.current + + for dose in doses { + let units = dose.deliveredUnits ?? dose.programmedUnits + + switch dose.type { + case .basal, .tempBasal, .suspend: + totalBasal += units + let hour = calendar.component(.hour, from: dose.startDate) + // Approximate hourly rate from the dose + let durationHours = max(dose.endDate.timeIntervalSince(dose.startDate) / 3600, 0.001) + let rate = units / durationHours + hourlyBasalBuckets[hour, default: []].append(rate) + case .bolus: + totalBolus += units + // A bolus without a carb entry nearby is likely a correction + // This is a simplified heuristic + if dose.isMutable == false { + correctionCount += 1 + } + default: + break + } + } + + let totalInsulin = totalBasal + totalBolus + let tdd = totalInsulin / dayCount + + let basalPercent = totalInsulin > 0 ? (totalBasal / totalInsulin) * 100 : 50 + let bolusPercent = totalInsulin > 0 ? (totalBolus / totalInsulin) * 100 : 50 + + let hourlyBasalAverages = hourlyBasalBuckets.mapValues { values in + values.reduce(0, +) / Double(values.count) + } + + return LoopInsightsAggregatedStats.InsulinStats( + totalDailyDose: tdd, + basalPercentage: basalPercent, + bolusPercentage: bolusPercent, + hourlyBasalAverages: hourlyBasalAverages, + correctionBolusCount: correctionCount + ) + } + + // MARK: - Carb Stats + + private func computeCarbStats(provider: LoopInsightsDataProviderProtocol, start: Date, end: Date) async throws -> LoopInsightsAggregatedStats.CarbStats { + let entries = try await provider.getCarbEntries(start: start, end: end) + + let dayCount = max(1, end.timeIntervalSince(start) / (24 * 60 * 60)) + let totalCarbs = entries.reduce(0.0) { $0 + $1.quantity.doubleValue(for: .gram()) } + let avgDaily = totalCarbs / dayCount + let mealCount = entries.count + let avgPerMeal = mealCount > 0 ? totalCarbs / Double(mealCount) : 0 + + // Hourly meal frequency + var hourlyFrequency: [Int: Int] = [:] + let calendar = Calendar.current + for entry in entries { + let hour = calendar.component(.hour, from: entry.startDate) + hourlyFrequency[hour, default: 0] += 1 + } + + return LoopInsightsAggregatedStats.CarbStats( + averageDailyCarbs: avgDaily, + mealCount: mealCount, + averageCarbsPerMeal: avgPerMeal, + hourlyMealFrequency: hourlyFrequency + ) + } +} diff --git a/Loop/Services/LoopInsights/LoopInsights_SecureStorage.swift b/Loop/Services/LoopInsights/LoopInsights_SecureStorage.swift new file mode 100644 index 0000000000..95d0ab86a8 --- /dev/null +++ b/Loop/Services/LoopInsights/LoopInsights_SecureStorage.swift @@ -0,0 +1,79 @@ +// +// LoopInsights_SecureStorage.swift +// Loop +// +// Concept & design by Taylor Patterson. Coded & tested by Claude Code in February 2026. +// Copyright (c) 2025-2026 LoopKit Authors. All rights reserved. +// + +import Foundation +import Security + +/// Keychain wrapper for storing AI API keys securely. +/// Shares the same Keychain entry as FoodFinder so users only configure once. +struct LoopInsights_SecureStorage { + + // Uses the same key name as FoodFinder for shared API key access + private static let apiKeyService = "com.loopkit.Loop.AIServiceAPIKey" + private static let apiKeyAccount = "ai_api_key" + + // MARK: - API Key + + static func saveAPIKey(_ key: String) throws { + let data = Data(key.utf8) + + // Delete existing key first + let deleteQuery: [String: Any] = [ + kSecClass as String: kSecClassGenericPassword, + kSecAttrService as String: apiKeyService, + kSecAttrAccount as String: apiKeyAccount + ] + SecItemDelete(deleteQuery as CFDictionary) + + // Add new key + let addQuery: [String: Any] = [ + kSecClass as String: kSecClassGenericPassword, + kSecAttrService as String: apiKeyService, + kSecAttrAccount as String: apiKeyAccount, + kSecValueData as String: data, + kSecAttrAccessible as String: kSecAttrAccessibleWhenUnlockedThisDeviceOnly + ] + + let status = SecItemAdd(addQuery as CFDictionary, nil) + guard status == errSecSuccess else { + throw LoopInsightsError.keychainError("Failed to save API key: \(status)") + } + } + + static func loadAPIKey() -> String? { + let query: [String: Any] = [ + kSecClass as String: kSecClassGenericPassword, + kSecAttrService as String: apiKeyService, + kSecAttrAccount as String: apiKeyAccount, + kSecReturnData as String: true, + kSecMatchLimit as String: kSecMatchLimitOne + ] + + var result: AnyObject? + let status = SecItemCopyMatching(query as CFDictionary, &result) + + guard status == errSecSuccess, let data = result as? Data else { + return nil + } + + return String(data: data, encoding: .utf8) + } + + static func deleteAPIKey() { + let query: [String: Any] = [ + kSecClass as String: kSecClassGenericPassword, + kSecAttrService as String: apiKeyService, + kSecAttrAccount as String: apiKeyAccount + ] + SecItemDelete(query as CFDictionary) + } + + static var hasAPIKey: Bool { + return loadAPIKey() != nil + } +} diff --git a/Loop/Services/LoopInsights/LoopInsights_SuggestionStore.swift b/Loop/Services/LoopInsights/LoopInsights_SuggestionStore.swift new file mode 100644 index 0000000000..9c0781cf57 --- /dev/null +++ b/Loop/Services/LoopInsights/LoopInsights_SuggestionStore.swift @@ -0,0 +1,127 @@ +// +// LoopInsights_SuggestionStore.swift +// Loop +// +// Concept & design by Taylor Patterson. Coded & tested by Claude Code in February 2026. +// Copyright (c) 2025-2026 LoopKit Authors. All rights reserved. +// + +import Foundation + +/// Persists suggestion history to UserDefaults as JSON. +/// All suggestions (pending, applied, dismissed, auto-applied) are stored here +/// so users can review their full history of AI recommendations. +final class LoopInsights_SuggestionStore: ObservableObject { + + static let shared = LoopInsights_SuggestionStore() + + private static let storageKey = "LoopInsights_SuggestionHistory" + private let defaults = UserDefaults.standard + private let encoder = JSONEncoder() + private let decoder = JSONDecoder() + + @Published private(set) var records: [LoopInsightsSuggestionRecord] = [] + + private init() { + loadRecords() + } + + // MARK: - Read + + /// All records sorted by creation date (newest first) + var allRecords: [LoopInsightsSuggestionRecord] { + return records.sorted { $0.createdAt > $1.createdAt } + } + + /// Only pending (unresolved) records + var pendingRecords: [LoopInsightsSuggestionRecord] { + return records.filter { $0.status == .pending }.sorted { $0.createdAt > $1.createdAt } + } + + /// Only resolved records (applied, dismissed, auto-applied) + var resolvedRecords: [LoopInsightsSuggestionRecord] { + return records.filter { $0.status.isResolved }.sorted { $0.createdAt > $1.createdAt } + } + + /// Find a record by ID + func record(withID id: UUID) -> LoopInsightsSuggestionRecord? { + return records.first { $0.id == id } + } + + // MARK: - Write + + /// Add a new suggestion as a pending record + func addSuggestion(_ suggestion: LoopInsightsSuggestion) -> LoopInsightsSuggestionRecord { + let record = LoopInsightsSuggestionRecord(suggestion: suggestion) + records.append(record) + saveRecords() + return record + } + + /// Add multiple suggestions as pending records + func addSuggestions(_ suggestions: [LoopInsightsSuggestion]) -> [LoopInsightsSuggestionRecord] { + let newRecords = suggestions.map { LoopInsightsSuggestionRecord(suggestion: $0) } + records.append(contentsOf: newRecords) + saveRecords() + return newRecords + } + + /// Mark a record as applied + func markApplied(recordID: UUID, mode: LoopInsightsApplyMode, snapshotBefore: LoopInsightsTherapySnapshot?, snapshotAfter: LoopInsightsTherapySnapshot?) { + guard let index = records.firstIndex(where: { $0.id == recordID }) else { return } + records[index].markApplied(mode: mode, snapshotBefore: snapshotBefore, snapshotAfter: snapshotAfter) + saveRecords() + } + + /// Mark a record as dismissed + func markDismissed(recordID: UUID) { + guard let index = records.firstIndex(where: { $0.id == recordID }) else { return } + records[index].markDismissed() + saveRecords() + } + + /// Dismiss all pending records + func dismissAllPending() { + for index in records.indices where records[index].status == .pending { + records[index].markDismissed() + } + saveRecords() + } + + /// Delete a specific record + func deleteRecord(withID id: UUID) { + records.removeAll { $0.id == id } + saveRecords() + } + + /// Clear all history + func clearAllHistory() { + records.removeAll() + saveRecords() + } + + // MARK: - Persistence + + private func loadRecords() { + guard let data = defaults.data(forKey: Self.storageKey) else { + records = [] + return + } + + do { + records = try decoder.decode([LoopInsightsSuggestionRecord].self, from: data) + } catch { + print("[LoopInsights] Failed to decode suggestion history: \(error)") + records = [] + } + } + + private func saveRecords() { + do { + let data = try encoder.encode(records) + defaults.set(data, forKey: Self.storageKey) + } catch { + print("[LoopInsights] Failed to encode suggestion history: \(error)") + } + } +} diff --git a/Loop/Services/LoopInsights/LoopInsights_TestDataProvider.swift b/Loop/Services/LoopInsights/LoopInsights_TestDataProvider.swift new file mode 100644 index 0000000000..e3e8086e35 --- /dev/null +++ b/Loop/Services/LoopInsights/LoopInsights_TestDataProvider.swift @@ -0,0 +1,289 @@ +// +// LoopInsights_TestDataProvider.swift +// Loop +// +// Concept & design by Taylor Patterson. Coded & tested by Claude Code in February 2026. +// Copyright (c) 2025-2026 LoopKit Authors. All rights reserved. +// + +import Foundation +import LoopKit +import HealthKit + +/// Loads JSON fixture files (generated by pull_tidepool_data.py) and provides them +/// to LoopInsights as if they came from the real Loop data stores. +/// +/// File lookup order: +/// 1. App's Documents/LoopInsights/ directory (user-provided, no rebuild needed) +/// 2. App bundle Resources/LoopInsights/TestData/ (developer-bundled) +/// +/// Expected fixture filenames: +/// - tidepool_glucose_samples.json +/// - tidepool_dose_entries.json +/// - tidepool_carb_entries.json +/// - tidepool_therapy_settings.json (optional) +final class LoopInsights_TestDataProvider: LoopInsightsDataProviderProtocol { + + // MARK: - Cached Data + + private var glucoseSamples: [StoredGlucoseSample] = [] + private var carbEntries: [StoredCarbEntry] = [] + private var doseEntries: [DoseEntry] = [] + private var storedSettings: StoredSettings = StoredSettings() + + private var isLoaded = false + + // MARK: - File Names + + private enum FixtureFile { + static let glucose = "tidepool_glucose_samples.json" + static let doses = "tidepool_dose_entries.json" + static let carbs = "tidepool_carb_entries.json" + static let settings = "tidepool_therapy_settings.json" + } + + // MARK: - Initialization + + init() { + loadFixtures() + } + + // MARK: - Data Availability + + /// Returns true if any test data fixtures were found and loaded. + var hasTestData: Bool { + return !glucoseSamples.isEmpty || !doseEntries.isEmpty || !carbEntries.isEmpty + } + + /// Summary of loaded fixture data. + var dataSummary: String { + return "Glucose: \(glucoseSamples.count), Doses: \(doseEntries.count), Carbs: \(carbEntries.count)" + } + + /// Date range of the loaded data (nil if empty). + var dateRange: (start: Date, end: Date)? { + var allDates: [Date] = [] + allDates.append(contentsOf: glucoseSamples.map { $0.startDate }) + allDates.append(contentsOf: doseEntries.map { $0.startDate }) + allDates.append(contentsOf: carbEntries.map { $0.startDate }) + + guard let earliest = allDates.min(), let latest = allDates.max() else { + return nil + } + return (earliest, latest) + } + + // MARK: - LoopInsightsDataProviderProtocol + + func getGlucoseSamples(start: Date, end: Date) async throws -> [StoredGlucoseSample] { + return glucoseSamples.filter { $0.startDate >= start && $0.startDate <= end } + } + + func getCarbEntries(start: Date, end: Date) async throws -> [StoredCarbEntry] { + return carbEntries.filter { $0.startDate >= start && $0.startDate <= end } + } + + func getNormalizedDoseEntries(start: Date, end: Date) async throws -> [DoseEntry] { + return doseEntries.filter { $0.startDate >= start && $0.startDate <= end } + } + + func getLatestStoredSettings() -> StoredSettings { + return storedSettings + } + + // MARK: - Static Helpers + + /// Check if test data fixtures exist in any search location. + static var fixturesAvailable: Bool { + return resolveFixturePath(for: FixtureFile.glucose) != nil || + resolveFixturePath(for: FixtureFile.doses) != nil || + resolveFixturePath(for: FixtureFile.carbs) != nil + } + + /// Returns the Documents/LoopInsights/ directory path (creates it if needed). + static var documentsDirectory: URL { + let docs = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first! + let dir = docs.appendingPathComponent("LoopInsights", isDirectory: true) + try? FileManager.default.createDirectory(at: dir, withIntermediateDirectories: true) + return dir + } + + // MARK: - Private Loading + + private func loadFixtures() { + guard !isLoaded else { return } + isLoaded = true + + let decoder = JSONDecoder() + decoder.dateDecodingStrategy = .custom { decoder in + let container = try decoder.singleValueContainer() + let dateString = try container.decode(String.self) + if let date = Self.iso8601Formatter.date(from: dateString) { + return date + } + if let date = Self.iso8601FractionalFormatter.date(from: dateString) { + return date + } + throw DecodingError.dataCorruptedError(in: container, debugDescription: "Cannot parse date: \(dateString)") + } + + // Load glucose samples + if let data = Self.loadFixtureData(for: FixtureFile.glucose) { + do { + glucoseSamples = try decoder.decode([StoredGlucoseSample].self, from: data) + print("[LoopInsights TestData] Loaded \(glucoseSamples.count) glucose samples") + } catch { + print("[LoopInsights TestData] Failed to decode glucose: \(error)") + } + } + + // Load dose entries (pre-process to strip scheduledBasalRate fields that crash HKUnit) + if let data = Self.loadFixtureData(for: FixtureFile.doses) { + let sanitizedData = Self.sanitizeDoseJSON(data) + do { + doseEntries = try decoder.decode([DoseEntry].self, from: sanitizedData) + print("[LoopInsights TestData] Loaded \(doseEntries.count) dose entries") + } catch { + print("[LoopInsights TestData] Failed to decode doses: \(error)") + } + } + + // Load carb entries + if let data = Self.loadFixtureData(for: FixtureFile.carbs) { + do { + carbEntries = try decoder.decode([StoredCarbEntry].self, from: data) + print("[LoopInsights TestData] Loaded \(carbEntries.count) carb entries") + } catch { + print("[LoopInsights TestData] Failed to decode carbs: \(error)") + } + } + + // Load therapy settings (optional — builds StoredSettings from Tidepool schedule data) + if let data = Self.loadFixtureData(for: FixtureFile.settings) { + loadTherapySettings(data: data) + } + } + + /// Parse the Tidepool therapy settings JSON and construct a StoredSettings instance. + private func loadTherapySettings(data: Data) { + guard let json = try? JSONSerialization.jsonObject(with: data) as? [String: Any] else { + print("[LoopInsights TestData] Failed to parse therapy settings JSON") + return + } + + var basalSchedule: BasalRateSchedule? + var isfSchedule: InsulinSensitivitySchedule? + var crSchedule: CarbRatioSchedule? + + // Basal rate schedule + if let items = json["basalRateSchedule"] as? [[String: Any]] { + let dailyItems = items.compactMap { item -> RepeatingScheduleValue? in + guard let startTime = item["startTime"] as? Double, + let value = item["value"] as? Double else { return nil } + return RepeatingScheduleValue(startTime: startTime, value: value) + } + if !dailyItems.isEmpty { + basalSchedule = DailyValueSchedule(dailyItems: dailyItems) + } + } + + // Insulin sensitivity schedule (mg/dL) + if let items = json["insulinSensitivitySchedule"] as? [[String: Any]] { + let dailyItems = items.compactMap { item -> RepeatingScheduleValue? in + guard let startTime = item["startTime"] as? Double, + let value = item["value"] as? Double else { return nil } + return RepeatingScheduleValue(startTime: startTime, value: value) + } + if !dailyItems.isEmpty { + isfSchedule = DailyQuantitySchedule(unit: .milligramsPerDeciliter, dailyItems: dailyItems) + } + } + + // Carb ratio schedule (g/U) + if let items = json["carbRatioSchedule"] as? [[String: Any]] { + let dailyItems = items.compactMap { item -> RepeatingScheduleValue? in + guard let startTime = item["startTime"] as? Double, + let value = item["value"] as? Double else { return nil } + return RepeatingScheduleValue(startTime: startTime, value: value) + } + if !dailyItems.isEmpty { + crSchedule = DailyQuantitySchedule(unit: .gram(), dailyItems: dailyItems) + } + } + + storedSettings = StoredSettings( + dosingEnabled: true, + basalRateSchedule: basalSchedule, + insulinSensitivitySchedule: isfSchedule, + carbRatioSchedule: crSchedule + ) + print("[LoopInsights TestData] Loaded therapy settings (basal: \(basalSchedule?.items.count ?? 0), ISF: \(isfSchedule?.items.count ?? 0), CR: \(crSchedule?.items.count ?? 0))") + } + + // MARK: - Dose JSON Sanitization + + /// Remove scheduledBasalRate/scheduledBasalRateUnit from dose JSON to prevent + /// HKUnit(from:) NSException crashes with non-standard unit strings. + /// LoopInsights only needs type, startDate, endDate, value, unit, deliveredUnits, automatic. + private static func sanitizeDoseJSON(_ data: Data) -> Data { + guard var jsonArray = try? JSONSerialization.jsonObject(with: data) as? [[String: Any]] else { + return data + } + for i in jsonArray.indices { + jsonArray[i].removeValue(forKey: "scheduledBasalRate") + jsonArray[i].removeValue(forKey: "scheduledBasalRateUnit") + } + return (try? JSONSerialization.data(withJSONObject: jsonArray)) ?? data + } + + // MARK: - File Resolution + + /// Find the path to a fixture file, checking Documents first, then bundle. + private static func resolveFixturePath(for filename: String) -> URL? { + // 1. Check Documents/LoopInsights/ + let docsPath = documentsDirectory.appendingPathComponent(filename) + if FileManager.default.fileExists(atPath: docsPath.path) { + return docsPath + } + + // 2. Check app bundle + let name = (filename as NSString).deletingPathExtension + let ext = (filename as NSString).pathExtension + if let bundlePath = Bundle.main.url(forResource: name, withExtension: ext, subdirectory: "LoopInsights/TestData") { + return bundlePath + } + + // 3. Check bundle root (flat resources) + if let bundlePath = Bundle.main.url(forResource: name, withExtension: ext) { + return bundlePath + } + + return nil + } + + /// Load raw Data from a fixture file. + private static func loadFixtureData(for filename: String) -> Data? { + guard let url = resolveFixturePath(for: filename) else { + print("[LoopInsights TestData] Fixture not found: \(filename)") + return nil + } + print("[LoopInsights TestData] Loading: \(url.lastPathComponent) from \(url.deletingLastPathComponent().lastPathComponent)/") + return try? Data(contentsOf: url) + } + + // MARK: - Date Formatters + + /// ISO 8601 without fractional seconds: "2026-02-10T12:00:00Z" + private static let iso8601Formatter: ISO8601DateFormatter = { + let f = ISO8601DateFormatter() + f.formatOptions = [.withInternetDateTime] + return f + }() + + /// ISO 8601 with fractional seconds: "2026-02-10T12:00:00.000Z" + private static let iso8601FractionalFormatter: ISO8601DateFormatter = { + let f = ISO8601DateFormatter() + f.formatOptions = [.withInternetDateTime, .withFractionalSeconds] + return f + }() +} diff --git a/Loop/View Models/LoopInsights/LoopInsights_DashboardViewModel.swift b/Loop/View Models/LoopInsights/LoopInsights_DashboardViewModel.swift new file mode 100644 index 0000000000..b3da107c5a --- /dev/null +++ b/Loop/View Models/LoopInsights/LoopInsights_DashboardViewModel.swift @@ -0,0 +1,407 @@ +// +// LoopInsights_DashboardViewModel.swift +// Loop +// +// Concept & design by Taylor Patterson. Coded & tested by Claude Code in February 2026. +// Copyright (c) 2025-2026 LoopKit Authors. All rights reserved. +// + +import Foundation +import Combine +import LoopKit + +/// Main view model for the LoopInsights Dashboard. Orchestrates data aggregation, +/// AI analysis, and suggestion state management. +/// +/// Owned by DashboardView. Calls Coordinator services for data access and AI analysis. +final class LoopInsights_DashboardViewModel: ObservableObject { + + // MARK: - Published State + + /// Current analysis state + @Published var isAnalyzing = false + @Published var analysisError: LoopInsightsError? + @Published var lastAnalysisDate: Date? + + /// Current therapy snapshot + @Published var currentSnapshot: LoopInsightsTherapySnapshot? + + /// AI analysis results + @Published var analysisResponse: LoopInsightsAnalysisResponse? + @Published var overallAssessment: String? + + /// Suggestion records (pending) + @Published var pendingSuggestions: [LoopInsightsSuggestionRecord] = [] + + /// Selected setting type for analysis focus + @Published var focusSettingType: LoopInsightsSettingType = .carbRatio + + /// Analysis period + @Published var analysisPeriod: LoopInsightsAnalysisPeriod + + /// Apply mode confirmation state + @Published var showingApplyConfirmation = false + @Published var recordToApply: LoopInsightsSuggestionRecord? + + /// Aggregated stats (for display) + @Published var aggregatedStats: LoopInsightsAggregatedStats? + + /// Setting types that have been analyzed — used to show green "OK" status + /// for settings that were reviewed and found to need no changes + @Published var analyzedSettingTypes: Set = [] + + /// Detected glucose/insulin patterns from aggregated data + @Published var detectedPatterns: [LoopInsightsDetectedPattern] = [] + + // MARK: - Dependencies + + private let coordinator: LoopInsights_Coordinator + private var cancellables = Set() + + /// Expose suggestion store for views that need direct access + var suggestionStore: LoopInsights_SuggestionStore { + coordinator.suggestionStore + } + + // MARK: - Initialization + + init(coordinator: LoopInsights_Coordinator) { + self.coordinator = coordinator + self.analysisPeriod = LoopInsights_FeatureFlags.analysisPeriod + + // Observe suggestion store changes + coordinator.suggestionStore.$records + .map { records in records.filter { $0.status == .pending }.sorted { $0.createdAt > $1.createdAt } } + .receive(on: DispatchQueue.main) + .assign(to: &$pendingSuggestions) + + // Load initial snapshot + loadCurrentSettings() + } + + // MARK: - Actions + + /// Load current therapy settings snapshot + func loadCurrentSettings() { + do { + currentSnapshot = try coordinator.captureCurrentSnapshot() + } catch { + print("[LoopInsights] Failed to capture therapy snapshot: \(error)") + } + } + + /// Run AI analysis for the focused setting type + func runAnalysis() { + guard !isAnalyzing else { return } + + isAnalyzing = true + analysisError = nil + + Task { @MainActor in + do { + // Aggregate data + let stats = try await coordinator.dataAggregator.aggregateData(period: analysisPeriod) + self.aggregatedStats = stats + + // Detect patterns from aggregated stats + self.detectedPatterns = Self.detectPatterns(from: stats) + + // Capture current settings + let snapshot = try coordinator.captureCurrentSnapshot() + self.currentSnapshot = snapshot + + // Run AI analysis + let response = try await coordinator.aiAnalysis.analyze( + settingType: focusSettingType, + currentSettings: snapshot, + stats: stats + ) + + self.analysisResponse = response + self.overallAssessment = response.overallAssessment + self.lastAnalysisDate = Date() + + // Track that this setting type has been analyzed + self.analyzedSettingTypes.insert(focusSettingType) + + // Dismiss any existing pending suggestions for this setting type + for record in pendingSuggestions where record.suggestion.settingType == focusSettingType { + coordinator.suggestionStore.markDismissed(recordID: record.id) + } + + // Add new suggestions as pending records + let _ = coordinator.suggestionStore.addSuggestions(response.suggestions) + + // If next focus is recommended, update + if let nextFocus = response.nextRecommendedFocus { + self.focusSettingType = nextFocus + } + + // Auto-apply if developer mode + auto-apply enabled + if LoopInsights_FeatureFlags.developerModeEnabled && + LoopInsights_FeatureFlags.applyMode == .autoApply { + for suggestion in response.suggestions where suggestion.confidence >= .high { + await autoApplySuggestion(suggestion) + } + } + + self.isAnalyzing = false + + } catch let error as LoopInsightsError { + self.analysisError = error + self.isAnalyzing = false + } catch { + self.analysisError = .aiProviderError(error.localizedDescription) + self.isAnalyzing = false + } + } + } + + /// Apply a suggestion based on the current apply mode + func applySuggestion(_ record: LoopInsightsSuggestionRecord) { + let mode = LoopInsights_FeatureFlags.applyMode + + switch mode { + case .manual: + // Just mark as applied — user navigates to Therapy Settings manually + let snapshotBefore = try? coordinator.captureCurrentSnapshot() + coordinator.suggestionStore.markApplied( + recordID: record.id, + mode: .manual, + snapshotBefore: snapshotBefore, + snapshotAfter: nil + ) + + case .oneTap: + // Show confirmation dialog first + recordToApply = record + showingApplyConfirmation = true + + case .preFill: + // Navigate to editor with pre-filled values + // For Phase 1, fall back to one-tap behavior with confirmation + recordToApply = record + showingApplyConfirmation = true + + case .autoApply: + // This path is only available in developer mode + Task { @MainActor in + await autoApplySuggestion(record.suggestion) + } + } + } + + /// Confirm one-tap apply after user accepts disclaimer + func confirmApply() { + guard let record = recordToApply else { return } + + let snapshotBefore = try? coordinator.captureCurrentSnapshot() + + // TODO: Phase 1 — implement actual settings write via SettingsManager + // For now, mark as applied and log + coordinator.suggestionStore.markApplied( + recordID: record.id, + mode: LoopInsights_FeatureFlags.applyMode, + snapshotBefore: snapshotBefore, + snapshotAfter: nil + ) + + recordToApply = nil + showingApplyConfirmation = false + loadCurrentSettings() + } + + /// Cancel apply confirmation + func cancelApply() { + recordToApply = nil + showingApplyConfirmation = false + } + + /// Dismiss a suggestion + func dismissSuggestion(_ record: LoopInsightsSuggestionRecord) { + coordinator.suggestionStore.markDismissed(recordID: record.id) + } + + /// Dismiss all pending suggestions + func dismissAllPending() { + coordinator.suggestionStore.dismissAllPending() + } + + /// Returns the analysis status for a setting type (used for color indicators) + func settingStatus(_ type: LoopInsightsSettingType) -> LoopInsightsSettingStatus { + let hasPending = pendingSuggestions.contains { $0.suggestion.settingType == type } + if hasPending { + return .hasSuggestions + } else if analyzedSettingTypes.contains(type) { + return .analyzedOK + } + return .notAnalyzed + } + + /// Update analysis period and persist to settings + func updateAnalysisPeriod(_ period: LoopInsightsAnalysisPeriod) { + analysisPeriod = period + LoopInsights_FeatureFlags.analysisPeriod = period + } + + // MARK: - Private + + private func autoApplySuggestion(_ suggestion: LoopInsightsSuggestion) async { + let snapshotBefore = try? coordinator.captureCurrentSnapshot() + + // TODO: Implement actual settings write + // For now, just log the auto-apply intent + print("[LoopInsights] Auto-applying suggestion: \(suggestion.summaryDescription)") + + if let record = coordinator.suggestionStore.pendingRecords.first(where: { $0.suggestion.id == suggestion.id }) { + coordinator.suggestionStore.markApplied( + recordID: record.id, + mode: .autoApply, + snapshotBefore: snapshotBefore, + snapshotAfter: nil + ) + } + } + + // MARK: - Pattern Detection + + /// Detect glucose/insulin patterns from aggregated statistics. + /// Returns patterns sorted by severity (high first). + static func detectPatterns(from stats: LoopInsightsAggregatedStats) -> [LoopInsightsDetectedPattern] { + var patterns: [LoopInsightsDetectedPattern] = [] + let g = stats.glucoseStats + let period = stats.period + + // Overnight lows: average glucose during hours 0-5 below 80 mg/dL + let overnightHours = (0...5) + let overnightAvgs = overnightHours.compactMap { g.hourlyAverages[$0] } + if !overnightAvgs.isEmpty { + let overnightAvg = overnightAvgs.reduce(0, +) / Double(overnightAvgs.count) + if overnightAvg < 70 { + patterns.append(LoopInsightsDetectedPattern( + type: .overnightLows, + detail: String(format: NSLocalizedString("Average overnight glucose %.0f mg/dL in %@", comment: "LoopInsights pattern detail: overnight lows"), overnightAvg, period.displayName), + severity: .high + )) + } else if overnightAvg < 80 { + patterns.append(LoopInsightsDetectedPattern( + type: .overnightLows, + detail: String(format: NSLocalizedString("Average overnight glucose %.0f mg/dL in %@", comment: "LoopInsights pattern detail: overnight lows moderate"), overnightAvg, period.displayName), + severity: .medium + )) + } + } + + // Frequent lows: time below range > 4% (ADA target < 4%) + if g.timeBelowRange > 8 { + patterns.append(LoopInsightsDetectedPattern( + type: .frequentLows, + detail: String(format: NSLocalizedString("%.1f%% time below range in %@", comment: "LoopInsights pattern detail: frequent lows"), g.timeBelowRange, period.displayName), + severity: .high + )) + } else if g.timeBelowRange > 4 { + patterns.append(LoopInsightsDetectedPattern( + type: .frequentLows, + detail: String(format: NSLocalizedString("%.1f%% time below range in %@", comment: "LoopInsights pattern detail: frequent lows moderate"), g.timeBelowRange, period.displayName), + severity: .medium + )) + } + + // Overnight highs: average glucose during hours 0-5 above 180 mg/dL + if !overnightAvgs.isEmpty { + let overnightAvg = overnightAvgs.reduce(0, +) / Double(overnightAvgs.count) + if overnightAvg > 200 { + patterns.append(LoopInsightsDetectedPattern( + type: .overnightHighs, + detail: String(format: NSLocalizedString("Average overnight glucose %.0f mg/dL in %@", comment: "LoopInsights pattern detail: overnight highs"), overnightAvg, period.displayName), + severity: .high + )) + } else if overnightAvg > 180 { + patterns.append(LoopInsightsDetectedPattern( + type: .overnightHighs, + detail: String(format: NSLocalizedString("Average overnight glucose %.0f mg/dL in %@", comment: "LoopInsights pattern detail: overnight highs moderate"), overnightAvg, period.displayName), + severity: .medium + )) + } + } + + // Dawn phenomenon: glucose rises > 30 mg/dL between hours 3-7 + let dawnStart = g.hourlyAverages[3] ?? g.hourlyAverages[4] + let dawnPeak = g.hourlyAverages[7] ?? g.hourlyAverages[6] + if let start = dawnStart, let peak = dawnPeak { + let rise = peak - start + if rise > 40 { + patterns.append(LoopInsightsDetectedPattern( + type: .dawnPhenomenon, + detail: String(format: NSLocalizedString("Average rise of %.0f mg/dL between 3 AM–7 AM", comment: "LoopInsights pattern detail: dawn phenomenon"), rise), + severity: .high + )) + } else if rise > 20 { + patterns.append(LoopInsightsDetectedPattern( + type: .dawnPhenomenon, + detail: String(format: NSLocalizedString("Average rise of %.0f mg/dL between 3 AM–7 AM", comment: "LoopInsights pattern detail: dawn phenomenon moderate"), rise), + severity: .medium + )) + } + } + + // Post-meal spikes: high glucose during common meal hours relative to pre-meal + // Compare hours 7-8 (breakfast) vs 6, hours 12-13 (lunch) vs 11, hours 18-19 (dinner) vs 17 + var spikeCount = 0 + let mealWindows: [(pre: Int, post: Int)] = [(6, 8), (11, 13), (17, 19)] + for window in mealWindows { + if let pre = g.hourlyAverages[window.pre], let post = g.hourlyAverages[window.post] { + if post - pre > 50 { spikeCount += 1 } + } + } + if spikeCount >= 2 { + patterns.append(LoopInsightsDetectedPattern( + type: .postMealSpikes, + detail: String(format: NSLocalizedString("Post-meal glucose spikes detected at %d of 3 meal windows", comment: "LoopInsights pattern detail: post-meal spikes"), spikeCount), + severity: spikeCount >= 3 ? .high : .medium + )) + } + + // High variability: CV > 36% (ADA target < 36%) + if g.coefficientOfVariation > 45 { + patterns.append(LoopInsightsDetectedPattern( + type: .highVariability, + detail: String(format: NSLocalizedString("Coefficient of variation %.1f%% (target <36%%)", comment: "LoopInsights pattern detail: high variability"), g.coefficientOfVariation), + severity: .high + )) + } else if g.coefficientOfVariation > 36 { + patterns.append(LoopInsightsDetectedPattern( + type: .highVariability, + detail: String(format: NSLocalizedString("Coefficient of variation %.1f%% (target <36%%)", comment: "LoopInsights pattern detail: high variability moderate"), g.coefficientOfVariation), + severity: .medium + )) + } + + // Consistent highs: time above range > 25% (ADA target < 25%) + if g.timeAboveRange > 40 { + patterns.append(LoopInsightsDetectedPattern( + type: .consistentHighs, + detail: String(format: NSLocalizedString("%.1f%% time above range in %@", comment: "LoopInsights pattern detail: consistent highs"), g.timeAboveRange, period.displayName), + severity: .high + )) + } else if g.timeAboveRange > 25 { + patterns.append(LoopInsightsDetectedPattern( + type: .consistentHighs, + detail: String(format: NSLocalizedString("%.1f%% time above range in %@", comment: "LoopInsights pattern detail: consistent highs moderate"), g.timeAboveRange, period.displayName), + severity: .medium + )) + } + + // Consistent lows: time below range with low average + if g.averageGlucose < 100 && g.timeBelowRange > 2 { + patterns.append(LoopInsightsDetectedPattern( + type: .consistentLows, + detail: String(format: NSLocalizedString("Average glucose %.0f mg/dL with %.1f%% below range", comment: "LoopInsights pattern detail: consistent lows"), g.averageGlucose, g.timeBelowRange), + severity: g.averageGlucose < 90 ? .high : .medium + )) + } + + // Sort: high severity first + return patterns.sorted { $0.severity > $1.severity } + } +} diff --git a/Loop/Views/LoopInsights/LoopInsights_DashboardView.swift b/Loop/Views/LoopInsights/LoopInsights_DashboardView.swift new file mode 100644 index 0000000000..00724f7123 --- /dev/null +++ b/Loop/Views/LoopInsights/LoopInsights_DashboardView.swift @@ -0,0 +1,478 @@ +// +// LoopInsights_DashboardView.swift +// Loop +// +// Concept & design by Taylor Patterson. Coded & tested by Claude Code in February 2026. +// Copyright (c) 2025-2026 LoopKit Authors. All rights reserved. +// + +import SwiftUI +import LoopKit + +/// Primary entry-point view for LoopInsights. Displays current therapy settings +/// summary, AI suggestion cards, analysis trigger, and navigation to history. +/// +/// NOTE: This view uses a plain `var` for the viewModel rather than @ObservedObject. +/// The parent view (wrapper/container) is responsible for observing the viewModel's +/// objectWillChange and triggering re-renders. This avoids a silent SwiftUI crash +/// that occurs when @ObservedObject subscribes to the ViewModel's publisher +/// during the sheet presentation rendering cycle. +struct LoopInsights_DashboardView: View { + + var viewModel: LoopInsights_DashboardViewModel + /// Changed by the parent container on every ViewModel objectWillChange, + /// forcing SwiftUI to re-evaluate this view's body. + var renderTrigger: Int = 0 + + @State private var showingHistory = false + @State private var selectedRecord: LoopInsightsSuggestionRecord? + @State private var developerTapCount = 0 + + // Manual Bindings — required because viewModel is not @ObservedObject + private var analysisPeriodBinding: Binding { + Binding( + get: { viewModel.analysisPeriod }, + set: { viewModel.updateAnalysisPeriod($0) } + ) + } + + private var showingApplyConfirmationBinding: Binding { + Binding( + get: { viewModel.showingApplyConfirmation }, + set: { viewModel.showingApplyConfirmation = $0 } + ) + } + + var body: some View { + List { + headerSection + currentSettingsSection + analysisSection + if !viewModel.detectedPatterns.isEmpty { + detectedPatternsSection + } + if viewModel.overallAssessment != nil { + assessmentSection + } + if !viewModel.pendingSuggestions.isEmpty { + pendingSuggestionsSection + } + navigationSection + } + .navigationTitle(NSLocalizedString("LoopInsights", comment: "LoopInsights dashboard title")) + .sheet(item: $selectedRecord) { record in + NavigationView { + LoopInsights_SuggestionDetailView( + record: record, + onApply: { viewModel.applySuggestion(record) }, + onDismiss: { viewModel.dismissSuggestion(record) } + ) + } + } + .sheet(isPresented: $showingHistory) { + NavigationView { + LoopInsights_SuggestionHistoryView(store: viewModel.suggestionStore) + } + } + .alert( + NSLocalizedString("Apply Suggestion", comment: "LoopInsights apply confirmation title"), + isPresented: showingApplyConfirmationBinding + ) { + Button(NSLocalizedString("Apply", comment: "LoopInsights apply button"), role: .destructive) { + viewModel.confirmApply() + } + Button(NSLocalizedString("Cancel", comment: "Cancel button"), role: .cancel) { + viewModel.cancelApply() + } + } message: { + Text(NSLocalizedString( + "This will modify your therapy settings. You are responsible for reviewing and verifying all changes. AI suggestions are advisory and may not be appropriate for your situation. Consult your healthcare provider for significant therapy adjustments.", + comment: "LoopInsights apply disclaimer" + )) + } + } + + // MARK: - Header + + private var headerSection: some View { + Section { + VStack(alignment: .leading, spacing: 4) { + HStack { + Image(systemName: "brain.head.profile") + .font(.title2) + .foregroundColor(.accentColor) + Text(NSLocalizedString("LoopInsights", comment: "LoopInsights header")) + .font(.title2) + .fontWeight(.bold) + } + .onLongPressGesture(minimumDuration: 1) { + handleDeveloperTap() + } + + Text(NSLocalizedString("LoopInsights analyzes your glucose, insulin, and carb data to suggest adjustments to your Basal Rates, Carb Ratios, and Insulin Sensitivity factors. Tap one of the settings, choose a lookback period, and tap Analyze to get AI-generated suggestions. All changes require your review and approval.", comment: "LoopInsights subtitle")) + .font(.subheadline) + .foregroundColor(.secondary) + + if let lastDate = viewModel.lastAnalysisDate { + Text(String(format: NSLocalizedString("Last analysis: %@", comment: "LoopInsights last analysis date"), Self.dateFormatter.string(from: lastDate))) + .font(.caption) + .foregroundColor(.secondary) + } + } + .padding(.vertical, 4) + } + } + + // MARK: - Current Settings + + private var currentSettingsSection: some View { + Section(header: Text(NSLocalizedString("Pick from your Current Therapy Settings", comment: "LoopInsights current settings header"))) { + if let snapshot = viewModel.currentSnapshot { + settingRow( + type: .carbRatio, + items: snapshot.carbRatioItems, + unit: "g/U" + ) + settingRow( + type: .insulinSensitivity, + items: snapshot.insulinSensitivityItems, + unit: "mg/dL/U" + ) + settingRow( + type: .basalRate, + items: snapshot.basalRateItems, + unit: "U/hr" + ) + HStack(spacing: 16) { + legendDot(color: .gray, label: NSLocalizedString("Not analyzed", comment: "LoopInsights legend: not analyzed")) + legendDot(color: .green, label: NSLocalizedString("No changes", comment: "LoopInsights legend: OK")) + legendDot(color: .purple, label: NSLocalizedString("Review", comment: "LoopInsights legend: review")) + } + .font(.caption2) + .foregroundColor(.secondary) + } else { + Text(NSLocalizedString("Loading therapy settings...", comment: "LoopInsights loading settings")) + .foregroundColor(.secondary) + } + } + } + + private func settingRow(type: LoopInsightsSettingType, items: [LoopInsightsTherapySnapshot.LoopInsightsScheduleItem], unit: String) -> some View { + let status = viewModel.settingStatus(type) + return HStack { + // Status indicator dot + Circle() + .fill(settingStatusColor(status)) + .frame(width: 8, height: 8) + Image(systemName: type.systemImage) + .foregroundColor(.accentColor) + .frame(width: 24) + VStack(alignment: .leading) { + Text(type.displayName) + .font(.subheadline) + .fontWeight(.medium) + if items.count == 1 { + Text("\(String(format: "%.1f", items[0].value)) \(unit)") + .font(.caption) + .foregroundColor(.secondary) + } else { + Text(String(format: NSLocalizedString("%d time blocks", comment: "LoopInsights time block count"), items.count)) + .font(.caption) + .foregroundColor(.secondary) + } + } + Spacer() + if viewModel.focusSettingType == type { + Image(systemName: "target") + .foregroundColor(.accentColor) + .font(.caption) + } + } + .contentShape(Rectangle()) + .onTapGesture { + viewModel.focusSettingType = type + } + } + + // MARK: - Analysis + + private var analysisSection: some View { + Section { + // Period picker + Picker(NSLocalizedString("Analysis Period", comment: "LoopInsights period picker label"), selection: analysisPeriodBinding) { + ForEach(LoopInsightsAnalysisPeriod.allCases) { period in + Text(period.displayName).tag(period) + } + } + + // Analyze button + Button(action: { viewModel.runAnalysis() }) { + HStack { + Spacer() + if viewModel.isAnalyzing { + ProgressView() + .progressViewStyle(CircularProgressViewStyle()) + .tint(.white) + .padding(.trailing, 8) + Text(NSLocalizedString("Analyzing...", comment: "LoopInsights analyzing")) + } else { + Image(systemName: "sparkles") + Text(String(format: NSLocalizedString("Analyze %@", comment: "LoopInsights analyze button"), viewModel.focusSettingType.abbreviation)) + } + Spacer() + } + .font(.body.weight(.medium)) + .foregroundColor(.white) + .padding(.vertical, 10) + .background( + (viewModel.isAnalyzing || !LoopInsights_SecureStorage.hasAPIKey) + ? Color(red: 0.2, green: 0.6, blue: 0.2) + : Color.green + ) + .cornerRadius(10) + } + .buttonStyle(.plain) + .disabled(viewModel.isAnalyzing || !LoopInsights_SecureStorage.hasAPIKey) + + if !LoopInsights_SecureStorage.hasAPIKey { + Text(NSLocalizedString("Configure your AI API key in LoopInsights Settings to begin analysis.", comment: "LoopInsights no API key message")) + .font(.caption) + .foregroundColor(.orange) + } + + if let error = viewModel.analysisError { + Text(error.localizedDescription) + .font(.caption) + .foregroundColor(.red) + } + } + } + + // MARK: - Pending Suggestions + + private var pendingSuggestionsSection: some View { + Section(header: HStack { + Text(NSLocalizedString("Suggestions for Fine Tuning", comment: "LoopInsights suggestions header")) + Spacer() + Button(NSLocalizedString("Dismiss All", comment: "LoopInsights dismiss all button")) { + viewModel.dismissAllPending() + } + .font(.caption) + }) { + ForEach(viewModel.pendingSuggestions) { record in + suggestionCard(record) + } + HStack(spacing: 16) { + Text(NSLocalizedString("Confidence Level:", comment: "LoopInsights confidence legend label")) + legendDot(color: .blue, label: NSLocalizedString("High", comment: "LoopInsights legend: high")) + legendDot(color: .orange, label: NSLocalizedString("Medium", comment: "LoopInsights legend: medium")) + legendDot(color: .yellow, label: NSLocalizedString("Low", comment: "LoopInsights legend: low")) + } + .font(.caption2) + .foregroundColor(.secondary) + } + } + + private func suggestionCard(_ record: LoopInsightsSuggestionRecord) -> some View { + Button(action: { selectedRecord = record }) { + VStack(alignment: .leading, spacing: 6) { + HStack { + Image(systemName: record.suggestion.settingType.systemImage) + .foregroundColor(.accentColor) + Text(record.suggestion.summaryDescription) + .font(.subheadline) + .fontWeight(.medium) + .foregroundColor(.primary) + Spacer() + confidenceBadge(record.suggestion.confidence) + } + + // Show time blocks summary + ForEach(record.suggestion.timeBlocks) { block in + HStack { + Text(block.timeRangeFormatted) + .font(.caption) + .foregroundColor(.secondary) + Spacer() + Text("\(String(format: "%.1f", block.currentValue)) → \(String(format: "%.1f", block.proposedValue))") + .font(.caption) + .fontWeight(.medium) + .foregroundColor(block.proposedValue > block.currentValue ? .orange : .blue) + Text("(\(String(format: "%+.0f", block.changePercent))%)") + .font(.caption2) + .foregroundColor(.secondary) + } + } + + // Quick action buttons + HStack { + Button(action: { viewModel.applySuggestion(record) }) { + Label(NSLocalizedString("Apply", comment: "LoopInsights apply"), systemImage: "checkmark.circle") + .font(.caption) + } + .buttonStyle(.borderedProminent) + .controlSize(.small) + + Button(action: { viewModel.dismissSuggestion(record) }) { + Label(NSLocalizedString("Dismiss", comment: "LoopInsights dismiss"), systemImage: "xmark.circle") + .font(.caption) + } + .buttonStyle(.bordered) + .controlSize(.small) + + Spacer() + + Button(action: { selectedRecord = record }) { + Text(NSLocalizedString("Reasoning", comment: "LoopInsight's detailed reasoning")) + .font(.caption) + } + .controlSize(.small) + } + .padding(.top, 2) + } + .padding(.vertical, 4) + } + .buttonStyle(.plain) + } + + private func confidenceBadge(_ confidence: LoopInsightsConfidence) -> some View { + Text(confidence.displayName) + .font(.caption2) + .fontWeight(.medium) + .padding(.horizontal, 6) + .padding(.vertical, 2) + .background(confidenceColor(confidence).opacity(0.2)) + .foregroundColor(confidenceColor(confidence)) + .cornerRadius(4) + } + + private func confidenceColor(_ confidence: LoopInsightsConfidence) -> Color { + switch confidence { + case .low: return .yellow + case .medium: return .orange + case .high: return .blue + } + } + + private func settingStatusColor(_ status: LoopInsightsSettingStatus) -> Color { + switch status { + case .notAnalyzed: return .gray + case .analyzedOK: return .green + case .hasSuggestions: return .purple + } + } + + private func legendDot(color: Color, label: String) -> some View { + HStack(spacing: 4) { + Circle() + .fill(color) + .frame(width: 8, height: 8) + Text(label) + } + } + + // MARK: - Detected Patterns + + private var detectedPatternsSection: some View { + Section(header: HStack { + Image(systemName: "waveform.path.ecg") + Text(NSLocalizedString("Detected Patterns", comment: "LoopInsights detected patterns header")) + }) { + ForEach(viewModel.detectedPatterns) { pattern in + HStack(alignment: .top, spacing: 10) { + Image(systemName: pattern.type.systemImage) + .foregroundColor(.accentColor) + .frame(width: 20) + VStack(alignment: .leading, spacing: 2) { + Text(pattern.type.displayName) + .font(.subheadline) + .fontWeight(.medium) + Text(pattern.detail) + .font(.caption) + .foregroundColor(.secondary) + } + Spacer() + confidenceBadge(pattern.severity) + } + .padding(.vertical, 2) + } + } + } + + // MARK: - Assessment + + private var assessmentSection: some View { + Section(header: Text(NSLocalizedString("AI Assessment", comment: "LoopInsights assessment header"))) { + if let assessment = viewModel.overallAssessment { + Text(assessment) + .font(.subheadline) + .foregroundColor(.secondary) + } + + if let stats = viewModel.aggregatedStats { + statsRow(label: NSLocalizedString("Time in Range", comment: "LoopInsights TIR label"), + value: String(format: "%.1f%%", stats.glucoseStats.timeInRange)) + statsRow(label: NSLocalizedString("Average Glucose", comment: "LoopInsights avg glucose label"), + value: String(format: "%.0f mg/dL", stats.glucoseStats.averageGlucose)) + statsRow(label: NSLocalizedString("GMI (est. A1C)", comment: "LoopInsights GMI label"), + value: String(format: "%.1f%%", stats.glucoseStats.gmi)) + statsRow(label: NSLocalizedString("Total Daily Dose", comment: "LoopInsights TDD label"), + value: String(format: "%.1f U/day", stats.insulinStats.totalDailyDose)) + statsRow(label: NSLocalizedString("CV", comment: "LoopInsights CV label"), + value: String(format: "%.1f%%", stats.glucoseStats.coefficientOfVariation)) + } + } + } + + private func statsRow(label: String, value: String) -> some View { + HStack { + Text(label) + .font(.caption) + .foregroundColor(.secondary) + Spacer() + Text(value) + .font(.caption) + .fontWeight(.medium) + } + } + + // MARK: - Navigation + + private var navigationSection: some View { + Section { + Button(action: { showingHistory = true }) { + HStack { + Image(systemName: "clock.arrow.circlepath") + Text(NSLocalizedString("Suggestion History", comment: "LoopInsights history button")) + Spacer() + Image(systemName: "chevron.right") + .font(.caption) + .foregroundColor(.secondary) + } + } + } + } + + // MARK: - Developer Mode + + private func handleDeveloperTap() { + developerTapCount += 1 + if developerTapCount >= LoopInsights_FeatureFlags.developerUnlockThreshold { + LoopInsights_FeatureFlags.developerModeEnabled.toggle() + developerTapCount = 0 + // Haptic feedback + let generator = UINotificationFeedbackGenerator() + generator.notificationOccurred(LoopInsights_FeatureFlags.developerModeEnabled ? .success : .warning) + } + } + + // MARK: - Formatters + + private static let dateFormatter: DateFormatter = { + let formatter = DateFormatter() + formatter.dateStyle = .short + formatter.timeStyle = .short + return formatter + }() +} + diff --git a/Loop/Views/LoopInsights/LoopInsights_SettingsView.swift b/Loop/Views/LoopInsights/LoopInsights_SettingsView.swift new file mode 100644 index 0000000000..36ee889535 --- /dev/null +++ b/Loop/Views/LoopInsights/LoopInsights_SettingsView.swift @@ -0,0 +1,942 @@ +// +// LoopInsights_SettingsView.swift +// Loop +// +// Concept & design by Taylor Patterson. Coded & tested by Claude Code in February 2026. +// Copyright (c) 2025-2026 LoopKit Authors. All rights reserved. +// + +import SwiftUI +import Combine + +/// LoopInsights settings and configuration view. +/// Accessible from Loop's main SettingsView via NavigationLink. +struct LoopInsights_SettingsView: View { + + @Environment(\.openURL) var openURL + + @State private var isEnabled = LoopInsights_FeatureFlags.isEnabled + @State private var selectedPeriod = LoopInsights_FeatureFlags.analysisPeriod + @State private var selectedApplyMode = LoopInsights_FeatureFlags.applyMode + @State private var selectedPersonality = LoopInsights_FeatureFlags.aiPersonality + + // AI Configuration + @State private var baseURL: String + @State private var model: String + @State private var apiKeyText = "" + @State private var showAPIKey = false + @State private var detectedFormat: LoopInsightsRequestFormat + + // Advanced settings + @State private var showAdvanced = false + @State private var endpointPath: String + @State private var apiVersion: String + @State private var organizationID: String + @State private var formatOverride: LoopInsightsRequestFormat? + + // Test connection + @State private var isTesting = false + @State private var testResult: TestResult? + + // Data + @State private var showingClearHistory = false + + // Developer mode unlock + @State private var developerTapCount = 0 + @State private var showDeveloperUnlocked = false + + // Test data (developer mode) + @State private var useTestData = LoopInsights_FeatureFlags.useTestData + @State private var testDataProvider: LoopInsights_TestDataProvider? + @State private var showTestDashboard = false + + private enum TestResult { + case success + case warning(String) + case failure(String) + + var isSuccess: Bool { + if case .success = self { return true } + return false + } + } + + init() { + let config = LoopInsights_FeatureFlags.aiConfiguration + _baseURL = State(initialValue: config.baseURL) + _model = State(initialValue: config.model) + _detectedFormat = State(initialValue: LoopInsightsRequestFormat.detect(from: config.baseURL)) + _endpointPath = State(initialValue: config.endpointPath) + _apiVersion = State(initialValue: config.apiVersion ?? "") + _organizationID = State(initialValue: config.organizationID ?? "") + + // Check if user has overridden format (differs from auto-detected) + let detected = LoopInsightsRequestFormat.detect(from: config.baseURL) + if config.requestFormat != detected { + _formatOverride = State(initialValue: config.requestFormat) + } else { + _formatOverride = State(initialValue: nil) + } + } + + var body: some View { + Form { + featureToggleSection + if isEnabled { + aiConfigSection + advancedAISection + analysisOptionsSection + personalitySection + dataSection + if LoopInsights_FeatureFlags.developerModeEnabled { + developerSection + } + } + } + .navigationTitle(NSLocalizedString("LoopInsights Settings", comment: "LoopInsights settings title")) + .navigationBarTitleDisplayMode(.inline) + .onAppear { + apiKeyText = LoopInsights_SecureStorage.loadAPIKey() ?? "" + + // Clear stale endpoint path if it matches a different format's default + if !endpointPath.isEmpty { + let detected = LoopInsightsRequestFormat.detect(from: baseURL) + let isKnownDefault = LoopInsightsRequestFormat.allCases.contains { $0.defaultEndpoint == endpointPath } + if isKnownDefault && endpointPath != detected.defaultEndpoint { + endpointPath = "" + } + } + } + .alert( + NSLocalizedString("Clear History", comment: "LoopInsights clear history alert title"), + isPresented: $showingClearHistory + ) { + Button(NSLocalizedString("Clear All", comment: "LoopInsights clear all button"), role: .destructive) { + LoopInsights_SuggestionStore.shared.clearAllHistory() + } + Button(NSLocalizedString("Cancel", comment: "Cancel button"), role: .cancel) {} + } message: { + Text(NSLocalizedString("This will permanently delete all suggestion history. This cannot be undone.", comment: "LoopInsights clear history warning")) + } + .alert( + NSLocalizedString("Developer Mode", comment: "LoopInsights developer mode alert title"), + isPresented: $showDeveloperUnlocked + ) { + Button(NSLocalizedString("OK", comment: "OK button")) {} + } message: { + Text(NSLocalizedString("Developer mode has been enabled. You now have access to test data fixtures and auto-apply mode.", comment: "LoopInsights developer mode unlocked message")) + } + .sheet(isPresented: $showTestDashboard) { + NavigationView { + LoopInsights_TestDashboardWrapper() + .toolbar { + ToolbarItem(placement: .navigationBarTrailing) { + Button(NSLocalizedString("Done", comment: "Done button")) { + showTestDashboard = false + } + } + } + } + } + } + + // MARK: - Feature Toggle + + private var featureToggleSection: some View { + Section { + VStack(alignment: .leading, spacing: 12) { + HStack(spacing: 6) { + Image(systemName: "brain.head.profile") + .foregroundColor(.accentColor) + Text("LOOPINSIGHTS") + .font(.caption) + .fontWeight(.semibold) + .foregroundColor(.secondary) + .textCase(.uppercase) + .lineLimit(1) + .layoutPriority(1) + } + .onLongPressGesture(minimumDuration: 1) { + developerTapCount += 1 + if developerTapCount >= LoopInsights_FeatureFlags.developerUnlockThreshold { + LoopInsights_FeatureFlags.developerModeEnabled = true + developerTapCount = 0 + showDeveloperUnlocked = true + } + } + + Toggle(NSLocalizedString("Enable LoopInsights", comment: "LoopInsights enable toggle"), isOn: $isEnabled) + .onChange(of: isEnabled) { newValue in + LoopInsights_FeatureFlags.isEnabled = newValue + } + + Text(NSLocalizedString("Enable AI-powered therapy settings analysis and suggestions. When disabled, the feature is hidden but settings are preserved.", comment: "LoopInsights feature toggle description")) + .font(.caption) + .foregroundColor(.secondary) + + if isEnabled { + VStack(alignment: .leading, spacing: 8) { + HStack(spacing: 6) { + Image(systemName: "cross.fill") + .foregroundColor(.red) + Text(NSLocalizedString("MEDICAL DISCLAIMER", comment: "LoopInsights medical disclaimer header")) + .font(.caption) + .fontWeight(.semibold) + .foregroundColor(.secondary) + .textCase(.uppercase) + .lineLimit(1) + } + Text(NSLocalizedString("AI therapy suggestions are advisory only. You are responsible for reviewing all changes. Consult your healthcare provider for significant therapy adjustments.", comment: "LoopInsights medical disclaimer")) + .font(.caption) + .foregroundColor(.secondary) + } + + Button(action: { showTestDashboard = true }) { + HStack { + Image(systemName: "chart.line.uptrend.xyaxis") + .foregroundColor(.accentColor) + VStack(alignment: .leading, spacing: 2) { + Text(NSLocalizedString("Open Dashboard", comment: "LoopInsights open dashboard button")) + .fontWeight(.medium) + Text(NSLocalizedString("View therapy settings, run AI analysis, and manage suggestions", comment: "LoopInsights dashboard description")) + .font(.caption) + .foregroundColor(.secondary) + } + Spacer() + Image(systemName: "chevron.right") + .font(.caption) + .foregroundColor(.secondary) + } + } + } + } + } + } + + // MARK: - AI Configuration + + private var aiConfigSection: some View { + Section { + VStack(alignment: .leading, spacing: 12) { + HStack(spacing: 6) { + Image(systemName: "sparkles") + .foregroundColor(.accentColor) + Text(NSLocalizedString("AI CONFIGURATION", comment: "LoopInsights AI config header")) + .font(.caption) + .fontWeight(.semibold) + .foregroundColor(.secondary) + .textCase(.uppercase) + } + + Text(NSLocalizedString("Enter your preferred AI API connection details. Any provider that supports chat completions will work.", comment: "LoopInsights AI config description")) + .font(.caption) + .foregroundColor(.secondary) + + // API key signup links + VStack(alignment: .leading, spacing: 6) { + Text(NSLocalizedString("Get an API key from a provider:", comment: "LoopInsights API key links header")) + .font(.caption) + .foregroundColor(.secondary) + HStack(spacing: 12) { + apiKeyLink("OpenAI", url: "https://platform.openai.com/api-keys", color: .green) + apiKeyLink("Anthropic", url: "https://console.anthropic.com/settings/keys", color: .orange) + apiKeyLink("Gemini", url: "https://aistudio.google.com/apikey", color: .blue) + apiKeyLink("Grok", url: "https://console.x.ai", color: .red) + } + } + + // Base URL + VStack(alignment: .leading, spacing: 4) { + Text(NSLocalizedString("Base URL", comment: "LoopInsights base URL label")) + .font(.caption) + .foregroundColor(.secondary) + HStack(spacing: 8) { + TextField("", text: $baseURL) + .textFieldStyle(RoundedBorderTextFieldStyle()) + .overlay(alignment: .leading) { + if baseURL.isEmpty { + Text("e.g. https://api.openai.com/v1") + .foregroundColor(.secondary) + .padding(.leading, 4) + .allowsHitTesting(false) + } + } + .foregroundColor(.primary) + .autocapitalization(.none) + .disableAutocorrection(true) + .keyboardType(.URL) + .onChange(of: baseURL) { _ in + detectedFormat = LoopInsightsRequestFormat.detect(from: baseURL) + formatOverride = nil + endpointPath = "" + testResult = nil + saveConfiguration() + } + if !baseURL.isEmpty { + Button(action: { baseURL = "" }) { + Image(systemName: "xmark.circle.fill") + .foregroundColor(.secondary) + } + .buttonStyle(.plain) + } + } + } + + // API Key + VStack(alignment: .leading, spacing: 4) { + Text(NSLocalizedString("API Key", comment: "LoopInsights API key label")) + .font(.caption) + .foregroundColor(.secondary) + HStack(spacing: 8) { + Group { + if showAPIKey { + TextField(NSLocalizedString("Enter your API key", comment: "LoopInsights API key placeholder"), text: $apiKeyText) + } else { + SecureField(NSLocalizedString("Enter your API key", comment: "LoopInsights API key placeholder"), text: $apiKeyText) + } + } + .textFieldStyle(RoundedBorderTextFieldStyle()) + .autocapitalization(.none) + .disableAutocorrection(true) + .onChange(of: apiKeyText) { newValue in + saveAPIKey(newValue) + testResult = nil + } + Button(action: { showAPIKey.toggle() }) { + Image(systemName: showAPIKey ? "eye.slash" : "eye") + .foregroundColor(.blue) + } + .buttonStyle(.plain) + if !apiKeyText.isEmpty { + Button(action: { apiKeyText = "" }) { + Image(systemName: "xmark.circle.fill") + .foregroundColor(.secondary) + } + .buttonStyle(.plain) + } + } + if !apiKeyText.isEmpty { + Text(NSLocalizedString("Stored securely in Keychain", comment: "LoopInsights keychain confirmation")) + .font(.caption2) + .foregroundColor(.green) + } + } + + // Model + VStack(alignment: .leading, spacing: 4) { + Text(NSLocalizedString("Model", comment: "LoopInsights model label")) + .font(.caption) + .foregroundColor(.secondary) + HStack(spacing: 8) { + TextField("e.g. gpt-4o, claude-sonnet-4-5-20250514, gemini-2.0-flash", text: $model) + .textFieldStyle(RoundedBorderTextFieldStyle()) + .autocapitalization(.none) + .disableAutocorrection(true) + .onChange(of: model) { _ in + testResult = nil + saveConfiguration() + } + if !model.isEmpty { + Button(action: { model = "" }) { + Image(systemName: "xmark.circle.fill") + .foregroundColor(.secondary) + } + .buttonStyle(.plain) + } + } + } + + // Test Connection + VStack(spacing: 8) { + Button(action: testConnection) { + HStack(spacing: 6) { + if isTesting { + ProgressView() + .progressViewStyle(.circular) + .scaleEffect(0.8) + .tint(.black) + Text(NSLocalizedString("Testing...", comment: "LoopInsights testing connection")) + } else { + Image(systemName: "checkmark.shield") + Text(NSLocalizedString("Test Connection", comment: "LoopInsights test connection button")) + } + } + .font(.body.weight(.medium)) + .foregroundColor(.black) + .frame(maxWidth: .infinity) + .padding(.vertical, 10) + .background(Color.white) + .cornerRadius(10) + } + .disabled(isTesting || apiKeyText.isEmpty || baseURL.isEmpty) + .opacity((isTesting || apiKeyText.isEmpty || baseURL.isEmpty) ? 0.5 : 1.0) + .buttonStyle(.plain) + + if let result = testResult { + switch result { + case .success: + HStack(spacing: 4) { + Image(systemName: "checkmark.circle.fill") + .foregroundColor(.green) + Text(NSLocalizedString("Connected", comment: "LoopInsights connection success")) + .font(.caption) + .foregroundColor(.green) + } + case .warning(let message): + HStack(alignment: .top, spacing: 4) { + Image(systemName: "exclamationmark.triangle.fill") + .foregroundColor(.orange) + Text(message) + .font(.caption) + .foregroundColor(.orange) + .fixedSize(horizontal: false, vertical: true) + } + case .failure(let message): + HStack(alignment: .top, spacing: 4) { + Image(systemName: "xmark.circle.fill") + .foregroundColor(.red) + Text(message) + .font(.caption) + .foregroundColor(.red) + .fixedSize(horizontal: false, vertical: true) + } + } + } + } + } + } + } + + // MARK: - Advanced AI Config + + private var advancedAISection: some View { + Section { + DisclosureGroup(NSLocalizedString("Advanced API Settings", comment: "LoopInsights advanced settings toggle"), isExpanded: $showAdvanced) { + VStack(alignment: .leading, spacing: 12) { + Text(NSLocalizedString("This section is for self-hosted, Azure, or non-standard API endpoints. Most users can ignore these.", comment: "LoopInsights advanced settings description")) + .font(.caption2) + .foregroundColor(.secondary) + + // Endpoint Path + VStack(alignment: .leading, spacing: 4) { + Text(NSLocalizedString("Endpoint Path", comment: "LoopInsights endpoint path label")) + .font(.caption) + .foregroundColor(.secondary) + TextField("e.g. /chat/completions", text: $endpointPath) + .textFieldStyle(RoundedBorderTextFieldStyle()) + .autocapitalization(.none) + .disableAutocorrection(true) + .onChange(of: endpointPath) { _ in + saveConfiguration() + } + Text(NSLocalizedString("Leave blank to use the default for your chosen format.", comment: "LoopInsights endpoint path hint")) + .font(.caption2) + .foregroundColor(.secondary) + } + + // API Version + VStack(alignment: .leading, spacing: 4) { + Text(NSLocalizedString("API Version", comment: "LoopInsights API version label")) + .font(.caption) + .foregroundColor(.secondary) + TextField("e.g. 2024-06-01 (Azure only)", text: $apiVersion) + .textFieldStyle(RoundedBorderTextFieldStyle()) + .autocapitalization(.none) + .disableAutocorrection(true) + .onChange(of: apiVersion) { _ in + saveConfiguration() + } + } + + // Organization ID + VStack(alignment: .leading, spacing: 4) { + Text(NSLocalizedString("Organization ID", comment: "LoopInsights org ID label")) + .font(.caption) + .foregroundColor(.secondary) + TextField("e.g. org-... (OpenAI, Azure)", text: $organizationID) + .textFieldStyle(RoundedBorderTextFieldStyle()) + .autocapitalization(.none) + .disableAutocorrection(true) + .onChange(of: organizationID) { _ in + saveConfiguration() + } + } + + // Request Format Override + VStack(alignment: .leading, spacing: 4) { + Text(NSLocalizedString("Request Format Override", comment: "LoopInsights format override label")) + .font(.caption) + .foregroundColor(.secondary) + Picker("Format", selection: Binding( + get: { formatOverride ?? .openAICompatible }, + set: { formatOverride = $0; saveConfiguration() } + )) { + ForEach(LoopInsightsRequestFormat.allCases, id: \.rawValue) { format in + Text(format.displayName).tag(format) + } + } + .pickerStyle(.segmented) + HStack(spacing: 4) { + Text(NSLocalizedString("Auto-detected:", comment: "LoopInsights auto-detected format label")) + .font(.caption2) + .foregroundColor(.secondary) + Text(detectedFormat.displayName) + .font(.caption2) + .fontWeight(.medium) + .foregroundColor(.secondary) + if formatOverride != nil { + Button(NSLocalizedString("Reset", comment: "LoopInsights reset format button")) { + formatOverride = nil + saveConfiguration() + } + .font(.caption2) + } + } + Text(NSLocalizedString("Most providers use OpenAI Compatible. Only change this if auto-detection is wrong.", comment: "LoopInsights format override hint")) + .font(.caption2) + .foregroundColor(.secondary) + } + + // Endpoint preview + if !endpointPreview.isEmpty { + VStack(alignment: .leading, spacing: 2) { + Text(NSLocalizedString("Full endpoint URL:", comment: "LoopInsights endpoint preview label")) + .font(.caption2) + .foregroundColor(.secondary) + Text(endpointPreview) + .font(.caption2) + .foregroundColor(.secondary) + .lineLimit(2) + } + } + } + .padding(.vertical, 4) + } + } + } + + // MARK: - Analysis Options (Apply Mode + Period) + + private var analysisOptionsSection: some View { + Section { + VStack(alignment: .leading, spacing: 12) { + HStack(spacing: 6) { + Image(systemName: "slider.horizontal.3") + .foregroundColor(.accentColor) + Text(NSLocalizedString("ANALYSIS OPTIONS", comment: "LoopInsights analysis options header")) + .font(.caption) + .fontWeight(.semibold) + .foregroundColor(.secondary) + .textCase(.uppercase) + } + + // Lookback period slider + VStack(spacing: 8) { + HStack { + Text(NSLocalizedString("Lookback Period", comment: "LoopInsights period picker")) + .font(.subheadline) + Spacer() + Text(selectedPeriod.displayName) + .font(.subheadline) + .fontWeight(.medium) + .foregroundColor(.accentColor) + } + + let cases = LoopInsightsAnalysisPeriod.allCases + let currentIndex = Double(cases.firstIndex(of: selectedPeriod) ?? 0) + Slider( + value: Binding( + get: { currentIndex }, + set: { newValue in + let index = Int(newValue.rounded()) + if index >= 0 && index < cases.count { + selectedPeriod = cases[index] + } + } + ), + in: 0...Double(cases.count - 1), + step: 1 + ) + HStack { + Text(cases.first?.displayName ?? "") + .font(.caption2) + .foregroundColor(.secondary) + Spacer() + Text(cases.last?.displayName ?? "") + .font(.caption2) + .foregroundColor(.secondary) + } + } + .onChange(of: selectedPeriod) { newValue in + LoopInsights_FeatureFlags.analysisPeriod = newValue + } + + Text(NSLocalizedString("Rolling lookback period for automated AI-based suggestions - how far back do you want LoopInsights to look when analyzing your glucose, insulin, and carb data?", comment: "LoopInsights analysis period description")) + .font(.caption) + .foregroundColor(.secondary) + + Divider() + + // Apply mode picker + let availableModes = LoopInsights_FeatureFlags.developerModeEnabled + ? LoopInsightsApplyMode.allCases + : LoopInsightsApplyMode.publicModes + + Picker(NSLocalizedString("When applying suggestions", comment: "LoopInsights apply mode picker"), selection: $selectedApplyMode) { + ForEach(availableModes) { mode in + Text(mode.displayName) + .foregroundColor(mode == .autoApply ? .orange : .primary) + .tag(mode) + } + } + .onChange(of: selectedApplyMode) { newValue in + LoopInsights_FeatureFlags.applyMode = newValue + } + + Text(selectedApplyMode.description) + .font(.caption) + .foregroundColor(.secondary) + } + } + } + + // MARK: - AI Personality + + private var personalitySection: some View { + Section { + VStack(alignment: .leading, spacing: 12) { + HStack(spacing: 6) { + Image(systemName: "theatermasks") + .foregroundColor(.accentColor) + Text(NSLocalizedString("AI PERSONALITY", comment: "LoopInsights AI personality header")) + .font(.caption) + .fontWeight(.semibold) + .foregroundColor(.secondary) + .textCase(.uppercase) + } + + Picker(NSLocalizedString("Response Style", comment: "LoopInsights personality picker label"), selection: $selectedPersonality) { + ForEach(LoopInsightsAIPersonality.allCases) { personality in + Text(personality.displayName).tag(personality) + } + } + .onChange(of: selectedPersonality) { newValue in + LoopInsights_FeatureFlags.aiPersonality = newValue + } + + Text(selectedPersonality.description) + .font(.caption) + .foregroundColor(.secondary) + } + } + } + + // MARK: - Data + + private var dataSection: some View { + Section { + VStack(alignment: .leading, spacing: 12) { + HStack(spacing: 6) { + Image(systemName: "clock.arrow.circlepath") + .foregroundColor(.accentColor) + Text(NSLocalizedString("SUGGESTION HISTORY", comment: "LoopInsights history header")) + .font(.caption) + .fontWeight(.semibold) + .foregroundColor(.secondary) + .textCase(.uppercase) + } + + HStack { + Text(NSLocalizedString("Stored Suggestions", comment: "LoopInsights stored suggestions label")) + Spacer() + Text("\(LoopInsights_SuggestionStore.shared.allRecords.count)") + .foregroundColor(.secondary) + } + + Button(role: .destructive, action: { showingClearHistory = true }) { + HStack { + Image(systemName: "trash") + Text(NSLocalizedString("Clear Suggestion History", comment: "LoopInsights clear history button")) + } + } + + Text(NSLocalizedString("All past AI suggestions, including applied, dismissed, and expired records.", comment: "LoopInsights history description")) + .font(.caption) + .foregroundColor(.secondary) + } + } + } + + // MARK: - Developer Section (Hidden) + + private var developerSection: some View { + Section { + VStack(alignment: .leading, spacing: 12) { + HStack(spacing: 6) { + Image(systemName: "hammer.fill") + .foregroundColor(.orange) + Text(NSLocalizedString("DEVELOPER", comment: "LoopInsights developer section header")) + .font(.caption) + .fontWeight(.semibold) + .foregroundColor(.orange) + .textCase(.uppercase) + } + + HStack { + Text(NSLocalizedString("Developer Mode", comment: "LoopInsights developer mode label")) + Spacer() + Text(NSLocalizedString("Active", comment: "LoopInsights developer mode active")) + .foregroundColor(.orange) + .fontWeight(.medium) + } + + if selectedApplyMode == .autoApply { + HStack(alignment: .top, spacing: 6) { + Image(systemName: "exclamationmark.triangle.fill") + .foregroundColor(.red) + Text(NSLocalizedString("Auto-Apply is enabled. High-confidence suggestions will be applied automatically.", comment: "LoopInsights auto-apply warning")) + .font(.caption) + .foregroundColor(.red) + } + } + + // Test Data Toggle + Toggle(NSLocalizedString("Use Test Data Fixtures", comment: "LoopInsights test data toggle"), isOn: $useTestData) + .onChange(of: useTestData) { newValue in + LoopInsights_FeatureFlags.useTestData = newValue + if newValue { + testDataProvider = LoopInsights_TestDataProvider() + } else { + testDataProvider = nil + } + } + + Text(NSLocalizedString("Load JSON fixtures from Documents/LoopInsights/ instead of real Loop data. Use pull_tidepool_data.py to generate fixtures from your Tidepool account.", comment: "LoopInsights test data description")) + .font(.caption) + .foregroundColor(.secondary) + + // Test data status + if useTestData { + testDataStatusView + } + + Button(action: { + LoopInsights_FeatureFlags.developerModeEnabled = false + LoopInsights_FeatureFlags.applyMode = .manual + selectedApplyMode = .manual + useTestData = false + LoopInsights_FeatureFlags.useTestData = false + testDataProvider = nil + }) { + HStack { + Image(systemName: "lock.fill") + Text(NSLocalizedString("Disable Developer Mode", comment: "LoopInsights disable developer button")) + } + .foregroundColor(.orange) + } + } + } + } + + // MARK: - Test Data Status + + private var testDataStatusView: some View { + VStack(alignment: .leading, spacing: 6) { + if let provider = testDataProvider { + if provider.hasTestData { + HStack(spacing: 4) { + Image(systemName: "checkmark.circle.fill") + .foregroundColor(.green) + .font(.caption) + Text(NSLocalizedString("Fixtures loaded", comment: "LoopInsights fixtures loaded")) + .font(.caption) + .foregroundColor(.green) + } + Text(provider.dataSummary) + .font(.caption2) + .foregroundColor(.secondary) + if let range = provider.dateRange { + let formatter = DateFormatter() + let _ = formatter.dateStyle = .short + Text("\(formatter.string(from: range.start)) — \(formatter.string(from: range.end))") + .font(.caption2) + .foregroundColor(.secondary) + } + } else { + HStack(spacing: 4) { + Image(systemName: "exclamationmark.triangle.fill") + .foregroundColor(.orange) + .font(.caption) + Text(NSLocalizedString("No fixtures found", comment: "LoopInsights no fixtures")) + .font(.caption) + .foregroundColor(.orange) + } + Text(NSLocalizedString("Place fixture files in Documents/LoopInsights/ or rebuild with bundled test data.", comment: "LoopInsights no fixtures hint")) + .font(.caption2) + .foregroundColor(.secondary) + Text("Documents path: \(LoopInsights_TestDataProvider.documentsDirectory.path)") + .font(.caption2) + .foregroundColor(.secondary) + .lineLimit(3) + } + } else { + ProgressView() + .scaleEffect(0.8) + } + } + .onAppear { + if useTestData && testDataProvider == nil { + testDataProvider = LoopInsights_TestDataProvider() + } + } + } + + + // MARK: - Helpers + + private var effectiveFormat: LoopInsightsRequestFormat { + return formatOverride ?? detectedFormat + } + + private var endpointPreview: String { + let base = baseURL.trimmingCharacters(in: .whitespacesAndNewlines) + guard !base.isEmpty else { return "" } + let trimmed = base.trimmingCharacters(in: CharacterSet(charactersIn: "/")) + let path = endpointPath.isEmpty ? effectiveFormat.defaultEndpoint : endpointPath + let resolvedPath = path.replacingOccurrences(of: "{MODEL}", with: model.isEmpty ? "" : model) + return "\(trimmed)\(resolvedPath)" + } + + private func apiKeyLink(_ name: String, url: String, color: Color) -> some View { + Button(action: { if let u = URL(string: url) { openURL(u) } }) { + Text(name) + .font(.caption) + .foregroundColor(color) + } + .buttonStyle(.plain) + } + + private func saveConfiguration() { + let format = effectiveFormat + var config = LoopInsights_FeatureFlags.aiConfiguration + config.baseURL = baseURL + config.model = model + config.endpointPath = endpointPath.isEmpty ? format.defaultEndpoint : endpointPath + config.requestFormat = format + config.apiKeyHeader = format.defaultAPIKeyHeader + config.apiKeyPrefix = format.defaultAPIKeyPrefix + config.apiVersion = apiVersion.isEmpty ? nil : apiVersion + config.organizationID = organizationID.isEmpty ? nil : organizationID + LoopInsights_FeatureFlags.aiConfiguration = config + } + + private func saveAPIKey(_ key: String) { + if key.isEmpty { + LoopInsights_SecureStorage.deleteAPIKey() + } else { + try? LoopInsights_SecureStorage.saveAPIKey(key) + } + saveConfiguration() + } + + private func testConnection() { + guard !baseURL.isEmpty, !apiKeyText.isEmpty else { return } + + isTesting = true + testResult = nil + + // Save key and config first + try? LoopInsights_SecureStorage.saveAPIKey(apiKeyText) + saveConfiguration() + + Task { + do { + let success = try await LoopInsights_AIServiceAdapter.shared.testConnection() + await MainActor.run { + testResult = success ? .success : .failure(NSLocalizedString("Unknown error", comment: "LoopInsights unknown error")) + isTesting = false + } + } catch let error as LoopInsightsError { + await MainActor.run { + // 402/429 are "connected with caveats" — show as warning + let message = error.localizedDescription + if message.contains("402") || message.contains("429") { + testResult = .warning(message) + } else { + testResult = .failure(message) + } + isTesting = false + } + } catch { + await MainActor.run { + testResult = .failure(error.localizedDescription) + isTesting = false + } + } + } + } +} + +// MARK: - Dashboard Wrapper + +/// Lightweight container that owns the ViewModel and defers heavy creation to +/// onAppear. Also forwards the ViewModel's objectWillChange to its own publisher +/// so the wrapper view re-renders when any ViewModel @Published property changes. +/// This allows DashboardView to use a plain `var` instead of @ObservedObject, +/// avoiding a silent SwiftUI crash during sheet presentation rendering. +private class LoopInsights_DashboardContainer: ObservableObject { + @Published var viewModel: LoopInsights_DashboardViewModel? + /// Increments on every ViewModel objectWillChange, forcing SwiftUI to + /// re-evaluate DashboardView's body (since the reference itself doesn't change). + @Published var renderTrigger: Int = 0 + private var vmCancellable: AnyCancellable? + + func initializeIfNeeded() { + guard viewModel == nil else { return } + + let provider = LoopInsights_TestDataProvider() + let coordinator = LoopInsights_Coordinator(testDataProvider: provider) + let vm = LoopInsights_DashboardViewModel(coordinator: coordinator) + + // Forward ViewModel's objectWillChange → increment renderTrigger + // so SwiftUI sees a value change and re-evaluates DashboardView + vmCancellable = vm.objectWillChange.sink { [weak self] _ in + DispatchQueue.main.async { + self?.renderTrigger += 1 + } + } + + // Defer @Published assignment to next run loop to avoid + // objectWillChange during SwiftUI's view update cycle + DispatchQueue.main.async { [weak self] in + self?.viewModel = vm + } + } +} + +/// Wrapper view that owns the Container via @StateObject and presents +/// the DashboardView once the ViewModel is ready. +private struct LoopInsights_TestDashboardWrapper: View { + @StateObject private var container = LoopInsights_DashboardContainer() + + var body: some View { + Group { + if let vm = container.viewModel { + LoopInsights_DashboardView( + viewModel: vm, + renderTrigger: container.renderTrigger + ) + } else { + VStack(spacing: 12) { + ProgressView() + Text(NSLocalizedString("Loading test data...", comment: "LoopInsights loading test data")) + .font(.caption) + .foregroundColor(.secondary) + } + } + } + .onAppear { + container.initializeIfNeeded() + } + } +} diff --git a/Loop/Views/LoopInsights/LoopInsights_SuggestionDetailView.swift b/Loop/Views/LoopInsights/LoopInsights_SuggestionDetailView.swift new file mode 100644 index 0000000000..afd0bb2621 --- /dev/null +++ b/Loop/Views/LoopInsights/LoopInsights_SuggestionDetailView.swift @@ -0,0 +1,239 @@ +// +// LoopInsights_SuggestionDetailView.swift +// Loop +// +// Concept & design by Taylor Patterson. Coded & tested by Claude Code in February 2026. +// Copyright (c) 2025-2026 LoopKit Authors. All rights reserved. +// + +import SwiftUI + +/// Detailed view of a single suggestion showing reasoning, current vs proposed +/// values for each time block, and apply/dismiss actions. +struct LoopInsights_SuggestionDetailView: View { + + let record: LoopInsightsSuggestionRecord + let onApply: () -> Void + let onDismiss: () -> Void + + @Environment(\.dismiss) private var dismiss + + var body: some View { + List { + headerSection + reasoningSection + timeBlocksSection + if record.status == .pending { + actionsSection + } else { + statusSection + } + } + .navigationTitle(record.suggestion.settingType.displayName) + .navigationBarTitleDisplayMode(.inline) + .toolbar { + ToolbarItem(placement: .navigationBarTrailing) { + Button(NSLocalizedString("Done", comment: "Done button")) { + dismiss() + } + } + } + } + + // MARK: - Header + + private var headerSection: some View { + Section { + VStack(alignment: .leading, spacing: 8) { + HStack { + Image(systemName: record.suggestion.settingType.systemImage) + .font(.title2) + .foregroundColor(.accentColor) + VStack(alignment: .leading) { + Text(record.suggestion.settingType.displayName) + .font(.headline) + Text(record.suggestion.summaryDescription) + .font(.subheadline) + .foregroundColor(.secondary) + } + Spacer() + confidenceBadge + } + + HStack { + Label(record.suggestion.analysisPeriod.displayName, systemImage: "calendar") + .font(.caption) + .foregroundColor(.secondary) + Spacer() + Text(Self.dateFormatter.string(from: record.suggestion.createdAt)) + .font(.caption) + .foregroundColor(.secondary) + } + } + .padding(.vertical, 4) + } + } + + // MARK: - Time Blocks + + private var timeBlocksSection: some View { + Section(header: Text(NSLocalizedString("Proposed Changes", comment: "LoopInsights proposed changes header"))) { + ForEach(record.suggestion.timeBlocks) { block in + VStack(alignment: .leading, spacing: 4) { + Text(block.timeRangeFormatted) + .font(.subheadline) + .fontWeight(.medium) + + HStack { + VStack(alignment: .leading) { + Text(NSLocalizedString("Current", comment: "LoopInsights current value label")) + .font(.caption) + .foregroundColor(.secondary) + Text(String(format: "%.1f %@", block.currentValue, record.suggestion.settingType.unitDescription)) + .font(.body) + .fontWeight(.medium) + } + + Spacer() + + Image(systemName: "arrow.right") + .foregroundColor(.accentColor) + + Spacer() + + VStack(alignment: .trailing) { + Text(NSLocalizedString("Proposed", comment: "LoopInsights proposed value label")) + .font(.caption) + .foregroundColor(.secondary) + Text(String(format: "%.1f %@", block.proposedValue, record.suggestion.settingType.unitDescription)) + .font(.body) + .fontWeight(.bold) + .foregroundColor(block.proposedValue > block.currentValue ? .orange : .blue) + } + } + + HStack { + Spacer() + Text(String(format: "%+.1f%% change", block.changePercent)) + .font(.caption) + .foregroundColor(.secondary) + } + } + .padding(.vertical, 4) + } + } + } + + // MARK: - Reasoning + + private var reasoningSection: some View { + Section(header: Text(NSLocalizedString("AI Reasoning", comment: "LoopInsights reasoning header"))) { + Text(record.suggestion.reasoning) + .font(.subheadline) + .foregroundColor(.secondary) + } + } + + // MARK: - Actions + + private var actionsSection: some View { + Section { + Button(action: { + onApply() + dismiss() + }) { + HStack { + Spacer() + Image(systemName: "checkmark.circle.fill") + Text(NSLocalizedString("Apply Suggestion", comment: "LoopInsights apply suggestion button")) + .fontWeight(.semibold) + Spacer() + } + .padding(.vertical, 4) + } + .buttonStyle(.borderedProminent) + .listRowBackground(Color.clear) + + Button(action: { + onDismiss() + dismiss() + }) { + HStack { + Spacer() + Image(systemName: "xmark.circle") + Text(NSLocalizedString("Dismiss Suggestion", comment: "LoopInsights dismiss suggestion button")) + Spacer() + } + .padding(.vertical, 4) + } + .buttonStyle(.bordered) + .listRowBackground(Color.clear) + } + } + + // MARK: - Status (for resolved records) + + private var statusSection: some View { + Section(header: Text(NSLocalizedString("Status", comment: "LoopInsights status header"))) { + HStack { + Image(systemName: record.status.systemImage) + .foregroundColor(statusColor) + Text(record.status.displayName) + .fontWeight(.medium) + Spacer() + if let resolvedAt = record.resolvedAt { + Text(Self.dateFormatter.string(from: resolvedAt)) + .font(.caption) + .foregroundColor(.secondary) + } + } + + if let mode = record.applyMode { + HStack { + Text(NSLocalizedString("Applied via", comment: "LoopInsights applied via label")) + .foregroundColor(.secondary) + Spacer() + Text(mode.displayName) + .fontWeight(.medium) + } + } + } + } + + // MARK: - Helpers + + private var confidenceBadge: some View { + Text(record.suggestion.confidence.displayName) + .font(.caption2) + .fontWeight(.medium) + .padding(.horizontal, 8) + .padding(.vertical, 4) + .background(confidenceColor.opacity(0.2)) + .foregroundColor(confidenceColor) + .cornerRadius(6) + } + + private var confidenceColor: Color { + switch record.suggestion.confidence { + case .low: return .yellow + case .medium: return .orange + case .high: return .green + } + } + + private var statusColor: Color { + switch record.status { + case .pending: return .blue + case .applied: return .green + case .dismissed: return .gray + case .autoApplied: return .orange + } + } + + private static let dateFormatter: DateFormatter = { + let formatter = DateFormatter() + formatter.dateStyle = .medium + formatter.timeStyle = .short + return formatter + }() +} diff --git a/Loop/Views/LoopInsights/LoopInsights_SuggestionHistoryView.swift b/Loop/Views/LoopInsights/LoopInsights_SuggestionHistoryView.swift new file mode 100644 index 0000000000..37369e4cef --- /dev/null +++ b/Loop/Views/LoopInsights/LoopInsights_SuggestionHistoryView.swift @@ -0,0 +1,183 @@ +// +// LoopInsights_SuggestionHistoryView.swift +// Loop +// +// Concept & design by Taylor Patterson. Coded & tested by Claude Code in February 2026. +// Copyright (c) 2025-2026 LoopKit Authors. All rights reserved. +// + +import SwiftUI + +/// Scrollable log of all past suggestions with status indicators. +/// Shows the complete history of LoopInsights recommendations. +struct LoopInsights_SuggestionHistoryView: View { + + @ObservedObject var store: LoopInsights_SuggestionStore + @State private var selectedRecord: LoopInsightsSuggestionRecord? + @State private var filterStatus: FilterOption = .all + @Environment(\.dismiss) private var dismiss + + enum FilterOption: String, CaseIterable, Identifiable { + case all = "All" + case applied = "Applied" + case dismissed = "Dismissed" + case autoApplied = "Auto-Applied" + + var id: String { rawValue } + } + + var body: some View { + List { + filterSection + if filteredRecords.isEmpty { + emptySection + } else { + recordsSection + } + } + .navigationTitle(NSLocalizedString("Suggestion History", comment: "LoopInsights history title")) + .navigationBarTitleDisplayMode(.inline) + .toolbar { + ToolbarItem(placement: .navigationBarTrailing) { + Button(NSLocalizedString("Done", comment: "Done button")) { + dismiss() + } + } + } + .sheet(item: $selectedRecord) { record in + NavigationView { + LoopInsights_SuggestionDetailView( + record: record, + onApply: {}, + onDismiss: {} + ) + } + } + } + + // MARK: - Filter + + private var filterSection: some View { + Section { + Picker(NSLocalizedString("Filter", comment: "LoopInsights filter picker"), selection: $filterStatus) { + ForEach(FilterOption.allCases) { option in + Text(option.rawValue).tag(option) + } + } + .pickerStyle(SegmentedPickerStyle()) + } + } + + // MARK: - Records + + private var recordsSection: some View { + Section(header: Text(String(format: NSLocalizedString("%d suggestions", comment: "LoopInsights suggestion count"), filteredRecords.count))) { + ForEach(filteredRecords) { record in + Button(action: { selectedRecord = record }) { + historyRow(record) + } + .buttonStyle(.plain) + } + .onDelete(perform: deleteRecords) + } + } + + private func historyRow(_ record: LoopInsightsSuggestionRecord) -> some View { + HStack(spacing: 12) { + // Status icon + Image(systemName: record.status.systemImage) + .foregroundColor(statusColor(record.status)) + .frame(width: 24) + + VStack(alignment: .leading, spacing: 2) { + Text(record.suggestion.summaryDescription) + .font(.subheadline) + .fontWeight(.medium) + + HStack { + Text(record.suggestion.settingType.abbreviation) + .font(.caption2) + .fontWeight(.medium) + .padding(.horizontal, 4) + .padding(.vertical, 1) + .background(Color.accentColor.opacity(0.15)) + .cornerRadius(3) + + Text(record.suggestion.confidence.displayName) + .font(.caption2) + .foregroundColor(.secondary) + + Text(Self.dateFormatter.string(from: record.createdAt)) + .font(.caption2) + .foregroundColor(.secondary) + } + } + + Spacer() + + Image(systemName: "chevron.right") + .font(.caption2) + .foregroundColor(.secondary) + } + .padding(.vertical, 2) + } + + // MARK: - Empty State + + private var emptySection: some View { + Section { + VStack(spacing: 12) { + Image(systemName: "clock.arrow.circlepath") + .font(.largeTitle) + .foregroundColor(.secondary) + Text(NSLocalizedString("No suggestions yet", comment: "LoopInsights empty history title")) + .font(.headline) + Text(NSLocalizedString("Run an analysis from the LoopInsights Dashboard to generate your first suggestions.", comment: "LoopInsights empty history message")) + .font(.subheadline) + .foregroundColor(.secondary) + .multilineTextAlignment(.center) + } + .frame(maxWidth: .infinity) + .padding(.vertical, 20) + } + } + + // MARK: - Computed + + private var filteredRecords: [LoopInsightsSuggestionRecord] { + let allRecords = store.allRecords + switch filterStatus { + case .all: + return allRecords + case .applied: + return allRecords.filter { $0.status == .applied } + case .dismissed: + return allRecords.filter { $0.status == .dismissed } + case .autoApplied: + return allRecords.filter { $0.status == .autoApplied } + } + } + + private func statusColor(_ status: LoopInsightsSuggestionStatus) -> Color { + switch status { + case .pending: return .blue + case .applied: return .green + case .dismissed: return .gray + case .autoApplied: return .orange + } + } + + private func deleteRecords(at offsets: IndexSet) { + for index in offsets { + let record = filteredRecords[index] + store.deleteRecord(withID: record.id) + } + } + + private static let dateFormatter: DateFormatter = { + let formatter = DateFormatter() + formatter.dateStyle = .short + formatter.timeStyle = .short + return formatter + }() +} diff --git a/Loop/Views/SettingsView.swift b/Loop/Views/SettingsView.swift index aa0da33134..9e5dd04b38 100644 --- a/Loop/Views/SettingsView.swift +++ b/Loop/Views/SettingsView.swift @@ -305,6 +305,8 @@ extension SettingsView { if FeatureFlags.allowAlgorithmExperiments { algorithmExperimentsSection } + + loopInsightsSection } } @@ -376,6 +378,22 @@ extension SettingsView { descriptiveText: "Simplify Carb Entry") } } + + private var loopInsightsSection: some View { + Section { + NavigationLink(destination: LoopInsights_SettingsView()) { + LargeButton(action: {}, + includeArrow: false, + imageView: Image(systemName: "brain.head.profile") + .resizable() + .aspectRatio(contentMode: .fit) + .foregroundColor(.accentColor) + .frame(width: 30), + label: NSLocalizedString("LoopInsights", comment: "LoopInsights settings button"), + descriptiveText: NSLocalizedString("AI-powered therapy settings analysis", comment: "LoopInsights settings descriptive text")) + } + } + } private var cgmChoices: [ActionSheet.Button] { var result = viewModel.cgmManagerSettingsViewModel.availableDevices diff --git a/LoopTests/LoopInsights/LoopInsights_DataAggregatorTests.swift b/LoopTests/LoopInsights/LoopInsights_DataAggregatorTests.swift new file mode 100644 index 0000000000..e209829aa4 --- /dev/null +++ b/LoopTests/LoopInsights/LoopInsights_DataAggregatorTests.swift @@ -0,0 +1,166 @@ +// +// LoopInsights_DataAggregatorTests.swift +// LoopTests +// +// Concept & design by Taylor Patterson. Coded & tested by Claude Code in February 2026. +// Copyright (c) 2025-2026 LoopKit Authors. All rights reserved. +// + +import XCTest +import LoopKit +import HealthKit +@testable import Loop + +// MARK: - Mock Data Provider + +final class MockLoopInsightsDataProvider: LoopInsightsDataProviderProtocol { + + var mockGlucoseSamples: [StoredGlucoseSample] = [] + var mockCarbEntries: [StoredCarbEntry] = [] + var mockDoseEntries: [DoseEntry] = [] + var mockSettings: StoredSettings = StoredSettings() + + func getGlucoseSamples(start: Date, end: Date) async throws -> [StoredGlucoseSample] { + return mockGlucoseSamples.filter { $0.startDate >= start && $0.startDate <= end } + } + + func getCarbEntries(start: Date, end: Date) async throws -> [StoredCarbEntry] { + return mockCarbEntries.filter { $0.startDate >= start && $0.startDate <= end } + } + + func getNormalizedDoseEntries(start: Date, end: Date) async throws -> [DoseEntry] { + return mockDoseEntries.filter { $0.startDate >= start && $0.startDate <= end } + } + + func getLatestStoredSettings() -> StoredSettings { + return mockSettings + } +} + +// MARK: - Tests + +final class LoopInsights_DataAggregatorTests: XCTestCase { + + private var mockProvider: MockLoopInsightsDataProvider! + private var aggregator: LoopInsights_DataAggregator! + + override func setUp() { + super.setUp() + mockProvider = MockLoopInsightsDataProvider() + aggregator = LoopInsights_DataAggregator(dataProvider: mockProvider) + } + + // MARK: - Glucose Stats + + func testGlucoseStatsCalculation() async throws { + // Create mock glucose samples spanning 7 days + let now = Date() + var samples: [StoredGlucoseSample] = [] + let calendar = Calendar.current + + // Create samples every 5 minutes for 7 days + // Mix of in-range, low, and high values + for dayOffset in 0..<7 { + for hourOffset in 0..<24 { + for minuteOffset in stride(from: 0, to: 60, by: 5) { + let date = calendar.date(byAdding: .day, value: -dayOffset, to: now)! + let dateWithHour = calendar.date(byAdding: .hour, value: -hourOffset, to: date)! + let dateWithMinute = calendar.date(byAdding: .minute, value: -minuteOffset, to: dateWithHour)! + + // Simulate realistic glucose: mostly in range with some highs after meals + var glucose: Double + if hourOffset >= 7 && hourOffset <= 9 { + glucose = Double.random(in: 140...200) // Post-breakfast highs + } else if hourOffset >= 12 && hourOffset <= 14 { + glucose = Double.random(in: 130...180) // Post-lunch + } else { + glucose = Double.random(in: 80...140) // Normal range + } + + let sample = StoredGlucoseSample( + uuid: UUID(), + provenanceIdentifier: "test", + syncIdentifier: UUID().uuidString, + syncVersion: 1, + startDate: dateWithMinute, + quantity: HKQuantity(unit: .milligramsPerDeciliter, doubleValue: glucose), + condition: nil, + trend: nil, + trendRate: nil, + isDisplayOnly: false, + wasUserEntered: false, + device: nil, + healthKitEligibleDate: nil + ) + samples.append(sample) + } + } + } + + mockProvider.mockGlucoseSamples = samples + + let stats = try await aggregator.aggregateData(period: .sevenDays) + + // Verify glucose stats are reasonable + XCTAssertGreaterThan(stats.glucoseStats.averageGlucose, 0) + XCTAssertGreaterThan(stats.glucoseStats.standardDeviation, 0) + XCTAssertGreaterThan(stats.glucoseStats.timeInRange, 0) + XCTAssertEqual(stats.glucoseStats.timeInRange + stats.glucoseStats.timeBelowRange + stats.glucoseStats.timeAboveRange, 100, accuracy: 0.1) + XCTAssertGreaterThan(stats.glucoseStats.gmi, 0) + XCTAssertGreaterThan(stats.glucoseStats.sampleCount, 0) + } + + func testInsufficientDataThrows() async { + // No glucose samples + mockProvider.mockGlucoseSamples = [] + + do { + _ = try await aggregator.aggregateData(period: .sevenDays) + XCTFail("Should have thrown insufficientData error") + } catch let error as LoopInsightsError { + if case .insufficientData = error { + // Expected + } else { + XCTFail("Wrong error type: \(error)") + } + } catch { + XCTFail("Wrong error type: \(error)") + } + } + + // MARK: - GMI Calculation + + func testGMICalculation() async throws { + // Create samples with known average glucose + let now = Date() + let targetGlucose = 154.0 // Should give GMI ≈ 7.0 + + var samples: [StoredGlucoseSample] = [] + for i in 0..<100 { + let date = now.addingTimeInterval(TimeInterval(-i * 300)) // 5 min apart + let sample = StoredGlucoseSample( + uuid: UUID(), + provenanceIdentifier: "test", + syncIdentifier: UUID().uuidString, + syncVersion: 1, + startDate: date, + quantity: HKQuantity(unit: .milligramsPerDeciliter, doubleValue: targetGlucose), + condition: nil, + trend: nil, + trendRate: nil, + isDisplayOnly: false, + wasUserEntered: false, + device: nil, + healthKitEligibleDate: nil + ) + samples.append(sample) + } + + mockProvider.mockGlucoseSamples = samples + + let stats = try await aggregator.aggregateData(period: .sevenDays) + + // GMI = 3.31 + 0.02392 × 154 = 3.31 + 3.68 ≈ 6.99 + XCTAssertEqual(stats.glucoseStats.gmi, 6.99, accuracy: 0.1) + } +} diff --git a/LoopTests/LoopInsights/LoopInsights_ModelsTests.swift b/LoopTests/LoopInsights/LoopInsights_ModelsTests.swift new file mode 100644 index 0000000000..968d692c4d --- /dev/null +++ b/LoopTests/LoopInsights/LoopInsights_ModelsTests.swift @@ -0,0 +1,255 @@ +// +// LoopInsights_ModelsTests.swift +// LoopTests +// +// Concept & design by Taylor Patterson. Coded & tested by Claude Code in February 2026. +// Copyright (c) 2025-2026 LoopKit Authors. All rights reserved. +// + +import XCTest +@testable import Loop + +final class LoopInsights_ModelsTests: XCTestCase { + + // MARK: - LoopInsightsSettingType + + func testSettingTypeDisplayNames() { + XCTAssertEqual(LoopInsightsSettingType.carbRatio.abbreviation, "CR") + XCTAssertEqual(LoopInsightsSettingType.insulinSensitivity.abbreviation, "ISF") + XCTAssertEqual(LoopInsightsSettingType.basalRate.abbreviation, "BR") + } + + func testSettingTypeCodable() throws { + let original = LoopInsightsSettingType.carbRatio + let data = try JSONEncoder().encode(original) + let decoded = try JSONDecoder().decode(LoopInsightsSettingType.self, from: data) + XCTAssertEqual(original, decoded) + } + + func testSettingTypeAllCases() { + XCTAssertEqual(LoopInsightsSettingType.allCases.count, 3) + } + + // MARK: - LoopInsightsAnalysisPeriod + + func testAnalysisPeriodTimeIntervals() { + XCTAssertEqual(LoopInsightsAnalysisPeriod.sevenDays.timeInterval, 7 * 24 * 60 * 60) + XCTAssertEqual(LoopInsightsAnalysisPeriod.fourteenDays.timeInterval, 14 * 24 * 60 * 60) + XCTAssertEqual(LoopInsightsAnalysisPeriod.thirtyDays.timeInterval, 30 * 24 * 60 * 60) + } + + func testAnalysisPeriodCodable() throws { + let original = LoopInsightsAnalysisPeriod.fourteenDays + let data = try JSONEncoder().encode(original) + let decoded = try JSONDecoder().decode(LoopInsightsAnalysisPeriod.self, from: data) + XCTAssertEqual(original, decoded) + } + + // MARK: - LoopInsightsApplyMode + + func testApplyModePublicModes() { + let publicModes = LoopInsightsApplyMode.publicModes + XCTAssertEqual(publicModes.count, 3) + XCTAssertFalse(publicModes.contains(.autoApply)) + } + + func testApplyModeCodable() throws { + let original = LoopInsightsApplyMode.oneTap + let data = try JSONEncoder().encode(original) + let decoded = try JSONDecoder().decode(LoopInsightsApplyMode.self, from: data) + XCTAssertEqual(original, decoded) + } + + // MARK: - LoopInsightsConfidence + + func testConfidenceComparable() { + XCTAssertTrue(LoopInsightsConfidence.low < .medium) + XCTAssertTrue(LoopInsightsConfidence.medium < .high) + XCTAssertFalse(LoopInsightsConfidence.high < .low) + } + + func testConfidenceCodable() throws { + let original = LoopInsightsConfidence.high + let data = try JSONEncoder().encode(original) + let decoded = try JSONDecoder().decode(LoopInsightsConfidence.self, from: data) + XCTAssertEqual(original, decoded) + } + + // MARK: - LoopInsightsTimeBlock + + func testTimeBlockChangePercent() { + let block = LoopInsightsTimeBlock( + startTime: 0, + endTime: 21600, + currentValue: 10.0, + proposedValue: 12.0 + ) + XCTAssertEqual(block.changePercent, 20.0, accuracy: 0.01) + } + + func testTimeBlockChangePercentDecrease() { + let block = LoopInsightsTimeBlock( + startTime: 0, + endTime: 21600, + currentValue: 50.0, + proposedValue: 45.0 + ) + XCTAssertEqual(block.changePercent, -10.0, accuracy: 0.01) + } + + func testTimeBlockChangePercentZeroCurrent() { + let block = LoopInsightsTimeBlock( + startTime: 0, + endTime: 21600, + currentValue: 0.0, + proposedValue: 5.0 + ) + XCTAssertEqual(block.changePercent, 0.0) + } + + func testTimeBlockCodable() throws { + let original = LoopInsightsTimeBlock( + startTime: 21600, + endTime: 43200, + currentValue: 10.0, + proposedValue: 11.0 + ) + let data = try JSONEncoder().encode(original) + let decoded = try JSONDecoder().decode(LoopInsightsTimeBlock.self, from: data) + XCTAssertEqual(decoded.startTime, original.startTime) + XCTAssertEqual(decoded.endTime, original.endTime) + XCTAssertEqual(decoded.currentValue, original.currentValue) + XCTAssertEqual(decoded.proposedValue, original.proposedValue) + } + + // MARK: - LoopInsightsSuggestion + + func testSuggestionSummaryDescriptionSingleBlock() { + let suggestion = makeSuggestion(blocks: [ + LoopInsightsTimeBlock(startTime: 43200, endTime: 54000, currentValue: 10, proposedValue: 12) + ]) + XCTAssertTrue(suggestion.summaryDescription.contains("Increase")) + XCTAssertTrue(suggestion.summaryDescription.contains("CR")) + } + + func testSuggestionSummaryDescriptionMultiBlock() { + let suggestion = makeSuggestion(blocks: [ + LoopInsightsTimeBlock(startTime: 0, endTime: 21600, currentValue: 10, proposedValue: 12), + LoopInsightsTimeBlock(startTime: 21600, endTime: 43200, currentValue: 8, proposedValue: 9) + ]) + XCTAssertTrue(suggestion.summaryDescription.contains("2")) + } + + func testSuggestionEquality() { + let suggestion1 = makeSuggestion(blocks: []) + let suggestion2 = makeSuggestion(blocks: []) + XCTAssertNotEqual(suggestion1, suggestion2, "Different UUIDs should not be equal") + XCTAssertEqual(suggestion1, suggestion1, "Same instance should be equal") + } + + func testSuggestionCodable() throws { + let original = makeSuggestion(blocks: [ + LoopInsightsTimeBlock(startTime: 0, endTime: 21600, currentValue: 10, proposedValue: 11) + ]) + let data = try JSONEncoder().encode(original) + let decoded = try JSONDecoder().decode(LoopInsightsSuggestion.self, from: data) + XCTAssertEqual(decoded.id, original.id) + XCTAssertEqual(decoded.settingType, original.settingType) + XCTAssertEqual(decoded.timeBlocks.count, original.timeBlocks.count) + } + + // MARK: - LoopInsightsTherapySnapshot + + func testTherapySnapshotCodable() throws { + let snapshot = LoopInsightsTherapySnapshot( + basalRateItems: [ + .init(startTime: 0, value: 0.8), + .init(startTime: 21600, value: 1.0) + ], + insulinSensitivityItems: [ + .init(startTime: 0, value: 50) + ], + carbRatioItems: [ + .init(startTime: 0, value: 10) + ], + capturedAt: Date() + ) + let data = try JSONEncoder().encode(snapshot) + let decoded = try JSONDecoder().decode(LoopInsightsTherapySnapshot.self, from: data) + XCTAssertEqual(decoded.basalRateItems.count, 2) + XCTAssertEqual(decoded.insulinSensitivityItems.count, 1) + XCTAssertEqual(decoded.carbRatioItems.count, 1) + } + + // MARK: - LoopInsightsRequestFormat + + func testRequestFormatAutoDetection() { + XCTAssertEqual(LoopInsightsRequestFormat.detect(from: "https://api.openai.com/v1"), .openAICompatible) + XCTAssertEqual(LoopInsightsRequestFormat.detect(from: "https://api.anthropic.com/v1"), .anthropicMessages) + XCTAssertEqual(LoopInsightsRequestFormat.detect(from: "https://generativelanguage.googleapis.com/v1beta"), .googleGenerativeAI) + // Unknown URL falls back to OpenAI-compatible + XCTAssertEqual(LoopInsightsRequestFormat.detect(from: "https://my-custom-llm.com/v1"), .openAICompatible) + } + + func testRequestFormatDefaults() { + XCTAssertEqual(LoopInsightsRequestFormat.openAICompatible.defaultAPIKeyHeader, "Authorization") + XCTAssertEqual(LoopInsightsRequestFormat.anthropicMessages.defaultAPIKeyHeader, "x-api-key") + XCTAssertEqual(LoopInsightsRequestFormat.openAICompatible.defaultAPIKeyPrefix, "Bearer ") + XCTAssertEqual(LoopInsightsRequestFormat.anthropicMessages.defaultAPIKeyPrefix, "") + } + + // MARK: - LoopInsightsAIProviderConfiguration + + func testConfigurationCodableExcludesAPIKey() throws { + var config = LoopInsightsAIProviderConfiguration( + baseURL: "https://api.openai.com/v1", + model: "gpt-4o", + apiKey: "sk-secret-key" + ) + let data = try JSONEncoder().encode(config) + let json = String(data: data, encoding: .utf8)! + // API key must NOT appear in serialized output + XCTAssertFalse(json.contains("sk-secret-key")) + + let decoded = try JSONDecoder().decode(LoopInsightsAIProviderConfiguration.self, from: data) + XCTAssertEqual(decoded.baseURL, "https://api.openai.com/v1") + XCTAssertEqual(decoded.model, "gpt-4o") + XCTAssertEqual(decoded.apiKey, "", "API key should be empty after decoding") + } + + func testConfigurationDefaultValues() { + let config = LoopInsightsAIProviderConfiguration() + XCTAssertEqual(config.baseURL, "https://api.openai.com/v1") + XCTAssertEqual(config.model, "gpt-4o") + XCTAssertEqual(config.requestFormat, .openAICompatible) + XCTAssertEqual(config.maxTokens, 4096) + XCTAssertEqual(config.temperature, 0.3, accuracy: 0.001) + XCTAssertNil(config.apiVersion) + XCTAssertNil(config.organizationID) + } + + // MARK: - LoopInsightsError + + func testErrorDescriptions() { + let noKey = LoopInsightsError.noAPIKeyConfigured + XCTAssertNotNil(noKey.errorDescription) + XCTAssertTrue(noKey.errorDescription!.contains("API key")) + + let parseError = LoopInsightsError.parseError("bad json") + XCTAssertTrue(parseError.errorDescription!.contains("bad json")) + } + + // MARK: - Helpers + + private func makeSuggestion(blocks: [LoopInsightsTimeBlock]) -> LoopInsightsSuggestion { + return LoopInsightsSuggestion( + id: UUID(), + settingType: .carbRatio, + timeBlocks: blocks, + reasoning: "Test reasoning", + confidence: .medium, + analysisPeriod: .fourteenDays, + createdAt: Date() + ) + } +} diff --git a/LoopTests/LoopInsights/LoopInsights_SuggestionStoreTests.swift b/LoopTests/LoopInsights/LoopInsights_SuggestionStoreTests.swift new file mode 100644 index 0000000000..d93c09d5b9 --- /dev/null +++ b/LoopTests/LoopInsights/LoopInsights_SuggestionStoreTests.swift @@ -0,0 +1,168 @@ +// +// LoopInsights_SuggestionStoreTests.swift +// LoopTests +// +// Concept & design by Taylor Patterson. Coded & tested by Claude Code in February 2026. +// Copyright (c) 2025-2026 LoopKit Authors. All rights reserved. +// + +import XCTest +@testable import Loop + +final class LoopInsights_SuggestionStoreTests: XCTestCase { + + private var store: LoopInsights_SuggestionStore! + + override func setUp() { + super.setUp() + store = LoopInsights_SuggestionStore.shared + store.clearAllHistory() + } + + override func tearDown() { + store.clearAllHistory() + super.tearDown() + } + + // MARK: - Add + + func testAddSuggestion() { + let suggestion = makeSuggestion() + let record = store.addSuggestion(suggestion) + + XCTAssertEqual(record.status, .pending) + XCTAssertEqual(store.allRecords.count, 1) + XCTAssertEqual(store.pendingRecords.count, 1) + } + + func testAddMultipleSuggestions() { + let suggestions = [makeSuggestion(), makeSuggestion(), makeSuggestion()] + let records = store.addSuggestions(suggestions) + + XCTAssertEqual(records.count, 3) + XCTAssertEqual(store.allRecords.count, 3) + } + + // MARK: - Status Transitions + + func testMarkApplied() { + let suggestion = makeSuggestion() + let record = store.addSuggestion(suggestion) + + store.markApplied(recordID: record.id, mode: .oneTap, snapshotBefore: nil, snapshotAfter: nil) + + let updated = store.record(withID: record.id) + XCTAssertEqual(updated?.status, .applied) + XCTAssertNotNil(updated?.resolvedAt) + XCTAssertEqual(updated?.applyMode, .oneTap) + } + + func testMarkAutoApplied() { + let suggestion = makeSuggestion() + let record = store.addSuggestion(suggestion) + + store.markApplied(recordID: record.id, mode: .autoApply, snapshotBefore: nil, snapshotAfter: nil) + + let updated = store.record(withID: record.id) + XCTAssertEqual(updated?.status, .autoApplied) + } + + func testMarkDismissed() { + let suggestion = makeSuggestion() + let record = store.addSuggestion(suggestion) + + store.markDismissed(recordID: record.id) + + let updated = store.record(withID: record.id) + XCTAssertEqual(updated?.status, .dismissed) + XCTAssertNotNil(updated?.resolvedAt) + } + + func testDismissAllPending() { + _ = store.addSuggestions([makeSuggestion(), makeSuggestion(), makeSuggestion()]) + + XCTAssertEqual(store.pendingRecords.count, 3) + + store.dismissAllPending() + + XCTAssertEqual(store.pendingRecords.count, 0) + XCTAssertEqual(store.resolvedRecords.count, 3) + } + + // MARK: - Read + + func testPendingRecordsFilter() { + let suggestion1 = makeSuggestion() + let suggestion2 = makeSuggestion() + let record1 = store.addSuggestion(suggestion1) + _ = store.addSuggestion(suggestion2) + + store.markDismissed(recordID: record1.id) + + XCTAssertEqual(store.pendingRecords.count, 1) + XCTAssertEqual(store.resolvedRecords.count, 1) + } + + func testRecordLookupByID() { + let suggestion = makeSuggestion() + let record = store.addSuggestion(suggestion) + + let found = store.record(withID: record.id) + XCTAssertNotNil(found) + XCTAssertEqual(found?.id, record.id) + + let notFound = store.record(withID: UUID()) + XCTAssertNil(notFound) + } + + // MARK: - Delete + + func testDeleteRecord() { + let suggestion = makeSuggestion() + let record = store.addSuggestion(suggestion) + + store.deleteRecord(withID: record.id) + + XCTAssertEqual(store.allRecords.count, 0) + } + + func testClearAllHistory() { + _ = store.addSuggestions([makeSuggestion(), makeSuggestion()]) + + store.clearAllHistory() + + XCTAssertEqual(store.allRecords.count, 0) + } + + // MARK: - Persistence + + func testRecordsSortedNewestFirst() { + let suggestion1 = makeSuggestion() + let suggestion2 = makeSuggestion() + + _ = store.addSuggestion(suggestion1) + // Small delay to ensure different timestamps + _ = store.addSuggestion(suggestion2) + + let records = store.allRecords + XCTAssertEqual(records.count, 2) + // Newest should be first + XCTAssertGreaterThanOrEqual(records[0].createdAt, records[1].createdAt) + } + + // MARK: - Helpers + + private func makeSuggestion() -> LoopInsightsSuggestion { + return LoopInsightsSuggestion( + id: UUID(), + settingType: .carbRatio, + timeBlocks: [ + LoopInsightsTimeBlock(startTime: 0, endTime: 21600, currentValue: 10, proposedValue: 11) + ], + reasoning: "Test reasoning", + confidence: .medium, + analysisPeriod: .fourteenDays, + createdAt: Date() + ) + } +} From 41a89c37359bbeb3c56f35e16a048452ede1febb Mon Sep 17 00:00:00 2001 From: Taylor Date: Thu, 12 Feb 2026 17:09:05 -0800 Subject: [PATCH 02/14] Phase 2: Therapy settings write pipeline, revert, clinical AI reasoning, and UI refinements - Wire real therapy settings writes via LoopInsightsSettingsWriter closure - Schedule splitting: insert new entries when AI suggests times not in user's schedule - Revert feature: restore pre-apply settings from suggestion history - Settings Score (0-100) with TIR, Safety, Stability, GMI breakdown - Clinical reasoning framework: AI now understands AID-specific patterns (corrections/day, basal/bolus ratio, time-of-day analysis, cross-setting interactions) - All three settings visible in every AI prompt for cross-setting reasoning - Pre-computed red flags injected into prompt (algorithm workload, basal % alerts) - Stale-data guard: excludes manually reverted changes from recent context - Suggestion merge: consolidates split AI responses into single cards - Pre-Fill Editor: editable proposed values before applying - Auto-applied notification banner - Debug log with Copy Full Log for troubleshooting AI behavior - Temperature forced to 0.0 for deterministic analysis --- Loop/Localizable.xcstrings | 152 ++++- .../LoopInsights_Coordinator.swift | 162 ++++- .../LoopInsights/LoopInsights_Models.swift | 17 +- .../LoopInsights_SuggestionRecord.swift | 18 +- .../LoopInsights_FeatureFlags.swift | 4 +- .../LoopInsights_AIAnalysis.swift | 260 ++++++-- .../LoopInsights_SuggestionStore.swift | 7 + .../StatusTableViewController.swift | 7 + .../LoopInsights_DashboardViewModel.swift | 325 +++++++++- Loop/View Models/SettingsViewModel.swift | 3 + .../LoopInsights_DashboardView.swift | 581 ++++++++++++++++-- .../LoopInsights_SettingsView.swift | 119 ++-- .../LoopInsights_SuggestionDetailView.swift | 40 +- .../LoopInsights_SuggestionHistoryView.swift | 45 +- Loop/Views/SettingsView.swift | 6 +- 15 files changed, 1550 insertions(+), 196 deletions(-) diff --git a/Loop/Localizable.xcstrings b/Loop/Localizable.xcstrings index b3435231a2..24e3c354eb 100644 --- a/Loop/Localizable.xcstrings +++ b/Loop/Localizable.xcstrings @@ -3196,6 +3196,18 @@ "comment" : "The text that appears next to the \"Suggestion History\" label in the LoopInsights settings view, showing the number of suggestion records stored.", "isCommentAutoGenerated" : true }, + "%lld/%lld" : { + "comment" : "Displays the current score and maximum score for a given category. The first argument is the current score. The second argument is the maximum score.", + "isCommentAutoGenerated" : true, + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "%1$lld/%2$lld" + } + } + } + }, "⚠️" : { "localizations" : { "da" : { @@ -5882,6 +5894,9 @@ "AI Reasoning" : { "comment" : "LoopInsights reasoning header" }, + "AI REASONING" : { + "comment" : "LoopInsights pre-fill reasoning header" + }, "AI therapy suggestions are advisory only. You are responsible for reviewing all changes. Consult your healthcare provider for significant therapy adjustments." : { "comment" : "LoopInsights medical disclaimer" }, @@ -6492,9 +6507,6 @@ } } }, - "All past AI suggestions, including applied, dismissed, and expired records." : { - "comment" : "LoopInsights history description" - }, "Amount Consumed" : { "comment" : "Label for carb quantity entry row on carb entry screen", "localizations" : { @@ -7089,6 +7101,14 @@ } } }, + "Analysis Debug Log" : { + "comment" : "The title of the view that displays detailed information about an AI analysis.", + "isCommentAutoGenerated" : true + }, + "Analysis Info" : { + "comment" : "The header text for the section that displays information about the AI analysis.", + "isCommentAutoGenerated" : true + }, "ANALYSIS OPTIONS" : { "comment" : "LoopInsights analysis options header" }, @@ -7098,8 +7118,11 @@ "Analyze %@" : { "comment" : "LoopInsights analyze button" }, + "Analyze All" : { + "comment" : "LoopInsights analyze all button" + }, "Analyzing..." : { - "comment" : "LoopInsights analyzing" + "comment" : "LoopInsights analyzing\nLoopInsights analyzing all" }, "API Key" : { "comment" : "The title of the amplitude API key credential", @@ -7525,6 +7548,9 @@ "Apply" : { "comment" : "LoopInsights apply\nLoopInsights apply button" }, + "Apply Changes" : { + "comment" : "LoopInsights pre-fill apply button" + }, "Apply Suggestion" : { "comment" : "LoopInsights apply confirmation title\nLoopInsights apply suggestion button" }, @@ -8568,6 +8594,9 @@ "Auto-Applied" : { "comment" : "LoopInsights suggestion status: automatically applied" }, + "AUTO-APPLIED CHANGES" : { + "comment" : "LoopInsights auto-applied section header" + }, "Auto-Apply" : { "comment" : "LoopInsights apply mode: automatically apply suggestions (developer only)" }, @@ -10087,7 +10116,7 @@ } }, "Cancel" : { - "comment" : "Button label for cancel\nButton text to cancel\nCancel button\nCancel button for reset loop alert\nCancel export button title\nThe title of the cancel action in an action sheet", + "comment" : "Button label for cancel\nButton text to cancel\nCancel button\nCancel button for reset loop alert\nCancel export button title\nLoopInsights pre-fill cancel button\nThe title of the cancel action in an action sheet", "localizations" : { "ar" : { "stringUnit" : { @@ -12204,9 +12233,6 @@ "Clear History" : { "comment" : "LoopInsights clear history alert title" }, - "Clear Suggestion History" : { - "comment" : "LoopInsights clear history button" - }, "Clinical Expert" : { "comment" : "LoopInsights personality: clinical expert" }, @@ -12673,6 +12699,9 @@ } } }, + "Coefficient of Variation" : { + "comment" : "LoopInsights coefficient of variation label" + }, "Coefficient of variation %.1f%% (target <36%%)" : { "comment" : "LoopInsights pattern detail: high variability\nLoopInsights pattern detail: high variability moderate" }, @@ -13641,6 +13670,14 @@ } } }, + "Copied" : { + "comment" : "A confirmation message indicating that the full log text has been copied to the clipboard.", + "isCommentAutoGenerated" : true + }, + "Copy Full Log" : { + "comment" : "A button label that says \"Copy Full Log\".", + "isCommentAutoGenerated" : true + }, "Correction Range" : { "comment" : "The title of the glucose target range schedule screen\n The title text for the glucose target range schedule", "extractionState" : "manual", @@ -14147,7 +14184,7 @@ } }, "Current" : { - "comment" : "LoopInsights current value label" + "comment" : "LoopInsights current value label\nLoopInsights pre-fill current label" }, "Current Glucose" : { "comment" : "Label for glucose entry row on simple bolus screen", @@ -14595,9 +14632,6 @@ } } }, - "CV" : { - "comment" : "LoopInsights CV label" - }, "Date" : { "comment" : "Date picker label", "localizations" : { @@ -18540,6 +18574,9 @@ } } }, + "Excellent — your settings are well-optimized" : { + "comment" : "LoopInsights score: excellent" + }, "Export Critical Event Logs" : { "comment" : "The title of the export critical event logs in support", "localizations" : { @@ -18813,6 +18850,9 @@ } } }, + "Fair — some adjustments recommended" : { + "comment" : "LoopInsights score: fair" + }, "Favorite Foods" : { "comment" : "Title for Favorite Foods view", "localizations" : { @@ -20754,6 +20794,9 @@ "GMI (est. A1C)" : { "comment" : "LoopInsights GMI label" }, + "Good — minor improvements possible" : { + "comment" : "LoopInsights score: good" + }, "HARDWARE SOUNDS" : { "localizations" : { "da" : { @@ -23955,8 +23998,8 @@ "Load JSON fixtures from Documents/LoopInsights/ instead of real Loop data. Use pull_tidepool_data.py to generate fixtures from your Tidepool account." : { "comment" : "LoopInsights test data description" }, - "Loading test data..." : { - "comment" : "LoopInsights loading test data" + "Loading data..." : { + "comment" : "LoopInsights loading data" }, "Loading therapy settings..." : { "comment" : "LoopInsights loading settings" @@ -27031,6 +27074,9 @@ } } }, + "Needs attention — settings adjustments likely needed" : { + "comment" : "LoopInsights score: needs attention" + }, "Negative duration not allowed" : { "comment" : "Override error description: negative duration error.", "localizations" : { @@ -29157,6 +29203,9 @@ "Opens the Therapy Settings editor with the suggested value pre-filled. You confirm by tapping Save." : { "comment" : "LoopInsights apply mode description: pre-fill" }, + "or" : { + "comment" : "LoopInsights or separator" + }, "Organization ID" : { "comment" : "LoopInsights org ID label" }, @@ -29295,9 +29344,6 @@ "Pending" : { "comment" : "LoopInsights suggestion status: pending review" }, - "Pick from your Current Therapy Settings" : { - "comment" : "LoopInsights current settings header" - }, "Place fixture files in Documents/LoopInsights/ or rebuild with bundled test data." : { "comment" : "LoopInsights no fixtures hint" }, @@ -30581,11 +30627,14 @@ } }, "Proposed" : { - "comment" : "LoopInsights proposed value label" + "comment" : "LoopInsights pre-fill proposed label\nLoopInsights proposed value label" }, "Proposed Changes" : { "comment" : "LoopInsights proposed changes header" }, + "PROPOSED CHANGES" : { + "comment" : "LoopInsights pre-fill editor changes header" + }, "Pump" : { "comment" : "The title of the pump section in settings", "extractionState" : "manual", @@ -32157,6 +32206,10 @@ } } }, + "Raw AI Response" : { + "comment" : "A label displayed above the raw text of the AI's response.", + "isCommentAutoGenerated" : true + }, "Reasoning" : { "comment" : "LoopInsight's detailed reasoning" }, @@ -33314,9 +33367,30 @@ } } }, + "Revert" : { + "comment" : "LoopInsights revert button" + }, + "Revert Changes" : { + "comment" : "LoopInsights revert button" + }, + "Revert Changes?" : { + "comment" : "LoopInsights revert confirmation title" + }, + "Reverted" : { + "comment" : "LoopInsights suggestion status: changes reverted" + }, "Review" : { "comment" : "LoopInsights legend: review" }, + "Review and adjust the proposed values below before applying." : { + "comment" : "LoopInsights pre-fill editor instructions" + }, + "Review Changes" : { + "comment" : "LoopInsights pre-fill editor title" + }, + "Review recommended — significant adjustments may help" : { + "comment" : "LoopInsights score: review" + }, "Rolling lookback period for automated AI-based suggestions - how far back do you want LoopInsights to look when analyzing your glucose, insulin, and carb data?" : { "comment" : "LoopInsights analysis period description" }, @@ -33862,6 +33936,10 @@ } } }, + "Setting Type" : { + "comment" : "A label for the type of setting that was analyzed.", + "isCommentAutoGenerated" : true + }, "Settings" : { "comment" : "Label of button that navigation user to iOS Settings\nSettings screen title\nThe label of the settings button", "localizations" : { @@ -33987,6 +34065,9 @@ } } }, + "SETTINGS SCORE" : { + "comment" : "LoopInsights settings score header" + }, "Setup Incomplete" : { "comment" : "The title of the cell indicating that onboarding is suspended", "localizations" : { @@ -35289,6 +35370,9 @@ } } } + }, + "System Prompt" : { + }, "Tap here to set up a CGM" : { "comment" : "Descriptive text for button to add CGM device", @@ -35575,6 +35659,9 @@ } } }, + "Tap one of your current Therapy Settings" : { + "comment" : "LoopInsights current settings header" + }, "Tap to Add" : { "comment" : "The subtitle of the cell displaying an action to add a manually measurement glucose value", "localizations" : { @@ -36457,6 +36544,9 @@ } } }, + "The following changes were automatically applied to your therapy settings:" : { + "comment" : "LoopInsights auto-applied description" + }, "The legacy model used by Loop, allowing customization of action duration." : { "comment" : "Subtitle description of Walsh insulin model setting", "extractionState" : "manual", @@ -37228,8 +37318,11 @@ "This will permanently delete all suggestion history. This cannot be undone." : { "comment" : "LoopInsights clear history warning" }, - "Time in Range" : { - "comment" : "LoopInsights TIR label" + "This will restore your therapy settings to the values they had before this suggestion was applied." : { + "comment" : "LoopInsights revert confirmation message" + }, + "Time in Range (70-180)" : { + "comment" : "LoopInsights TIR label with range" }, "Time Sensitive Alerts" : { "localizations" : { @@ -37366,6 +37459,13 @@ } } }, + "Timestamp" : { + "comment" : "A label displayed next to the timestamp in the debug log view.", + "isCommentAutoGenerated" : true + }, + "TIR >85% with low hypoglycemia risk. The suggestions below are minor refinements — apply with caution." : { + "comment" : "LoopInsights optimal warning detail" + }, "Total Daily Dose" : { "comment" : "LoopInsights TDD label" }, @@ -39568,12 +39668,15 @@ } } }, + "User Prompt" : { + + }, + "View Last Analysis Log" : { + "comment" : "LoopInsights debug log button" + }, "View the suggested values, then navigate to Therapy Settings to make changes yourself." : { "comment" : "LoopInsights apply mode description: manual" }, - "View therapy settings, run AI analysis, and manage suggestions" : { - "comment" : "LoopInsights dashboard description" - }, "Walsh" : { "comment" : "Title of insulin model setting", "extractionState" : "manual", @@ -41695,6 +41798,9 @@ } } } + }, + "Your settings are already performing well" : { + "comment" : "LoopInsights optimal warning title" } }, "version" : "1.1" diff --git a/Loop/Managers/LoopInsights/LoopInsights_Coordinator.swift b/Loop/Managers/LoopInsights/LoopInsights_Coordinator.swift index 10b1ff4354..ecd917ebb5 100644 --- a/Loop/Managers/LoopInsights/LoopInsights_Coordinator.swift +++ b/Loop/Managers/LoopInsights/LoopInsights_Coordinator.swift @@ -8,8 +8,13 @@ import Foundation import LoopKit +import LoopCore import HealthKit +/// Closure type for writing therapy settings changes back to Loop. +/// Accepts a mutation block that modifies LoopSettings in place. +typealias LoopInsightsSettingsWriter = ((_ mutate: (inout LoopSettings) -> Void) -> Void) + /// Orchestrates all LoopInsights services and manages the feature lifecycle. /// Created when LoopInsights is accessed from Settings. Owns the DataAggregator, /// SuggestionStore, and AIAnalysis service, and provides the data access bridge @@ -29,6 +34,9 @@ final class LoopInsights_Coordinator: ObservableObject { /// Retained reference to test data provider (when using fixtures). private var testDataProvider: LoopInsights_TestDataProvider? + /// Closure to write therapy settings back to Loop via LoopDataManager.mutateSettings + var settingsWriter: LoopInsightsSettingsWriter? + // MARK: - Initialization /// Initialize with Loop's existing store references. @@ -37,7 +45,8 @@ final class LoopInsights_Coordinator: ObservableObject { glucoseStore: GlucoseStoreProtocol, doseStore: DoseStoreProtocol, carbStore: CarbStoreProtocol, - settingsProvider: LatestStoredSettingsProvider + settingsProvider: LatestStoredSettingsProvider, + settingsWriter: LoopInsightsSettingsWriter? = nil ) { let bridge = DataProviderBridge( glucoseStore: glucoseStore, @@ -46,6 +55,7 @@ final class LoopInsights_Coordinator: ObservableObject { settingsProvider: settingsProvider ) self.dataProviderBridge = bridge + self.settingsWriter = settingsWriter self.dataAggregator = LoopInsights_DataAggregator(dataProvider: bridge) self.aiAnalysis = LoopInsights_AIAnalysis() self.suggestionStore = LoopInsights_SuggestionStore.shared @@ -56,6 +66,7 @@ final class LoopInsights_Coordinator: ObservableObject { init(testDataProvider: LoopInsights_TestDataProvider) { self.testDataProvider = testDataProvider self.dataProviderBridge = nil + self.settingsWriter = nil self.dataAggregator = LoopInsights_DataAggregator(dataProvider: testDataProvider) self.aiAnalysis = LoopInsights_AIAnalysis() self.suggestionStore = LoopInsights_SuggestionStore.shared @@ -78,15 +89,154 @@ final class LoopInsights_Coordinator: ObservableObject { // MARK: - Therapy Settings Write Access - /// Reference to settings provider for write operations (one-tap apply) - private var settingsProvider: LatestStoredSettingsProvider? { - return dataProviderBridge?.settingsProvider - } - /// Capture a snapshot of the current therapy settings func captureCurrentSnapshot() throws -> LoopInsightsTherapySnapshot { return try dataAggregator.captureTherapySnapshot() } + + /// Apply a suggestion's time block changes to the actual therapy settings. + /// Returns true if the write succeeded. + @discardableResult + func applyTherapyChanges(suggestion: LoopInsightsSuggestion) -> Bool { + guard let writer = settingsWriter else { + print("[LoopInsights] Cannot apply: no settings writer available (test data mode?)") + return false + } + + let blocks = suggestion.timeBlocks + guard !blocks.isEmpty else { return false } + + writer { settings in + switch suggestion.settingType { + case .carbRatio: + guard let schedule = settings.carbRatioSchedule else { return } + let updatedItems = Self.applyBlockChanges(blocks, to: schedule.items) + if let newSchedule = CarbRatioSchedule(unit: schedule.unit, dailyItems: updatedItems, timeZone: schedule.timeZone) { + settings.carbRatioSchedule = newSchedule + } + + case .insulinSensitivity: + guard let schedule = settings.insulinSensitivitySchedule else { return } + let updatedItems = Self.applyBlockChanges(blocks, to: schedule.items) + if let newSchedule = InsulinSensitivitySchedule(unit: schedule.unit, dailyItems: updatedItems, timeZone: schedule.timeZone) { + settings.insulinSensitivitySchedule = newSchedule + } + + case .basalRate: + guard let schedule = settings.basalRateSchedule else { return } + let updatedItems = Self.applyBlockChanges(blocks, to: schedule.items) + if let newSchedule = BasalRateSchedule(dailyItems: updatedItems, timeZone: schedule.timeZone) { + settings.basalRateSchedule = newSchedule + } + } + } + + print("[LoopInsights] Applied \(suggestion.settingType.displayName) changes: \(blocks.count) time block(s)") + return true + } + + /// Revert therapy settings to a previously captured snapshot. + /// Restores all three schedule types (CR, ISF, Basal) from the snapshot. + /// Returns true if the write succeeded. + @discardableResult + func revertToSnapshot(_ snapshot: LoopInsightsTherapySnapshot) -> Bool { + guard let writer = settingsWriter else { + print("[LoopInsights] Cannot revert: no settings writer available") + return false + } + + writer { settings in + // Restore carb ratio schedule + if !snapshot.carbRatioItems.isEmpty, + let existingSchedule = settings.carbRatioSchedule { + let items = snapshot.carbRatioItems.map { + RepeatingScheduleValue(startTime: $0.startTime, value: $0.value) + } + if let restored = CarbRatioSchedule(unit: existingSchedule.unit, dailyItems: items, timeZone: existingSchedule.timeZone) { + settings.carbRatioSchedule = restored + } + } + + // Restore insulin sensitivity schedule + if !snapshot.insulinSensitivityItems.isEmpty, + let existingSchedule = settings.insulinSensitivitySchedule { + let items = snapshot.insulinSensitivityItems.map { + RepeatingScheduleValue(startTime: $0.startTime, value: $0.value) + } + if let restored = InsulinSensitivitySchedule(unit: existingSchedule.unit, dailyItems: items, timeZone: existingSchedule.timeZone) { + settings.insulinSensitivitySchedule = restored + } + } + + // Restore basal rate schedule + if !snapshot.basalRateItems.isEmpty, + let existingSchedule = settings.basalRateSchedule { + let items = snapshot.basalRateItems.map { + RepeatingScheduleValue(startTime: $0.startTime, value: $0.value) + } + if let restored = BasalRateSchedule(dailyItems: items, timeZone: existingSchedule.timeZone) { + settings.basalRateSchedule = restored + } + } + } + + print("[LoopInsights] Reverted settings to previous snapshot") + return true + } + + /// Match time blocks to schedule items and apply proposed values. + /// If no existing entry matches a block's start time, inserts new entries + /// to split the schedule at the suggested time boundaries. + private static func applyBlockChanges( + _ blocks: [LoopInsightsTimeBlock], + to items: [RepeatingScheduleValue] + ) -> [RepeatingScheduleValue] { + var updated = items + + for block in blocks { + // Try to find an existing entry matching this block's start time + let matchIndex = updated.firstIndex(where: { abs($0.startTime - block.startTime) < 60 }) + + if let idx = matchIndex { + // Exact match — update the value + updated[idx] = RepeatingScheduleValue(startTime: updated[idx].startTime, value: block.proposedValue) + } else { + // No matching entry — insert a new entry at the block's start time + // with the proposed value, and another at the block's end time to + // restore the original value for the remainder of the period. + let originalValue = valueAt(time: block.startTime, in: updated) + + updated.append(RepeatingScheduleValue(startTime: block.startTime, value: block.proposedValue)) + + // Only insert an end-time entry if it doesn't already exist + // and the block doesn't extend to end-of-day + let endAlreadyExists = updated.contains(where: { abs($0.startTime - block.endTime) < 60 }) + let endOfDay: TimeInterval = 24 * 3600 + if !endAlreadyExists && block.endTime < endOfDay { + updated.append(RepeatingScheduleValue(startTime: block.endTime, value: originalValue)) + } + } + } + + // Sort by start time to maintain schedule order + updated.sort { $0.startTime < $1.startTime } + return updated + } + + /// Find the effective value at a given time in a sorted schedule. + /// Returns the value of the last entry whose startTime <= the given time. + private static func valueAt(time: TimeInterval, in items: [RepeatingScheduleValue]) -> Double { + let sorted = items.sorted { $0.startTime < $1.startTime } + var result = sorted.first?.value ?? 0 + for item in sorted { + if item.startTime <= time { + result = item.value + } else { + break + } + } + return result + } } // MARK: - Data Provider Bridge diff --git a/Loop/Models/LoopInsights/LoopInsights_Models.swift b/Loop/Models/LoopInsights/LoopInsights_Models.swift index 7ece698423..6d70e564da 100644 --- a/Loop/Models/LoopInsights/LoopInsights_Models.swift +++ b/Loop/Models/LoopInsights/LoopInsights_Models.swift @@ -14,9 +14,9 @@ import HealthKit /// The three therapy settings LoopInsights can analyze and suggest changes for enum LoopInsightsSettingType: String, Codable, CaseIterable, Identifiable { + case basalRate = "basal_rate" case carbRatio = "carb_ratio" case insulinSensitivity = "insulin_sensitivity" - case basalRate = "basal_rate" var id: String { rawValue } @@ -376,7 +376,7 @@ struct LoopInsightsAIProviderConfiguration: Codable, Equatable { apiKeyHeader: String? = nil, apiKeyPrefix: String? = nil, maxTokens: Int = 4096, - temperature: Double = 0.3, + temperature: Double = 0.0, apiVersion: String? = nil, organizationID: String? = nil, apiKey: String = "" @@ -672,3 +672,16 @@ enum LoopInsightsError: Error, LocalizedError { } } } + +// MARK: - Debug Log + +/// Captures the full prompt/response exchange for a single AI analysis call. +/// Used in developer mode to inspect what's being sent to the AI provider. +struct LoopInsightsDebugLog: Identifiable { + let id = UUID() + let timestamp: Date + let settingType: LoopInsightsSettingType + let systemPrompt: String + let userPrompt: String + let rawResponse: String +} diff --git a/Loop/Models/LoopInsights/LoopInsights_SuggestionRecord.swift b/Loop/Models/LoopInsights/LoopInsights_SuggestionRecord.swift index c7f9f05962..7c6e2aabf7 100644 --- a/Loop/Models/LoopInsights/LoopInsights_SuggestionRecord.swift +++ b/Loop/Models/LoopInsights/LoopInsights_SuggestionRecord.swift @@ -16,6 +16,7 @@ enum LoopInsightsSuggestionStatus: String, Codable { case applied = "applied" case dismissed = "dismissed" case autoApplied = "auto_applied" + case reverted = "reverted" var displayName: String { switch self { @@ -27,6 +28,8 @@ enum LoopInsightsSuggestionStatus: String, Codable { return NSLocalizedString("Dismissed", comment: "LoopInsights suggestion status: user dismissed") case .autoApplied: return NSLocalizedString("Auto-Applied", comment: "LoopInsights suggestion status: automatically applied") + case .reverted: + return NSLocalizedString("Reverted", comment: "LoopInsights suggestion status: changes reverted") } } @@ -36,13 +39,21 @@ enum LoopInsightsSuggestionStatus: String, Codable { case .applied: return "checkmark.circle.fill" case .dismissed: return "xmark.circle" case .autoApplied: return "bolt.circle.fill" + case .reverted: return "arrow.uturn.backward.circle.fill" } } var isResolved: Bool { switch self { case .pending: return false - case .applied, .dismissed, .autoApplied: return true + case .applied, .dismissed, .autoApplied, .reverted: return true + } + } + + var isRevertable: Bool { + switch self { + case .applied, .autoApplied: return true + case .pending, .dismissed, .reverted: return false } } } @@ -84,6 +95,11 @@ struct LoopInsightsSuggestionRecord: Codable, Identifiable, Equatable { self.resolvedAt = Date() } + mutating func markReverted() { + self.status = .reverted + self.resolvedAt = Date() + } + static func == (lhs: LoopInsightsSuggestionRecord, rhs: LoopInsightsSuggestionRecord) -> Bool { return lhs.id == rhs.id } diff --git a/Loop/Resources/LoopInsights/LoopInsights_FeatureFlags.swift b/Loop/Resources/LoopInsights/LoopInsights_FeatureFlags.swift index dafbf4d27d..6c16f7961b 100644 --- a/Loop/Resources/LoopInsights/LoopInsights_FeatureFlags.swift +++ b/Loop/Resources/LoopInsights/LoopInsights_FeatureFlags.swift @@ -114,9 +114,11 @@ struct LoopInsights_FeatureFlags { static var aiConfiguration: LoopInsightsAIProviderConfiguration { get { guard let data = defaults.data(forKey: Keys.aiConfiguration), - let config = try? JSONDecoder().decode(LoopInsightsAIProviderConfiguration.self, from: data) else { + var config = try? JSONDecoder().decode(LoopInsightsAIProviderConfiguration.self, from: data) else { return LoopInsightsAIProviderConfiguration() } + // Always enforce temperature=0 for deterministic analysis + config.temperature = 0.0 return config } set { diff --git a/Loop/Services/LoopInsights/LoopInsights_AIAnalysis.swift b/Loop/Services/LoopInsights/LoopInsights_AIAnalysis.swift index 1fce8f90f8..1b431d9763 100644 --- a/Loop/Services/LoopInsights/LoopInsights_AIAnalysis.swift +++ b/Loop/Services/LoopInsights/LoopInsights_AIAnalysis.swift @@ -7,6 +7,7 @@ // import Foundation +import Combine /// Builds structured prompts from aggregated data and current therapy settings, /// sends them to the AI provider via AIServiceAdapter, and parses the structured @@ -18,6 +19,10 @@ final class LoopInsights_AIAnalysis { private let serviceAdapter: LoopInsights_AIServiceAdapter + /// Debug log of the most recent analysis (developer mode only). + /// Contains the system prompt, user prompt, and raw AI response. + @Published private(set) var lastDebugLog: LoopInsightsDebugLog? + init(serviceAdapter: LoopInsights_AIServiceAdapter = .shared) { self.serviceAdapter = serviceAdapter } @@ -28,13 +33,24 @@ final class LoopInsights_AIAnalysis { func analyze( settingType: LoopInsightsSettingType, currentSettings: LoopInsightsTherapySnapshot, - stats: LoopInsightsAggregatedStats + stats: LoopInsightsAggregatedStats, + recentChanges: [LoopInsightsSuggestionRecord] = [] ) async throws -> LoopInsightsAnalysisResponse { let systemPrompt = buildSystemPrompt() - let userPrompt = buildUserPrompt(settingType: settingType, settings: currentSettings, stats: stats) + let userPrompt = buildUserPrompt(settingType: settingType, settings: currentSettings, stats: stats, recentChanges: recentChanges) + let timestamp = Date() let rawResponse = try await serviceAdapter.sendPrompt(systemPrompt, userPrompt: userPrompt) + // Capture debug log + lastDebugLog = LoopInsightsDebugLog( + timestamp: timestamp, + settingType: settingType, + systemPrompt: systemPrompt, + userPrompt: userPrompt, + rawResponse: rawResponse + ) + return try parseResponse(rawResponse: rawResponse, settingType: settingType, period: stats.period) } @@ -43,27 +59,81 @@ final class LoopInsights_AIAnalysis { private func buildSystemPrompt() -> String { let personality = LoopInsights_FeatureFlags.aiPersonality return """ - You are LoopInsights, an AI therapy settings advisor for people using insulin pump therapy \ - with automated insulin delivery (AID) systems. Your role is to analyze glucose, insulin, and \ - carbohydrate data to suggest therapy setting adjustments that improve Time in Range (TIR). + You are LoopInsights, an expert-level automated insulin delivery (AID) therapy settings analyst. \ + You think like a top endocrinologist who specializes in insulin pump optimization. You analyze \ + glucose, insulin, and carbohydrate data to determine whether therapy settings need adjustment. \(personality.promptInstruction) - CRITICAL SAFETY RULES: - 1. Never suggest changes larger than 20% from current values in a single adjustment. - 2. Always suggest conservative changes — it's better to under-adjust than over-adjust. - 3. Focus on one setting type at a time (Carb Ratio OR Insulin Sensitivity OR Basal Rate). - 4. Consider time-of-day patterns — different hours may need different adjustments. - 5. Flag any concerning patterns (frequent lows, extreme highs) prominently. - 6. Your suggestions are advisory only — the user makes the final decision. - - TUNING ORDER (one at a time): - 1. Carb Ratio (CR) — adjust first, as incorrect CR causes the most post-meal variability - 2. Insulin Sensitivity Factor (ISF) — adjust second, affects correction doses - 3. Basal Rate (BR) — adjust last, as basal changes affect the entire 24-hour profile + YOUR MANDATE: Be analytically rigorous. Every recommendation must be backed by specific numbers \ + from the data. If the data does not justify a change, return zero suggestions — that is the \ + correct response when settings are working. You are not here to impress or people-please. \ + You are here to find real problems and propose precise fixes. + + CLINICAL REASONING FRAMEWORK — How AID settings interact: + - BASAL RATE: Controls glucose during fasting periods. Analyze overnight (12AM-6AM) and \ + between-meal trends. In AID systems, the algorithm adjusts delivery around this baseline. \ + KEY SIGNAL: If the AID algorithm is constantly delivering corrections (high correction bolus \ + count) or if fasting glucose drifts up/down consistently, basal is likely wrong. \ + A basal/bolus split far from 50/50 is a strong signal — high bolus % (>60%) with many \ + corrections usually means basal is too low and the algorithm is compensating with corrections. + - INSULIN SENSITIVITY FACTOR (ISF): Controls how much 1 unit of insulin lowers glucose. \ + Analyze correction effectiveness — are corrections bringing glucose back to target? \ + KEY SIGNAL: If glucose stays high for hours after meals/corrections (hourly averages >150 \ + during 10AM-2PM or 7PM-10PM), ISF may be too high (insulin isn't strong enough). If glucose \ + drops too fast or goes low after corrections, ISF may be too low. + - CARB RATIO (CR): Controls how much insulin is given per gram of carbs at meals. \ + Analyze post-meal glucose behavior. KEY SIGNAL: If glucose spikes >50 mg/dL after meals \ + (compare pre-meal hour to 1-2 hours post-meal in hourly averages), CR may be too high \ + (not enough insulin per carb). If glucose drops after meals, CR may be too low. + + PATTERN RECOGNITION — What to look for: + 1. TIME-OF-DAY PATTERNS: Compare hourly averages across the day. Different periods may need \ + different settings. Common periods: overnight (12AM-6AM), morning (6AM-10AM), midday \ + (10AM-2PM), afternoon (2PM-6PM), evening (6PM-10PM), late night (10PM-12AM). + 2. AID ALGORITHM WORKLOAD: High correction bolus count means the algorithm is fighting the \ + settings. Calculate corrections per day (count / days in period). >3/day is elevated, \ + >5/day is a red flag that settings need work. + 3. BASAL/BOLUS RATIO: In well-tuned AID, expect roughly 40-60% basal. <30% basal almost \ + always means basal rate is too low. >70% basal may mean basal is too high. + 4. GLUCOSE TRENDS: Look at the slope of hourly averages. A consistent rise over 3+ hours \ + during fasting = basal too low. A consistent drop = basal too high. + 5. HIGH TIR DOES NOT MEAN PERFECT SETTINGS: If TIR is 90% but the algorithm is issuing 7 \ + corrections/day to achieve that, the settings are suboptimal — the algorithm is doing \ + heavy lifting to compensate. Better settings = same TIR with fewer corrections. + + CROSS-SETTING INTERACTIONS — You are given all three settings for context: + - BR and ISF are tightly coupled: if basal is too low, the algorithm compensates with \ + frequent corrections using ISF. Changing ISF without considering BR can mask the real problem. + - CR and ISF interact at meals: CR determines the meal bolus, ISF determines corrections. \ + If post-meal highs are followed by effective corrections, the issue is CR (not enough up front), \ + not ISF. If corrections aren't bringing glucose down, the issue is ISF. + - The CR/ISF ratio should be roughly consistent across time periods. Large deviations suggest \ + one of the two needs adjustment. + - When analyzing one setting, note in your reasoning if a different setting might be the \ + actual root cause. For example: "Midday highs could be addressed by lowering CR or ISF, \ + but the high correction count suggests basal is the primary issue." + - Only propose changes to the SPECIFIC setting being analyzed. Use cross-setting context \ + to inform your reasoning and confidence level, not to change other settings. + + DECISION CRITERIA — Only suggest a change when ALL of these apply: + 1. The data shows a clear, sustained pattern (not noise or one-off events). + 2. The pattern is attributable to the specific setting type being analyzed. + 3. The proposed change would meaningfully improve outcomes based on the data. + 4. The change does not increase hypoglycemia risk. + + IMPORTANT: Good TIR (>80%) with high algorithm workload (many corrections, skewed basal/bolus \ + ratio) STILL warrants setting changes. The goal is good TIR with MINIMAL algorithm intervention. \ + Only skip recommendations when TIR is good AND corrections are low AND basal/bolus is balanced. + + SAFETY RULES: + 1. Never suggest changes larger than 20% from current values. + 2. Conservative changes only — under-adjust rather than over-adjust. + 3. If time below range is >4%, prioritize safety (raise ISF or lower basal before anything else). + 4. Suggestions are advisory only — the user and their healthcare provider make final decisions. RESPONSE FORMAT: - You MUST respond with valid JSON in this exact structure: + Respond with valid JSON in this exact structure: { "suggestions": [ { @@ -75,16 +145,19 @@ final class LoopInsights_AIAnalysis { "proposed_value": 11.0 } ], - "reasoning": "Explanation of why this change is recommended", + "reasoning": "Specific data-backed explanation citing exact numbers that justify this change", "confidence": "low|medium|high" } ], - "overall_assessment": "Brief summary of the analysis findings", + "overall_assessment": "Factual summary including: algorithm workload assessment, time-of-day pattern summary, and what the basal/bolus ratio tells us", "next_recommended_focus": "carb_ratio|insulin_sensitivity|basal_rate|null" } + If NO changes are warranted, return: { "suggestions": [], "overall_assessment": "...", "next_recommended_focus": null } + Only return empty suggestions when TIR is good AND algorithm workload is low AND no time-of-day patterns exist. + Time blocks use seconds since midnight (0 = 12:00 AM, 21600 = 6:00 AM, 43200 = 12:00 PM, etc.) - Only suggest changes for time blocks where adjustment is warranted. If a time block is fine, omit it. + Combine all time blocks for the same setting type into a single suggestion. Do NOT return separate suggestions for the same setting — use multiple time_blocks within one suggestion. """ } @@ -93,32 +166,53 @@ final class LoopInsights_AIAnalysis { private func buildUserPrompt( settingType: LoopInsightsSettingType, settings: LoopInsightsTherapySnapshot, - stats: LoopInsightsAggregatedStats + stats: LoopInsightsAggregatedStats, + recentChanges: [LoopInsightsSuggestionRecord] = [] ) -> String { - var prompt = "Analyze my \(settingType.displayName) settings and suggest adjustments.\n\n" - - // Current settings - prompt += "## Current \(settingType.displayName) Schedule\n" - let items: [LoopInsightsTherapySnapshot.LoopInsightsScheduleItem] - let unit: String - - switch settingType { - case .carbRatio: - items = settings.carbRatioItems - unit = "g/U" - case .insulinSensitivity: - items = settings.insulinSensitivityItems - unit = "mg/dL per U" - case .basalRate: - items = settings.basalRateItems - unit = "U/hr" + var prompt = "Evaluate whether my \(settingType.displayName) settings need adjustment.\n\n" + + // Include recent LoopInsights-applied changes so the AI knows data predates current settings + let relevantChanges = recentChanges.filter { + ($0.status == .applied || $0.status == .autoApplied) && + $0.suggestion.settingType == settingType + } + if !relevantChanges.isEmpty { + prompt += "## IMPORTANT: Recent Settings Changes\n" + prompt += "The following changes were JUST applied to these settings based on a previous analysis of this same data. " + prompt += "The historical data below was collected BEFORE these changes took effect. " + prompt += "Do NOT suggest further changes to values that were already adjusted — the data does not yet reflect the new settings.\n\n" + for change in relevantChanges { + let ago = Int(Date().timeIntervalSince(change.resolvedAt ?? change.createdAt) / 60) + prompt += "- Applied \(ago) minute(s) ago: " + for block in change.suggestion.timeBlocks { + prompt += "\(formatTime(block.startTime))–\(formatTime(block.endTime)): \(String(format: "%.1f", block.currentValue)) → \(String(format: "%.1f", block.proposedValue)). " + } + prompt += "\n" + } + prompt += "\n" + } + + // All three therapy settings — AI needs full context to reason about interactions + prompt += "## All Current Therapy Settings\n" + prompt += "You are analyzing **\(settingType.displayName)** specifically, but consider how all three settings interact.\n\n" + + prompt += "### Basal Rate Schedule\(settingType == .basalRate ? " ← ANALYZING THIS" : "")\n" + for item in settings.basalRateItems { + prompt += "- \(formatTime(item.startTime)): \(String(format: "%.2f", item.value)) U/hr\n" + } + + prompt += "\n### Insulin Sensitivity Factor Schedule\(settingType == .insulinSensitivity ? " ← ANALYZING THIS" : "")\n" + for item in settings.insulinSensitivityItems { + prompt += "- \(formatTime(item.startTime)): \(String(format: "%.1f", item.value)) mg/dL per U\n" } - for item in items { - let timeStr = formatTime(item.startTime) - prompt += "- \(timeStr): \(String(format: "%.1f", item.value)) \(unit)\n" + prompt += "\n### Carb Ratio Schedule\(settingType == .carbRatio ? " ← ANALYZING THIS" : "")\n" + for item in settings.carbRatioItems { + prompt += "- \(formatTime(item.startTime)): \(String(format: "%.1f", item.value)) g/U\n" } + prompt += "\n" + // Glucose stats prompt += "\n## Glucose Statistics (\(stats.period.displayName))\n" prompt += "- Average Glucose: \(String(format: "%.0f", stats.glucoseStats.averageGlucose)) mg/dL\n" @@ -144,13 +238,59 @@ final class LoopInsights_AIAnalysis { prompt += "- Basal: \(String(format: "%.0f", stats.insulinStats.basalPercentage))% / Bolus: \(String(format: "%.0f", stats.insulinStats.bolusPercentage))%\n" prompt += "- Correction Boluses: \(stats.insulinStats.correctionBolusCount) in period\n" + // Computed: corrections per day and basal/bolus assessment + let days = max(1, stats.period.rawValue) + let correctionsPerDay = Double(stats.insulinStats.correctionBolusCount) / Double(days) + prompt += "- Corrections per Day: \(String(format: "%.1f", correctionsPerDay))\n" + if correctionsPerDay > 5 { + prompt += " ** RED FLAG: >5 corrections/day means the AID algorithm is heavily compensating for suboptimal settings **\n" + } else if correctionsPerDay > 3 { + prompt += " ** ELEVATED: >3 corrections/day suggests the algorithm is working harder than ideal **\n" + } + if stats.insulinStats.basalPercentage < 30 { + prompt += " ** RED FLAG: Basal is only \(String(format: "%.0f", stats.insulinStats.basalPercentage))% of TDD — strongly suggests basal rate is too low **\n" + } else if stats.insulinStats.basalPercentage < 40 { + prompt += " ** NOTE: Basal is \(String(format: "%.0f", stats.insulinStats.basalPercentage))% of TDD — lower than the ideal 40-60% range **\n" + } + // Carb stats prompt += "\n## Carbohydrate Statistics\n" prompt += "- Average Daily Carbs: \(String(format: "%.0f", stats.carbStats.averageDailyCarbs)) g/day\n" prompt += "- Meals Logged: \(stats.carbStats.mealCount)\n" prompt += "- Average Carbs per Meal: \(String(format: "%.0f", stats.carbStats.averageCarbsPerMeal)) g\n" - prompt += "\nPlease analyze this data and suggest adjustments to my \(settingType.displayName) settings. " + // Computed: time-of-day glucose analysis + prompt += "\n## Time-of-Day Analysis (computed from hourly averages)\n" + let g = stats.glucoseStats + let periods: [(name: String, hours: ClosedRange)] = [ + ("Overnight (12AM-6AM)", 0...5), + ("Morning (6AM-10AM)", 6...9), + ("Midday (10AM-2PM)", 10...13), + ("Afternoon (2PM-6PM)", 14...17), + ("Evening (6PM-10PM)", 18...21), + ("Late Night (10PM-12AM)", 22...23) + ] + for period in periods { + let hourlyValues = period.hours.compactMap { g.hourlyAverages[$0] } + guard !hourlyValues.isEmpty else { continue } + let avg = hourlyValues.reduce(0, +) / Double(hourlyValues.count) + let min = hourlyValues.min() ?? avg + let max = hourlyValues.max() ?? avg + let trend = (hourlyValues.last ?? avg) - (hourlyValues.first ?? avg) + prompt += "- \(period.name): avg \(String(format: "%.0f", avg)) mg/dL, " + prompt += "range \(String(format: "%.0f", min))-\(String(format: "%.0f", max)), " + prompt += "trend \(trend >= 0 ? "+" : "")\(String(format: "%.0f", trend)) mg/dL\n" + if avg > 150 { + prompt += " ** ELEVATED: Average glucose in this period is above 150 mg/dL **\n" + } + if abs(trend) > 30 { + prompt += " ** SIGNIFICANT DRIFT: \(trend > 0 ? "Rising" : "Falling") \(String(format: "%.0f", abs(trend))) mg/dL across this period **\n" + } + } + + prompt += "\nAnalyze this data focusing specifically on \(settingType.displayName). " + prompt += "Use the time-of-day analysis and algorithm workload metrics to identify actionable patterns. " + prompt += "If the data clearly supports adjustments, propose them. If not, return empty suggestions. " prompt += "Respond with JSON only, no markdown formatting." return prompt @@ -214,6 +354,10 @@ final class LoopInsights_AIAnalysis { suggestions.append(suggestion) } + // Merge multiple suggestions into one (all share the same setting type + // within a single analysis call, so separate entries are just LLM inconsistency) + let merged = mergeSuggestions(suggestions, settingType: settingType, period: period) + let overallAssessment = json["overall_assessment"] as? String ?? "Analysis complete." var nextFocus: LoopInsightsSettingType? = nil @@ -222,13 +366,41 @@ final class LoopInsights_AIAnalysis { } return LoopInsightsAnalysisResponse( - suggestions: suggestions, + suggestions: merged, overallAssessment: overallAssessment, nextRecommendedFocus: nextFocus, rawResponse: rawResponse ) } + // MARK: - Merge + + /// Consolidate multiple suggestions (same setting type) into a single suggestion + /// with all time blocks combined. Takes the highest confidence and joins reasoning. + private func mergeSuggestions( + _ suggestions: [LoopInsightsSuggestion], + settingType: LoopInsightsSettingType, + period: LoopInsightsAnalysisPeriod + ) -> [LoopInsightsSuggestion] { + guard suggestions.count > 1 else { return suggestions } + + let allBlocks = suggestions.flatMap { $0.timeBlocks } + .sorted { $0.startTime < $1.startTime } + let highestConfidence = suggestions.map { $0.confidence }.max() ?? .low + let combinedReasoning = suggestions.map { $0.reasoning }.joined(separator: " ") + + let merged = LoopInsightsSuggestion( + id: UUID(), + settingType: settingType, + timeBlocks: allBlocks, + reasoning: combinedReasoning, + confidence: highestConfidence, + analysisPeriod: period, + createdAt: Date() + ) + return [merged] + } + // MARK: - Helpers private func extractJSON(from text: String) -> String { diff --git a/Loop/Services/LoopInsights/LoopInsights_SuggestionStore.swift b/Loop/Services/LoopInsights/LoopInsights_SuggestionStore.swift index 9c0781cf57..0ae0753d7c 100644 --- a/Loop/Services/LoopInsights/LoopInsights_SuggestionStore.swift +++ b/Loop/Services/LoopInsights/LoopInsights_SuggestionStore.swift @@ -80,6 +80,13 @@ final class LoopInsights_SuggestionStore: ObservableObject { saveRecords() } + /// Mark a record as reverted (settings restored to pre-apply state) + func markReverted(recordID: UUID) { + guard let index = records.firstIndex(where: { $0.id == recordID }) else { return } + records[index].markReverted() + saveRecords() + } + /// Dismiss all pending records func dismissAllPending() { for index in records.indices where records[index].status == .pending { diff --git a/Loop/View Controllers/StatusTableViewController.swift b/Loop/View Controllers/StatusTableViewController.swift index 94df013244..1c8ed6f4f0 100644 --- a/Loop/View Controllers/StatusTableViewController.swift +++ b/Loop/View Controllers/StatusTableViewController.swift @@ -1640,6 +1640,13 @@ final class StatusTableViewController: LoopChartsTableViewController { availableSupports: supportManager.availableSupports, isOnboardingComplete: onboardingManager.isComplete, therapySettingsViewModelDelegate: deviceManager, + loopInsightsDataStores: { [weak self] in + guard let dm = self?.deviceManager else { return nil } + let writer: LoopInsightsSettingsWriter = { mutate in + dm.loopManager.mutateSettings(mutate) + } + return (dm.glucoseStore, dm.doseStore, dm.carbStore, dm.settingsManager, writer) + }, delegate: self) let hostingController = DismissibleHostingController( rootView: SettingsView(viewModel: viewModel, localizedAppNameAndVersion: supportManager.localizedAppNameAndVersion) diff --git a/Loop/View Models/LoopInsights/LoopInsights_DashboardViewModel.swift b/Loop/View Models/LoopInsights/LoopInsights_DashboardViewModel.swift index b3da107c5a..1585c29bca 100644 --- a/Loop/View Models/LoopInsights/LoopInsights_DashboardViewModel.swift +++ b/Loop/View Models/LoopInsights/LoopInsights_DashboardViewModel.swift @@ -9,6 +9,7 @@ import Foundation import Combine import LoopKit +import SwiftUI /// Main view model for the LoopInsights Dashboard. Orchestrates data aggregation, /// AI analysis, and suggestion state management. @@ -20,6 +21,7 @@ final class LoopInsights_DashboardViewModel: ObservableObject { /// Current analysis state @Published var isAnalyzing = false + @Published var isAnalyzingAll = false @Published var analysisError: LoopInsightsError? @Published var lastAnalysisDate: Date? @@ -34,13 +36,14 @@ final class LoopInsights_DashboardViewModel: ObservableObject { @Published var pendingSuggestions: [LoopInsightsSuggestionRecord] = [] /// Selected setting type for analysis focus - @Published var focusSettingType: LoopInsightsSettingType = .carbRatio + @Published var focusSettingType: LoopInsightsSettingType = .basalRate /// Analysis period @Published var analysisPeriod: LoopInsightsAnalysisPeriod /// Apply mode confirmation state @Published var showingApplyConfirmation = false + @Published var showingPreFillEditor = false @Published var recordToApply: LoopInsightsSuggestionRecord? /// Aggregated stats (for display) @@ -53,6 +56,16 @@ final class LoopInsights_DashboardViewModel: ObservableObject { /// Detected glucose/insulin patterns from aggregated data @Published var detectedPatterns: [LoopInsightsDetectedPattern] = [] + /// Suggestions that were just auto-applied (for notification display) + @Published var autoAppliedSuggestions: [LoopInsightsSuggestion] = [] + + /// Settings score (0-100) based on objective metrics + @Published var settingsScore: Int? + @Published var settingsScoreBreakdown: SettingsScoreBreakdown? + + /// Whether current metrics indicate settings are already performing well + @Published var settingsAlreadyOptimal: Bool = false + // MARK: - Dependencies private let coordinator: LoopInsights_Coordinator @@ -96,6 +109,7 @@ final class LoopInsights_DashboardViewModel: ObservableObject { isAnalyzing = true analysisError = nil + autoAppliedSuggestions = [] Task { @MainActor in do { @@ -103,20 +117,22 @@ final class LoopInsights_DashboardViewModel: ObservableObject { let stats = try await coordinator.dataAggregator.aggregateData(period: analysisPeriod) self.aggregatedStats = stats - // Detect patterns from aggregated stats - self.detectedPatterns = Self.detectPatterns(from: stats) - // Capture current settings let snapshot = try coordinator.captureCurrentSnapshot() self.currentSnapshot = snapshot - // Run AI analysis + // Run AI analysis (include recent changes so AI knows data predates current settings) + let recentChanges = self.recentlyAppliedRecords() let response = try await coordinator.aiAnalysis.analyze( settingType: focusSettingType, currentSettings: snapshot, - stats: stats + stats: stats, + recentChanges: recentChanges ) + // Show patterns, score, and AI results together after analysis completes + self.detectedPatterns = Self.detectPatterns(from: stats) + self.updateSettingsScore() self.analysisResponse = response self.overallAssessment = response.overallAssessment self.lastAnalysisDate = Date() @@ -132,10 +148,8 @@ final class LoopInsights_DashboardViewModel: ObservableObject { // Add new suggestions as pending records let _ = coordinator.suggestionStore.addSuggestions(response.suggestions) - // If next focus is recommended, update - if let nextFocus = response.nextRecommendedFocus { - self.focusSettingType = nextFocus - } + // Note: nextRecommendedFocus from AI is intentionally ignored + // for single-analysis — keep focus on what the user selected. // Auto-apply if developer mode + auto-apply enabled if LoopInsights_FeatureFlags.developerModeEnabled && @@ -157,6 +171,73 @@ final class LoopInsights_DashboardViewModel: ObservableObject { } } + /// Run AI analysis for all three setting types sequentially + func runAnalysisAll() { + guard !isAnalyzing else { return } + + isAnalyzing = true + isAnalyzingAll = true + analysisError = nil + autoAppliedSuggestions = [] + + Task { @MainActor in + do { + // Aggregate data once for all analyses + let stats = try await coordinator.dataAggregator.aggregateData(period: analysisPeriod) + self.aggregatedStats = stats + + let snapshot = try coordinator.captureCurrentSnapshot() + self.currentSnapshot = snapshot + + // Analyze each setting type in tuning order: CR → ISF → BR + let recentChanges = self.recentlyAppliedRecords() + for settingType in LoopInsightsSettingType.allCases { + let response = try await coordinator.aiAnalysis.analyze( + settingType: settingType, + currentSettings: snapshot, + stats: stats, + recentChanges: recentChanges + ) + + self.overallAssessment = response.overallAssessment + self.analyzedSettingTypes.insert(settingType) + + // Dismiss existing pending suggestions for this type + for record in pendingSuggestions where record.suggestion.settingType == settingType { + coordinator.suggestionStore.markDismissed(recordID: record.id) + } + + let _ = coordinator.suggestionStore.addSuggestions(response.suggestions) + + // Auto-apply if developer mode + auto-apply enabled + if LoopInsights_FeatureFlags.developerModeEnabled && + LoopInsights_FeatureFlags.applyMode == .autoApply { + for suggestion in response.suggestions where suggestion.confidence >= .high { + await autoApplySuggestion(suggestion) + } + } + } + + // Show patterns and score after all analyses complete + self.detectedPatterns = Self.detectPatterns(from: stats) + self.updateSettingsScore() + + self.lastAnalysisDate = Date() + self.isAnalyzing = false + self.isAnalyzingAll = false + + } catch let error as LoopInsightsError { + self.analysisError = error + self.isAnalyzing = false + self.isAnalyzingAll = false + } catch { + self.analysisError = .aiProviderError(error.localizedDescription) + self.isAnalyzing = false + self.isAnalyzingAll = false + } + } + } + /// Apply a suggestion based on the current apply mode func applySuggestion(_ record: LoopInsightsSuggestionRecord) { let mode = LoopInsights_FeatureFlags.applyMode @@ -178,10 +259,9 @@ final class LoopInsights_DashboardViewModel: ObservableObject { showingApplyConfirmation = true case .preFill: - // Navigate to editor with pre-filled values - // For Phase 1, fall back to one-tap behavior with confirmation + // Open editor pre-filled with proposed values for user review recordToApply = record - showingApplyConfirmation = true + showingPreFillEditor = true case .autoApply: // This path is only available in developer mode @@ -197,13 +277,16 @@ final class LoopInsights_DashboardViewModel: ObservableObject { let snapshotBefore = try? coordinator.captureCurrentSnapshot() - // TODO: Phase 1 — implement actual settings write via SettingsManager - // For now, mark as applied and log + // Write the therapy settings changes to Loop + coordinator.applyTherapyChanges(suggestion: record.suggestion) + + let snapshotAfter = try? coordinator.captureCurrentSnapshot() + coordinator.suggestionStore.markApplied( recordID: record.id, mode: LoopInsights_FeatureFlags.applyMode, snapshotBefore: snapshotBefore, - snapshotAfter: nil + snapshotAfter: snapshotAfter ) recordToApply = nil @@ -215,6 +298,40 @@ final class LoopInsights_DashboardViewModel: ObservableObject { func cancelApply() { recordToApply = nil showingApplyConfirmation = false + showingPreFillEditor = false + } + + /// Apply with user-edited values from the pre-fill editor + func applyEditedSuggestion(editedBlocks: [LoopInsightsTimeBlock]) { + guard let record = recordToApply else { return } + + let snapshotBefore = try? coordinator.captureCurrentSnapshot() + + // Build a modified suggestion with the user's edited values + let editedSuggestion = LoopInsightsSuggestion( + id: record.suggestion.id, + settingType: record.suggestion.settingType, + timeBlocks: editedBlocks, + reasoning: record.suggestion.reasoning, + confidence: record.suggestion.confidence, + analysisPeriod: record.suggestion.analysisPeriod, + createdAt: record.suggestion.createdAt + ) + + coordinator.applyTherapyChanges(suggestion: editedSuggestion) + + let snapshotAfter = try? coordinator.captureCurrentSnapshot() + + coordinator.suggestionStore.markApplied( + recordID: record.id, + mode: .preFill, + snapshotBefore: snapshotBefore, + snapshotAfter: snapshotAfter + ) + + recordToApply = nil + showingPreFillEditor = false + loadCurrentSettings() } /// Dismiss a suggestion @@ -227,6 +344,24 @@ final class LoopInsights_DashboardViewModel: ObservableObject { coordinator.suggestionStore.dismissAllPending() } + /// Revert a previously applied suggestion by restoring the pre-apply snapshot. + /// Returns true if the revert succeeded. + @discardableResult + func revertSuggestion(_ record: LoopInsightsSuggestionRecord) -> Bool { + guard record.status.isRevertable else { return false } + guard let snapshotBefore = record.settingsSnapshotBefore else { + print("[LoopInsights] Cannot revert: no pre-apply snapshot stored") + return false + } + + let success = coordinator.revertToSnapshot(snapshotBefore) + if success { + coordinator.suggestionStore.markReverted(recordID: record.id) + loadCurrentSettings() + } + return success + } + /// Returns the analysis status for a setting type (used for color indicators) func settingStatus(_ type: LoopInsightsSettingType) -> LoopInsightsSettingStatus { let hasPending = pendingSuggestions.contains { $0.suggestion.settingType == type } @@ -244,23 +379,82 @@ final class LoopInsights_DashboardViewModel: ObservableObject { LoopInsights_FeatureFlags.analysisPeriod = period } + /// The most recent AI debug log (system prompt, user prompt, raw response). + /// Available in developer mode for troubleshooting. + var lastDebugLog: LoopInsightsDebugLog? { + coordinator.aiAnalysis.lastDebugLog + } + + /// Get records that were applied/auto-applied within the last 24 hours + /// AND whose changes are still reflected in the current settings. + /// If the user manually reverted settings, those records are excluded. + private func recentlyAppliedRecords() -> [LoopInsightsSuggestionRecord] { + let cutoff = Date().addingTimeInterval(-24 * 3600) + guard let currentSnapshot = currentSnapshot else { return [] } + + return coordinator.suggestionStore.allRecords.filter { record in + guard (record.status == .applied || record.status == .autoApplied), + (record.resolvedAt ?? record.createdAt) > cutoff else { + return false + } + + // Verify the proposed changes are still in effect by comparing + // against current settings. If the user manually reverted, the + // current values won't match the proposed values. + let currentItems: [LoopInsightsTherapySnapshot.LoopInsightsScheduleItem] + switch record.suggestion.settingType { + case .carbRatio: currentItems = currentSnapshot.carbRatioItems + case .insulinSensitivity: currentItems = currentSnapshot.insulinSensitivityItems + case .basalRate: currentItems = currentSnapshot.basalRateItems + } + + // Check if at least one proposed value still matches current settings + for block in record.suggestion.timeBlocks { + let currentValue = Self.effectiveValue(at: block.startTime, in: currentItems) + if abs(currentValue - block.proposedValue) < 0.01 { + return true // This change is still active + } + } + return false // None of the proposed values match — change was reverted + } + } + + /// Find the effective value at a given time in a schedule snapshot. + private static func effectiveValue( + at time: TimeInterval, + in items: [LoopInsightsTherapySnapshot.LoopInsightsScheduleItem] + ) -> Double { + let sorted = items.sorted { $0.startTime < $1.startTime } + var result = sorted.first?.value ?? 0 + for item in sorted { + if item.startTime <= time { + result = item.value + } else { + break + } + } + return result + } + // MARK: - Private private func autoApplySuggestion(_ suggestion: LoopInsightsSuggestion) async { let snapshotBefore = try? coordinator.captureCurrentSnapshot() - // TODO: Implement actual settings write - // For now, just log the auto-apply intent - print("[LoopInsights] Auto-applying suggestion: \(suggestion.summaryDescription)") + coordinator.applyTherapyChanges(suggestion: suggestion) + + let snapshotAfter = try? coordinator.captureCurrentSnapshot() if let record = coordinator.suggestionStore.pendingRecords.first(where: { $0.suggestion.id == suggestion.id }) { coordinator.suggestionStore.markApplied( recordID: record.id, mode: .autoApply, snapshotBefore: snapshotBefore, - snapshotAfter: nil + snapshotAfter: snapshotAfter ) } + + autoAppliedSuggestions.append(suggestion) } // MARK: - Pattern Detection @@ -404,4 +598,95 @@ final class LoopInsights_DashboardViewModel: ObservableObject { // Sort: high severity first return patterns.sorted { $0.severity > $1.severity } } + + // MARK: - Settings Score + + struct SettingsScoreBreakdown { + let tirScore: Int // 0-40 points + let belowRangeScore: Int // 0-25 points + let cvScore: Int // 0-20 points + let gmiScore: Int // 0-15 points + let total: Int // 0-100 + + var grade: String { + switch total { + case 90...100: return "A" + case 80..<90: return "B" + case 70..<80: return "C" + case 60..<70: return "D" + default: return "F" + } + } + + var gradeColor: Color { + switch total { + case 90...100: return .green + case 80..<90: return .blue + case 70..<80: return .yellow + case 60..<70: return .orange + default: return .red + } + } + + var summary: String { + switch total { + case 90...100: return NSLocalizedString("Excellent — your settings are well-optimized", comment: "LoopInsights score: excellent") + case 80..<90: return NSLocalizedString("Good — minor improvements possible", comment: "LoopInsights score: good") + case 70..<80: return NSLocalizedString("Fair — some adjustments recommended", comment: "LoopInsights score: fair") + case 60..<70: return NSLocalizedString("Needs attention — settings adjustments likely needed", comment: "LoopInsights score: needs attention") + default: return NSLocalizedString("Review recommended — significant adjustments may help", comment: "LoopInsights score: review") + } + } + } + + /// Calculate an objective settings score from glucose metrics. + /// Based on international consensus targets (ADA/AACE). + static func calculateSettingsScore(from stats: LoopInsightsAggregatedStats.GlucoseStats) -> SettingsScoreBreakdown { + // TIR score: 40 points max. Target >70% (ADA consensus) + // 90%+ = 40, 80% = 32, 70% = 24, <50% = 0 + let tirScore: Int + if stats.timeInRange >= 90 { tirScore = 40 } + else if stats.timeInRange >= 70 { tirScore = Int(((stats.timeInRange - 50) / 40) * 40) } + else if stats.timeInRange >= 50 { tirScore = Int(((stats.timeInRange - 50) / 20) * 16) } + else { tirScore = 0 } + + // Below range score: 25 points max. Target <4% (ADA consensus) + // <1% = 25, <4% = 20, <8% = 10, >8% = 0 + let belowRangeScore: Int + if stats.timeBelowRange < 1 { belowRangeScore = 25 } + else if stats.timeBelowRange < 4 { belowRangeScore = 20 } + else if stats.timeBelowRange < 8 { belowRangeScore = Int(25 - (stats.timeBelowRange * 2.5)) } + else { belowRangeScore = 0 } + + // CV score: 20 points max. Target <36% (ADA consensus) + // <30% = 20, <36% = 15, <45% = 8, >45% = 0 + let cvScore: Int + if stats.coefficientOfVariation < 30 { cvScore = 20 } + else if stats.coefficientOfVariation < 36 { cvScore = 15 } + else if stats.coefficientOfVariation < 45 { cvScore = 8 } + else { cvScore = 0 } + + // GMI score: 15 points max. Target <7.0% (ADA) + // <6.5% = 15, <7.0% = 12, <7.5% = 8, <8.0% = 4, >8% = 0 + let gmiScore: Int + if stats.gmi < 6.5 { gmiScore = 15 } + else if stats.gmi < 7.0 { gmiScore = 12 } + else if stats.gmi < 7.5 { gmiScore = 8 } + else if stats.gmi < 8.0 { gmiScore = 4 } + else { gmiScore = 0 } + + let total = max(0, min(100, tirScore + belowRangeScore + cvScore + gmiScore)) + return SettingsScoreBreakdown(tirScore: tirScore, belowRangeScore: belowRangeScore, cvScore: cvScore, gmiScore: gmiScore, total: total) + } + + /// Update the settings score from current aggregated stats. + func updateSettingsScore() { + guard let stats = aggregatedStats else { return } + let breakdown = Self.calculateSettingsScore(from: stats.glucoseStats) + settingsScore = breakdown.total + settingsScoreBreakdown = breakdown + + // Flag if settings are already performing well + settingsAlreadyOptimal = stats.glucoseStats.timeInRange > 85 && stats.glucoseStats.timeBelowRange < 4 + } } diff --git a/Loop/View Models/SettingsViewModel.swift b/Loop/View Models/SettingsViewModel.swift index d4b48766b3..f853ebcdb8 100644 --- a/Loop/View Models/SettingsViewModel.swift +++ b/Loop/View Models/SettingsViewModel.swift @@ -79,6 +79,7 @@ public class SettingsViewModel: ObservableObject { let sensitivityOverridesEnabled: Bool let isOnboardingComplete: Bool let therapySettingsViewModelDelegate: TherapySettingsViewModelDelegate? + let loopInsightsDataStores: () -> Any? @Published var isClosedLoopAllowed: Bool @@ -120,6 +121,7 @@ public class SettingsViewModel: ObservableObject { availableSupports: [SupportUI], isOnboardingComplete: Bool, therapySettingsViewModelDelegate: TherapySettingsViewModelDelegate?, + loopInsightsDataStores: @escaping () -> Any? = { nil }, delegate: SettingsViewModelDelegate? ) { self.alertPermissionsChecker = alertPermissionsChecker @@ -137,6 +139,7 @@ public class SettingsViewModel: ObservableObject { self.availableSupports = availableSupports self.isOnboardingComplete = isOnboardingComplete self.therapySettingsViewModelDelegate = therapySettingsViewModelDelegate + self.loopInsightsDataStores = loopInsightsDataStores self.delegate = delegate // This strangeness ensures the composed ViewModels' (ObservableObjects') changes get reported to this ViewModel (ObservableObject) diff --git a/Loop/Views/LoopInsights/LoopInsights_DashboardView.swift b/Loop/Views/LoopInsights/LoopInsights_DashboardView.swift index 00724f7123..d906865e80 100644 --- a/Loop/Views/LoopInsights/LoopInsights_DashboardView.swift +++ b/Loop/Views/LoopInsights/LoopInsights_DashboardView.swift @@ -25,6 +25,7 @@ struct LoopInsights_DashboardView: View { var renderTrigger: Int = 0 @State private var showingHistory = false + @State private var showingDebugLog = false @State private var selectedRecord: LoopInsightsSuggestionRecord? @State private var developerTapCount = 0 @@ -43,6 +44,13 @@ struct LoopInsights_DashboardView: View { ) } + private var showingPreFillEditorBinding: Binding { + Binding( + get: { viewModel.showingPreFillEditor }, + set: { viewModel.showingPreFillEditor = $0 } + ) + } + var body: some View { List { headerSection @@ -54,6 +62,15 @@ struct LoopInsights_DashboardView: View { if viewModel.overallAssessment != nil { assessmentSection } + if viewModel.settingsScoreBreakdown != nil { + settingsScoreSection + } + if viewModel.settingsAlreadyOptimal && !viewModel.pendingSuggestions.isEmpty { + optimalWarningBanner + } + if !viewModel.autoAppliedSuggestions.isEmpty { + autoAppliedSection + } if !viewModel.pendingSuggestions.isEmpty { pendingSuggestionsSection } @@ -71,7 +88,17 @@ struct LoopInsights_DashboardView: View { } .sheet(isPresented: $showingHistory) { NavigationView { - LoopInsights_SuggestionHistoryView(store: viewModel.suggestionStore) + LoopInsights_SuggestionHistoryView( + store: viewModel.suggestionStore, + onRevert: { record in viewModel.revertSuggestion(record) } + ) + } + } + .sheet(isPresented: $showingDebugLog) { + if let log = viewModel.lastDebugLog { + NavigationView { + LoopInsights_DebugLogView(log: log) + } } } .alert( @@ -90,6 +117,21 @@ struct LoopInsights_DashboardView: View { comment: "LoopInsights apply disclaimer" )) } + .sheet(isPresented: showingPreFillEditorBinding) { + if let record = viewModel.recordToApply { + NavigationView { + LoopInsights_PreFillEditorView( + record: record, + onApply: { editedBlocks in + viewModel.applyEditedSuggestion(editedBlocks: editedBlocks) + }, + onCancel: { + viewModel.cancelApply() + } + ) + } + } + } } // MARK: - Header @@ -126,8 +168,13 @@ struct LoopInsights_DashboardView: View { // MARK: - Current Settings private var currentSettingsSection: some View { - Section(header: Text(NSLocalizedString("Pick from your Current Therapy Settings", comment: "LoopInsights current settings header"))) { + Section(header: Text(NSLocalizedString("Tap one of your current Therapy Settings", comment: "LoopInsights current settings header"))) { if let snapshot = viewModel.currentSnapshot { + settingRow( + type: .basalRate, + items: snapshot.basalRateItems, + unit: "U/hr" + ) settingRow( type: .carbRatio, items: snapshot.carbRatioItems, @@ -138,11 +185,6 @@ struct LoopInsights_DashboardView: View { items: snapshot.insulinSensitivityItems, unit: "mg/dL/U" ) - settingRow( - type: .basalRate, - items: snapshot.basalRateItems, - unit: "U/hr" - ) HStack(spacing: 16) { legendDot(color: .gray, label: NSLocalizedString("Not analyzed", comment: "LoopInsights legend: not analyzed")) legendDot(color: .green, label: NSLocalizedString("No changes", comment: "LoopInsights legend: OK")) @@ -205,34 +247,70 @@ struct LoopInsights_DashboardView: View { } } - // Analyze button - Button(action: { viewModel.runAnalysis() }) { - HStack { - Spacer() - if viewModel.isAnalyzing { - ProgressView() - .progressViewStyle(CircularProgressViewStyle()) - .tint(.white) - .padding(.trailing, 8) - Text(NSLocalizedString("Analyzing...", comment: "LoopInsights analyzing")) - } else { - Image(systemName: "sparkles") - Text(String(format: NSLocalizedString("Analyze %@", comment: "LoopInsights analyze button"), viewModel.focusSettingType.abbreviation)) + // Analyze buttons + HStack(spacing: 10) { + Button(action: { viewModel.runAnalysis() }) { + HStack { + Spacer() + if viewModel.isAnalyzing && !viewModel.isAnalyzingAll { + ProgressView() + .progressViewStyle(CircularProgressViewStyle()) + .tint(.white) + .scaleEffect(0.8) + Text(NSLocalizedString("Analyzing...", comment: "LoopInsights analyzing")) + } else { + Image(systemName: "sparkles") + Text(String(format: NSLocalizedString("Analyze %@", comment: "LoopInsights analyze button"), viewModel.focusSettingType.abbreviation)) + } + Spacer() } - Spacer() + .font(.subheadline.weight(.medium)) + .foregroundColor(.white) + .padding(.vertical, 10) + .background( + (viewModel.isAnalyzing || !LoopInsights_SecureStorage.hasAPIKey) + ? Color(red: 0.2, green: 0.6, blue: 0.2) + : Color.green + ) + .cornerRadius(10) } - .font(.body.weight(.medium)) - .foregroundColor(.white) - .padding(.vertical, 10) - .background( - (viewModel.isAnalyzing || !LoopInsights_SecureStorage.hasAPIKey) - ? Color(red: 0.2, green: 0.6, blue: 0.2) - : Color.green - ) - .cornerRadius(10) + .buttonStyle(.plain) + .disabled(viewModel.isAnalyzing || !LoopInsights_SecureStorage.hasAPIKey) + + Text(NSLocalizedString("or", comment: "LoopInsights or separator")) + .font(.caption) + .foregroundColor(.secondary) + + Button(action: { viewModel.runAnalysisAll() }) { + HStack { + Spacer() + if viewModel.isAnalyzingAll { + ProgressView() + .progressViewStyle(CircularProgressViewStyle()) + .tint(.white) + .scaleEffect(0.8) + Text(NSLocalizedString("Analyzing...", comment: "LoopInsights analyzing all")) + } else { + Image(systemName: "sparkles") + Text(NSLocalizedString("Analyze All", comment: "LoopInsights analyze all button")) + } + Spacer() + } + .font(.subheadline.weight(.medium)) + .foregroundColor(.white) + .padding(.vertical, 10) + .background( + (viewModel.isAnalyzing || !LoopInsights_SecureStorage.hasAPIKey) + ? Color(red: 0.2, green: 0.6, blue: 0.2) + : Color.green + ) + .cornerRadius(10) + } + .buttonStyle(.plain) + .disabled(viewModel.isAnalyzing || !LoopInsights_SecureStorage.hasAPIKey) } - .buttonStyle(.plain) - .disabled(viewModel.isAnalyzing || !LoopInsights_SecureStorage.hasAPIKey) + .listRowSeparator(.hidden, edges: .top) + .padding(.bottom, 8) if !LoopInsights_SecureStorage.hasAPIKey { Text(NSLocalizedString("Configure your AI API key in LoopInsights Settings to begin analysis.", comment: "LoopInsights no API key message")) @@ -248,6 +326,44 @@ struct LoopInsights_DashboardView: View { } } + // MARK: - Auto-Applied Notification + + private var autoAppliedSection: some View { + Section(header: Text(NSLocalizedString("AUTO-APPLIED CHANGES", comment: "LoopInsights auto-applied section header"))) { + VStack(alignment: .leading, spacing: 8) { + HStack(spacing: 6) { + Image(systemName: "checkmark.seal.fill") + .foregroundColor(.green) + Text(NSLocalizedString("The following changes were automatically applied to your therapy settings:", comment: "LoopInsights auto-applied description")) + .font(.caption) + .foregroundColor(.secondary) + } + + ForEach(viewModel.autoAppliedSuggestions) { suggestion in + VStack(alignment: .leading, spacing: 4) { + Text(suggestion.settingType.displayName) + .font(.subheadline.weight(.semibold)) + ForEach(suggestion.timeBlocks) { block in + HStack { + Text(block.timeRangeFormatted) + .font(.caption) + .foregroundColor(.secondary) + Spacer() + Text(String(format: "%.1f → %.1f", block.currentValue, block.proposedValue)) + .font(.caption.weight(.medium)) + .foregroundColor(.green) + Text(String(format: "(%+.0f%%)", block.changePercent)) + .font(.caption2) + .foregroundColor(.secondary) + } + } + } + .padding(.vertical, 2) + } + } + } + } + // MARK: - Pending Suggestions private var pendingSuggestionsSection: some View { @@ -261,15 +377,19 @@ struct LoopInsights_DashboardView: View { }) { ForEach(viewModel.pendingSuggestions) { record in suggestionCard(record) + .listRowInsets(EdgeInsets(top: 0, leading: 0, bottom: 0, trailing: 0)) + .padding(.horizontal, 16) + .padding(.vertical, 4) } HStack(spacing: 16) { Text(NSLocalizedString("Confidence Level:", comment: "LoopInsights confidence legend label")) - legendDot(color: .blue, label: NSLocalizedString("High", comment: "LoopInsights legend: high")) + legendDot(color: .green, label: NSLocalizedString("High", comment: "LoopInsights legend: high")) legendDot(color: .orange, label: NSLocalizedString("Medium", comment: "LoopInsights legend: medium")) legendDot(color: .yellow, label: NSLocalizedString("Low", comment: "LoopInsights legend: low")) } .font(.caption2) .foregroundColor(.secondary) + .listRowSeparator(.hidden, edges: .top) } } @@ -307,18 +427,26 @@ struct LoopInsights_DashboardView: View { // Quick action buttons HStack { Button(action: { viewModel.applySuggestion(record) }) { - Label(NSLocalizedString("Apply", comment: "LoopInsights apply"), systemImage: "checkmark.circle") - .font(.caption) + Text(NSLocalizedString("Apply", comment: "LoopInsights apply")) + .font(.caption.weight(.medium)) + .foregroundColor(.white) + .padding(.horizontal, 12) + .padding(.vertical, 6) + .background(Color.green) + .cornerRadius(8) } - .buttonStyle(.borderedProminent) - .controlSize(.small) + .buttonStyle(.plain) Button(action: { viewModel.dismissSuggestion(record) }) { - Label(NSLocalizedString("Dismiss", comment: "LoopInsights dismiss"), systemImage: "xmark.circle") - .font(.caption) + Text(NSLocalizedString("Dismiss", comment: "LoopInsights dismiss")) + .font(.caption.weight(.medium)) + .foregroundColor(.white) + .padding(.horizontal, 12) + .padding(.vertical, 6) + .background(Color.red) + .cornerRadius(8) } - .buttonStyle(.bordered) - .controlSize(.small) + .buttonStyle(.plain) Spacer() @@ -336,21 +464,25 @@ struct LoopInsights_DashboardView: View { } private func confidenceBadge(_ confidence: LoopInsightsConfidence) -> some View { - Text(confidence.displayName) - .font(.caption2) - .fontWeight(.medium) - .padding(.horizontal, 6) - .padding(.vertical, 2) - .background(confidenceColor(confidence).opacity(0.2)) - .foregroundColor(confidenceColor(confidence)) - .cornerRadius(4) + HStack(spacing: 4) { + Circle() + .fill(confidenceColor(confidence)) + .frame(width: 8, height: 8) + Text(confidence.displayName) + .font(.caption.weight(.bold)) + } + .padding(.horizontal, 8) + .padding(.vertical, 4) + .background(confidenceColor(confidence).opacity(0.15)) + .foregroundColor(confidenceColor(confidence)) + .cornerRadius(6) } private func confidenceColor(_ confidence: LoopInsightsConfidence) -> Color { switch confidence { case .low: return .yellow case .medium: return .orange - case .high: return .blue + case .high: return .green } } @@ -410,7 +542,7 @@ struct LoopInsights_DashboardView: View { } if let stats = viewModel.aggregatedStats { - statsRow(label: NSLocalizedString("Time in Range", comment: "LoopInsights TIR label"), + statsRow(label: NSLocalizedString("Time in Range (70-180)", comment: "LoopInsights TIR label with range"), value: String(format: "%.1f%%", stats.glucoseStats.timeInRange)) statsRow(label: NSLocalizedString("Average Glucose", comment: "LoopInsights avg glucose label"), value: String(format: "%.0f mg/dL", stats.glucoseStats.averageGlucose)) @@ -418,7 +550,7 @@ struct LoopInsights_DashboardView: View { value: String(format: "%.1f%%", stats.glucoseStats.gmi)) statsRow(label: NSLocalizedString("Total Daily Dose", comment: "LoopInsights TDD label"), value: String(format: "%.1f U/day", stats.insulinStats.totalDailyDose)) - statsRow(label: NSLocalizedString("CV", comment: "LoopInsights CV label"), + statsRow(label: NSLocalizedString("Coefficient of Variation", comment: "LoopInsights coefficient of variation label"), value: String(format: "%.1f%%", stats.glucoseStats.coefficientOfVariation)) } } @@ -436,6 +568,99 @@ struct LoopInsights_DashboardView: View { } } + // MARK: - Settings Score + + private var settingsScoreSection: some View { + Section(header: Text(NSLocalizedString("SETTINGS SCORE", comment: "LoopInsights settings score header"))) { + if let breakdown = viewModel.settingsScoreBreakdown { + HStack(alignment: .center) { + // Grade circle + ZStack { + Circle() + .stroke(breakdown.gradeColor.opacity(0.3), lineWidth: 6) + .frame(width: 60, height: 60) + Circle() + .trim(from: 0, to: Double(breakdown.total) / 100) + .stroke(breakdown.gradeColor, style: StrokeStyle(lineWidth: 6, lineCap: .round)) + .frame(width: 60, height: 60) + .rotationEffect(.degrees(-90)) + VStack(spacing: 0) { + Text(breakdown.grade) + .font(.title2.weight(.bold)) + .foregroundColor(breakdown.gradeColor) + Text("\(breakdown.total)") + .font(.caption2) + .foregroundColor(.secondary) + } + } + .padding(.trailing, 12) + + VStack(alignment: .leading, spacing: 4) { + Text(breakdown.summary) + .font(.subheadline.weight(.medium)) + VStack(alignment: .leading, spacing: 2) { + scoreBar(label: "TIR", score: breakdown.tirScore, max: 40, color: breakdown.tirScore >= 32 ? .green : .orange) + scoreBar(label: "Safety", score: breakdown.belowRangeScore, max: 25, color: breakdown.belowRangeScore >= 20 ? .green : .red) + scoreBar(label: "Stability", score: breakdown.cvScore, max: 20, color: breakdown.cvScore >= 15 ? .green : .orange) + scoreBar(label: "GMI", score: breakdown.gmiScore, max: 15, color: breakdown.gmiScore >= 12 ? .green : .orange) + } + } + } + .padding(.vertical, 4) + } + } + } + + private func scoreBar(label: String, score: Int, max: Int, color: Color) -> some View { + HStack { + Text(label) + .font(.caption2) + .foregroundColor(.secondary) + .lineLimit(1) + .fixedSize() + .frame(width: 52, alignment: .leading) + .padding(.trailing, 6) + GeometryReader { geo in + ZStack(alignment: .leading) { + RoundedRectangle(cornerRadius: 2) + .fill(Color.secondary.opacity(0.2)) + .frame(height: 4) + RoundedRectangle(cornerRadius: 2) + .fill(color) + .frame(width: geo.size.width * CGFloat(score) / CGFloat(max), height: 4) + } + } + .frame(height: 4) + Text("\(score)/\(max)") + .font(.caption2) + .foregroundColor(.secondary) + .lineLimit(1) + .fixedSize() + .frame(width: 36, alignment: .trailing) + .padding(.leading, 6) + } + } + + // MARK: - Optimal Warning + + private var optimalWarningBanner: some View { + Section { + HStack(spacing: 8) { + Image(systemName: "checkmark.shield.fill") + .foregroundColor(.green) + .font(.title3) + VStack(alignment: .leading, spacing: 2) { + Text(NSLocalizedString("Your settings are already performing well", comment: "LoopInsights optimal warning title")) + .font(.subheadline.weight(.medium)) + Text(NSLocalizedString("TIR >85% with low hypoglycemia risk. The suggestions below are minor refinements — apply with caution.", comment: "LoopInsights optimal warning detail")) + .font(.caption) + .foregroundColor(.secondary) + } + } + .padding(.vertical, 4) + } + } + // MARK: - Navigation private var navigationSection: some View { @@ -450,6 +675,21 @@ struct LoopInsights_DashboardView: View { .foregroundColor(.secondary) } } + + // Debug log (developer mode only) + if LoopInsights_FeatureFlags.developerModeEnabled, viewModel.lastDebugLog != nil { + Button(action: { showingDebugLog = true }) { + HStack { + Image(systemName: "doc.text.magnifyingglass") + Text(NSLocalizedString("View Last Analysis Log", comment: "LoopInsights debug log button")) + Spacer() + Image(systemName: "chevron.right") + .font(.caption) + .foregroundColor(.secondary) + } + .foregroundColor(.orange) + } + } } } @@ -476,3 +716,240 @@ struct LoopInsights_DashboardView: View { }() } +// MARK: - Pre-Fill Editor View + +/// Editor that shows proposed therapy changes with editable values. +/// The user can adjust proposed values before applying. +struct LoopInsights_PreFillEditorView: View { + let record: LoopInsightsSuggestionRecord + let onApply: ([LoopInsightsTimeBlock]) -> Void + let onCancel: () -> Void + + @State private var editedValues: [UUID: Double] = [:] + @Environment(\.dismiss) private var dismiss + + var body: some View { + List { + Section(header: Text(record.suggestion.settingType.displayName)) { + Text(NSLocalizedString("Review and adjust the proposed values below before applying.", comment: "LoopInsights pre-fill editor instructions")) + .font(.caption) + .foregroundColor(.secondary) + } + + Section(header: Text(NSLocalizedString("PROPOSED CHANGES", comment: "LoopInsights pre-fill editor changes header"))) { + ForEach(record.suggestion.timeBlocks) { block in + VStack(alignment: .leading, spacing: 6) { + Text(block.timeRangeFormatted) + .font(.subheadline) + .foregroundColor(.secondary) + + HStack { + VStack(alignment: .leading, spacing: 2) { + Text(NSLocalizedString("Current", comment: "LoopInsights pre-fill current label")) + .font(.caption2) + .foregroundColor(.secondary) + Text(String(format: "%.1f", block.currentValue)) + .font(.body.weight(.medium)) + } + + Image(systemName: "arrow.right") + .foregroundColor(.secondary) + .padding(.horizontal, 8) + + VStack(alignment: .leading, spacing: 2) { + Text(NSLocalizedString("Proposed", comment: "LoopInsights pre-fill proposed label")) + .font(.caption2) + .foregroundColor(.green) + TextField( + "", + value: Binding( + get: { editedValues[block.id] ?? block.proposedValue }, + set: { editedValues[block.id] = $0 } + ), + format: .number + ) + .font(.body.weight(.semibold)) + .foregroundColor(.green) + .textFieldStyle(.roundedBorder) + .keyboardType(.decimalPad) + .frame(width: 80) + } + + Spacer() + + let editedVal = editedValues[block.id] ?? block.proposedValue + let pct = block.currentValue != 0 + ? ((editedVal - block.currentValue) / block.currentValue) * 100 + : 0 + Text(String(format: "(%+.0f%%)", pct)) + .font(.caption) + .foregroundColor(.secondary) + } + } + .padding(.vertical, 4) + } + } + + Section(header: Text(NSLocalizedString("AI REASONING", comment: "LoopInsights pre-fill reasoning header"))) { + Text(record.suggestion.reasoning) + .font(.caption) + .foregroundColor(.secondary) + } + + Section { + Button(action: { + let editedBlocks = record.suggestion.timeBlocks.map { block in + LoopInsightsTimeBlock( + startTime: block.startTime, + endTime: block.endTime, + currentValue: block.currentValue, + proposedValue: editedValues[block.id] ?? block.proposedValue + ) + } + onApply(editedBlocks) + dismiss() + }) { + HStack { + Spacer() + Text(NSLocalizedString("Apply Changes", comment: "LoopInsights pre-fill apply button")) + .fontWeight(.semibold) + Spacer() + } + .foregroundColor(.white) + .padding(.vertical, 10) + .background(Color.green) + .cornerRadius(10) + } + .buttonStyle(.plain) + .listRowBackground(Color.clear) + + Button(action: { + onCancel() + dismiss() + }) { + HStack { + Spacer() + Text(NSLocalizedString("Cancel", comment: "LoopInsights pre-fill cancel button")) + .fontWeight(.semibold) + Spacer() + } + .foregroundColor(.white) + .padding(.vertical, 10) + .background(Color.red) + .cornerRadius(10) + } + .buttonStyle(.plain) + .listRowBackground(Color.clear) + } + } + .navigationTitle(NSLocalizedString("Review Changes", comment: "LoopInsights pre-fill editor title")) + .navigationBarTitleDisplayMode(.inline) + } +} + +// MARK: - Debug Log View + +/// Developer-only view that shows the full AI prompt/response exchange. +/// Useful for diagnosing unexpected AI behavior. +struct LoopInsights_DebugLogView: View { + let log: LoopInsightsDebugLog + @State private var copied = false + @Environment(\.dismiss) private var dismiss + + private var fullLogText: String { + """ + === LoopInsights Analysis Debug Log === + Setting Type: \(log.settingType.displayName) + Timestamp: \(Self.dateFormatter.string(from: log.timestamp)) + + === SYSTEM PROMPT === + \(log.systemPrompt) + + === USER PROMPT === + \(log.userPrompt) + + === RAW AI RESPONSE === + \(log.rawResponse) + """ + } + + var body: some View { + List { + Section { + Button(action: { + UIPasteboard.general.string = fullLogText + copied = true + DispatchQueue.main.asyncAfter(deadline: .now() + 2) { copied = false } + }) { + HStack { + Spacer() + Image(systemName: copied ? "checkmark" : "doc.on.doc") + Text(copied ? "Copied" : "Copy Full Log") + .fontWeight(.semibold) + Spacer() + } + .foregroundColor(.white) + .padding(.vertical, 10) + .background(copied ? Color.green : Color.orange) + .cornerRadius(10) + } + .buttonStyle(.plain) + .listRowBackground(Color.clear) + } + + Section(header: Text("Analysis Info")) { + HStack { + Text("Setting Type") + .foregroundColor(.secondary) + Spacer() + Text(log.settingType.displayName) + } + HStack { + Text("Timestamp") + .foregroundColor(.secondary) + Spacer() + Text(Self.dateFormatter.string(from: log.timestamp)) + .font(.caption) + } + } + + Section(header: Text("System Prompt")) { + Text(log.systemPrompt) + .font(.caption2) + .foregroundColor(.secondary) + .textSelection(.enabled) + } + + Section(header: Text("User Prompt")) { + Text(log.userPrompt) + .font(.caption2) + .foregroundColor(.secondary) + .textSelection(.enabled) + } + + Section(header: Text("Raw AI Response")) { + Text(log.rawResponse) + .font(.caption2) + .foregroundColor(.secondary) + .textSelection(.enabled) + } + } + .navigationTitle("Analysis Debug Log") + .navigationBarTitleDisplayMode(.inline) + .toolbar { + ToolbarItem(placement: .navigationBarTrailing) { + Button(NSLocalizedString("Done", comment: "Done button")) { + dismiss() + } + } + } + } + + private static let dateFormatter: DateFormatter = { + let formatter = DateFormatter() + formatter.dateStyle = .medium + formatter.timeStyle = .medium + return formatter + }() +} + diff --git a/Loop/Views/LoopInsights/LoopInsights_SettingsView.swift b/Loop/Views/LoopInsights/LoopInsights_SettingsView.swift index 36ee889535..e1b130270b 100644 --- a/Loop/Views/LoopInsights/LoopInsights_SettingsView.swift +++ b/Loop/Views/LoopInsights/LoopInsights_SettingsView.swift @@ -8,6 +8,7 @@ import SwiftUI import Combine +import LoopKit /// LoopInsights settings and configuration view. /// Accessible from Loop's main SettingsView via NavigationLink. @@ -15,6 +16,10 @@ struct LoopInsights_SettingsView: View { @Environment(\.openURL) var openURL + /// Real data store references passed from Loop's SettingsView (type-erased). + /// When nil, falls back to test data (simulator / preview). + var dataStoresProvider: (() -> Any?)? + @State private var isEnabled = LoopInsights_FeatureFlags.isEnabled @State private var selectedPeriod = LoopInsights_FeatureFlags.analysisPeriod @State private var selectedApplyMode = LoopInsights_FeatureFlags.applyMode @@ -61,7 +66,8 @@ struct LoopInsights_SettingsView: View { } } - init() { + init(dataStoresProvider: (() -> Any?)? = nil) { + self.dataStoresProvider = dataStoresProvider let config = LoopInsights_FeatureFlags.aiConfiguration _baseURL = State(initialValue: config.baseURL) _model = State(initialValue: config.model) @@ -96,6 +102,12 @@ struct LoopInsights_SettingsView: View { .navigationTitle(NSLocalizedString("LoopInsights Settings", comment: "LoopInsights settings title")) .navigationBarTitleDisplayMode(.inline) .onAppear { + // Re-sync @State from persisted values on every appearance + isEnabled = LoopInsights_FeatureFlags.isEnabled + selectedPeriod = LoopInsights_FeatureFlags.analysisPeriod + selectedApplyMode = LoopInsights_FeatureFlags.applyMode + selectedPersonality = LoopInsights_FeatureFlags.aiPersonality + useTestData = LoopInsights_FeatureFlags.useTestData apiKeyText = LoopInsights_SecureStorage.loadAPIKey() ?? "" // Clear stale endpoint path if it matches a different format's default @@ -128,7 +140,7 @@ struct LoopInsights_SettingsView: View { } .sheet(isPresented: $showTestDashboard) { NavigationView { - LoopInsights_TestDashboardWrapper() + LoopInsights_TestDashboardWrapper(dataStoresProvider: dataStoresProvider) .toolbar { ToolbarItem(placement: .navigationBarTrailing) { Button(NSLocalizedString("Done", comment: "Done button")) { @@ -192,22 +204,23 @@ struct LoopInsights_SettingsView: View { } Button(action: { showTestDashboard = true }) { - HStack { + HStack(spacing: 10) { Image(systemName: "chart.line.uptrend.xyaxis") - .foregroundColor(.accentColor) - VStack(alignment: .leading, spacing: 2) { - Text(NSLocalizedString("Open Dashboard", comment: "LoopInsights open dashboard button")) - .fontWeight(.medium) - Text(NSLocalizedString("View therapy settings, run AI analysis, and manage suggestions", comment: "LoopInsights dashboard description")) - .font(.caption) - .foregroundColor(.secondary) - } + .font(.title3) + Text(NSLocalizedString("Open Dashboard", comment: "LoopInsights open dashboard button")) + .fontWeight(.semibold) Spacer() - Image(systemName: "chevron.right") - .font(.caption) - .foregroundColor(.secondary) + Image(systemName: "arrow.right") + .font(.subheadline.weight(.semibold)) } + .foregroundColor(.white) + .padding(.vertical, 12) + .padding(.horizontal, 16) + .background(Color.green) + .cornerRadius(10) } + .buttonStyle(.plain) + .listRowInsets(EdgeInsets(top: 8, leading: 16, bottom: 8, trailing: 16)) } } } @@ -582,20 +595,36 @@ struct LoopInsights_SettingsView: View { ? LoopInsightsApplyMode.allCases : LoopInsightsApplyMode.publicModes - Picker(NSLocalizedString("When applying suggestions", comment: "LoopInsights apply mode picker"), selection: $selectedApplyMode) { - ForEach(availableModes) { mode in - Text(mode.displayName) - .foregroundColor(mode == .autoApply ? .orange : .primary) - .tag(mode) + HStack { + Text(NSLocalizedString("When applying suggestions", comment: "LoopInsights apply mode picker")) + Spacer() + Menu { + ForEach(availableModes) { mode in + Button(action: { + selectedApplyMode = mode + LoopInsights_FeatureFlags.applyMode = mode + }) { + if mode == selectedApplyMode { + Label(mode == .autoApply ? "\(mode.displayName) \u{26A0}\u{FE0F}" : mode.displayName, systemImage: "checkmark") + } else { + Text(mode == .autoApply ? "\(mode.displayName) \u{26A0}\u{FE0F}" : mode.displayName) + } + } + } + } label: { + HStack(spacing: 4) { + Text(selectedApplyMode.displayName) + .foregroundColor(selectedApplyMode == .autoApply ? .orange : .accentColor) + Image(systemName: "chevron.up.chevron.down") + .font(.caption2) + .foregroundColor(selectedApplyMode == .autoApply ? .orange : .accentColor) + } } } - .onChange(of: selectedApplyMode) { newValue in - LoopInsights_FeatureFlags.applyMode = newValue - } Text(selectedApplyMode.description) .font(.caption) - .foregroundColor(.secondary) + .foregroundColor(selectedApplyMode == .autoApply ? .orange : .secondary) } } } @@ -620,6 +649,7 @@ struct LoopInsights_SettingsView: View { Text(personality.displayName).tag(personality) } } + .pickerStyle(.menu) .onChange(of: selectedPersonality) { newValue in LoopInsights_FeatureFlags.aiPersonality = newValue } @@ -651,18 +681,11 @@ struct LoopInsights_SettingsView: View { Spacer() Text("\(LoopInsights_SuggestionStore.shared.allRecords.count)") .foregroundColor(.secondary) - } - - Button(role: .destructive, action: { showingClearHistory = true }) { - HStack { + Button(role: .destructive, action: { showingClearHistory = true }) { Image(systemName: "trash") - Text(NSLocalizedString("Clear Suggestion History", comment: "LoopInsights clear history button")) + .font(.caption) } } - - Text(NSLocalizedString("All past AI suggestions, including applied, dismissed, and expired records.", comment: "LoopInsights history description")) - .font(.caption) - .foregroundColor(.secondary) } } } @@ -891,11 +914,32 @@ private class LoopInsights_DashboardContainer: ObservableObject { @Published var renderTrigger: Int = 0 private var vmCancellable: AnyCancellable? - func initializeIfNeeded() { + func initializeIfNeeded(dataStoresProvider: (() -> Any?)? = nil) { guard viewModel == nil else { return } - let provider = LoopInsights_TestDataProvider() - let coordinator = LoopInsights_Coordinator(testDataProvider: provider) + let coordinator: LoopInsights_Coordinator + + // Developer mode: test data takes priority + if let testCoordinator = LoopInsights_Coordinator.withTestDataIfAvailable() { + coordinator = testCoordinator + } + // Real data stores from Loop (cast from type-erased tuple) + else if let any = dataStoresProvider?(), + let stores = any as? (GlucoseStoreProtocol, DoseStoreProtocol, CarbStoreProtocol, LatestStoredSettingsProvider, LoopInsightsSettingsWriter) { + coordinator = LoopInsights_Coordinator( + glucoseStore: stores.0, + doseStore: stores.1, + carbStore: stores.2, + settingsProvider: stores.3, + settingsWriter: stores.4 + ) + } + // Fallback: test data provider (simulator with no real stores) + else { + let provider = LoopInsights_TestDataProvider() + coordinator = LoopInsights_Coordinator(testDataProvider: provider) + } + let vm = LoopInsights_DashboardViewModel(coordinator: coordinator) // Forward ViewModel's objectWillChange → increment renderTrigger @@ -918,6 +962,7 @@ private class LoopInsights_DashboardContainer: ObservableObject { /// the DashboardView once the ViewModel is ready. private struct LoopInsights_TestDashboardWrapper: View { @StateObject private var container = LoopInsights_DashboardContainer() + var dataStoresProvider: (() -> Any?)? var body: some View { Group { @@ -929,14 +974,14 @@ private struct LoopInsights_TestDashboardWrapper: View { } else { VStack(spacing: 12) { ProgressView() - Text(NSLocalizedString("Loading test data...", comment: "LoopInsights loading test data")) + Text(NSLocalizedString("Loading data...", comment: "LoopInsights loading data")) .font(.caption) .foregroundColor(.secondary) } } } .onAppear { - container.initializeIfNeeded() + container.initializeIfNeeded(dataStoresProvider: dataStoresProvider) } } } diff --git a/Loop/Views/LoopInsights/LoopInsights_SuggestionDetailView.swift b/Loop/Views/LoopInsights/LoopInsights_SuggestionDetailView.swift index afd0bb2621..52190bbfd1 100644 --- a/Loop/Views/LoopInsights/LoopInsights_SuggestionDetailView.swift +++ b/Loop/Views/LoopInsights/LoopInsights_SuggestionDetailView.swift @@ -15,6 +15,7 @@ struct LoopInsights_SuggestionDetailView: View { let record: LoopInsightsSuggestionRecord let onApply: () -> Void let onDismiss: () -> Void + var onRevert: (() -> Void)? = nil @Environment(\.dismiss) private var dismiss @@ -144,14 +145,16 @@ struct LoopInsights_SuggestionDetailView: View { }) { HStack { Spacer() - Image(systemName: "checkmark.circle.fill") Text(NSLocalizedString("Apply Suggestion", comment: "LoopInsights apply suggestion button")) .fontWeight(.semibold) Spacer() } - .padding(.vertical, 4) + .foregroundColor(.white) + .padding(.vertical, 10) + .background(Color.green) + .cornerRadius(10) } - .buttonStyle(.borderedProminent) + .buttonStyle(.plain) .listRowBackground(Color.clear) Button(action: { @@ -160,13 +163,16 @@ struct LoopInsights_SuggestionDetailView: View { }) { HStack { Spacer() - Image(systemName: "xmark.circle") Text(NSLocalizedString("Dismiss Suggestion", comment: "LoopInsights dismiss suggestion button")) + .fontWeight(.semibold) Spacer() } - .padding(.vertical, 4) + .foregroundColor(.white) + .padding(.vertical, 10) + .background(Color.red) + .cornerRadius(10) } - .buttonStyle(.bordered) + .buttonStyle(.plain) .listRowBackground(Color.clear) } } @@ -197,6 +203,27 @@ struct LoopInsights_SuggestionDetailView: View { .fontWeight(.medium) } } + + // Revert button for applied/auto-applied records + if record.status.isRevertable, record.settingsSnapshotBefore != nil, let onRevert = onRevert { + Button(action: { + onRevert() + dismiss() + }) { + HStack { + Spacer() + Text(NSLocalizedString("Revert Changes", comment: "LoopInsights revert button")) + .fontWeight(.semibold) + Spacer() + } + .foregroundColor(.white) + .padding(.vertical, 10) + .background(Color.orange) + .cornerRadius(10) + } + .buttonStyle(.plain) + .listRowBackground(Color.clear) + } } } @@ -227,6 +254,7 @@ struct LoopInsights_SuggestionDetailView: View { case .applied: return .green case .dismissed: return .gray case .autoApplied: return .orange + case .reverted: return .purple } } diff --git a/Loop/Views/LoopInsights/LoopInsights_SuggestionHistoryView.swift b/Loop/Views/LoopInsights/LoopInsights_SuggestionHistoryView.swift index 37369e4cef..c13eb6ed22 100644 --- a/Loop/Views/LoopInsights/LoopInsights_SuggestionHistoryView.swift +++ b/Loop/Views/LoopInsights/LoopInsights_SuggestionHistoryView.swift @@ -13,7 +13,10 @@ import SwiftUI struct LoopInsights_SuggestionHistoryView: View { @ObservedObject var store: LoopInsights_SuggestionStore + let onRevert: ((LoopInsightsSuggestionRecord) -> Bool)? @State private var selectedRecord: LoopInsightsSuggestionRecord? + @State private var showingRevertConfirmation = false + @State private var recordToRevert: LoopInsightsSuggestionRecord? @State private var filterStatus: FilterOption = .all @Environment(\.dismiss) private var dismiss @@ -22,6 +25,7 @@ struct LoopInsights_SuggestionHistoryView: View { case applied = "Applied" case dismissed = "Dismissed" case autoApplied = "Auto-Applied" + case reverted = "Reverted" var id: String { rawValue } } @@ -49,10 +53,33 @@ struct LoopInsights_SuggestionHistoryView: View { LoopInsights_SuggestionDetailView( record: record, onApply: {}, - onDismiss: {} + onDismiss: {}, + onRevert: record.status.isRevertable && record.settingsSnapshotBefore != nil ? { + recordToRevert = record + showingRevertConfirmation = true + } : nil ) } } + .alert( + NSLocalizedString("Revert Changes?", comment: "LoopInsights revert confirmation title"), + isPresented: $showingRevertConfirmation + ) { + Button(NSLocalizedString("Revert", comment: "LoopInsights revert button"), role: .destructive) { + if let record = recordToRevert { + let _ = onRevert?(record) + } + recordToRevert = nil + } + Button(NSLocalizedString("Cancel", comment: "Cancel button"), role: .cancel) { + recordToRevert = nil + } + } message: { + Text(NSLocalizedString( + "This will restore your therapy settings to the values they had before this suggestion was applied.", + comment: "LoopInsights revert confirmation message" + )) + } } // MARK: - Filter @@ -115,6 +142,19 @@ struct LoopInsights_SuggestionHistoryView: View { Spacer() + // Revert button for applied/auto-applied records + if record.status.isRevertable, record.settingsSnapshotBefore != nil, onRevert != nil { + Button(action: { + recordToRevert = record + showingRevertConfirmation = true + }) { + Image(systemName: "arrow.uturn.backward") + .font(.caption) + .foregroundColor(.orange) + } + .buttonStyle(.plain) + } + Image(systemName: "chevron.right") .font(.caption2) .foregroundColor(.secondary) @@ -155,6 +195,8 @@ struct LoopInsights_SuggestionHistoryView: View { return allRecords.filter { $0.status == .dismissed } case .autoApplied: return allRecords.filter { $0.status == .autoApplied } + case .reverted: + return allRecords.filter { $0.status == .reverted } } } @@ -164,6 +206,7 @@ struct LoopInsights_SuggestionHistoryView: View { case .applied: return .green case .dismissed: return .gray case .autoApplied: return .orange + case .reverted: return .purple } } diff --git a/Loop/Views/SettingsView.swift b/Loop/Views/SettingsView.swift index 9e5dd04b38..b9bfe6103a 100644 --- a/Loop/Views/SettingsView.swift +++ b/Loop/Views/SettingsView.swift @@ -298,6 +298,8 @@ extension SettingsView { descriptiveText: NSLocalizedString("Diabetes Treatment", comment: "Descriptive text for Therapy Settings")) } + loopInsightsSection + ForEach(pluginMenuItems.filter {$0.section == .configuration}) { item in item.view } @@ -305,8 +307,6 @@ extension SettingsView { if FeatureFlags.allowAlgorithmExperiments { algorithmExperimentsSection } - - loopInsightsSection } } @@ -381,7 +381,7 @@ extension SettingsView { private var loopInsightsSection: some View { Section { - NavigationLink(destination: LoopInsights_SettingsView()) { + NavigationLink(destination: LoopInsights_SettingsView(dataStoresProvider: viewModel.loopInsightsDataStores)) { LargeButton(action: {}, includeArrow: false, imageView: Image(systemName: "brain.head.profile") From 03de7d383e1edb811c17f5517add5c1e4c5ce98c Mon Sep 17 00:00:00 2001 From: Taylor Date: Thu, 12 Feb 2026 18:52:01 -0800 Subject: [PATCH 03/14] Phase 3: Chat, background monitor, Trends & Insights, and dark-themed advisor UI Add Ask LoopInsights chat with AI advisor powered by therapy context and glucose data. Background monitoring with configurable frequency and notification banners. New Trends & Insights view with Daily/Weekly/Monthly/Stats/Advisor tabs. Dark gradient styling for chat and trends views. Banner now includes Ask button to open chat directly. --- Loop.xcodeproj/project.pbxproj | 22 +- Loop/Localizable.xcstrings | 272 ++++++- .../LoopInsights_BackgroundMonitor.swift | 265 +++++++ .../LoopInsights_Coordinator.swift | 19 + .../LoopInsights/LoopInsights_Models.swift | 115 +++ .../LoopInsights_FeatureFlags.swift | 81 ++ .../LoopInsights_ChatViewModel.swift | 227 ++++++ .../LoopInsights_DashboardViewModel.swift | 9 +- .../LoopInsights/LoopInsights_ChatView.swift | 313 ++++++++ .../LoopInsights_DashboardView.swift | 146 ++++ .../LoopInsights_MonitorSettingsView.swift | 240 ++++++ .../LoopInsights_SettingsView.swift | 39 + .../LoopInsights_TrendsInsightsView.swift | 722 ++++++++++++++++++ 13 files changed, 2463 insertions(+), 7 deletions(-) create mode 100644 Loop/Managers/LoopInsights/LoopInsights_BackgroundMonitor.swift create mode 100644 Loop/View Models/LoopInsights/LoopInsights_ChatViewModel.swift create mode 100644 Loop/Views/LoopInsights/LoopInsights_ChatView.swift create mode 100644 Loop/Views/LoopInsights/LoopInsights_MonitorSettingsView.swift create mode 100644 Loop/Views/LoopInsights/LoopInsights_TrendsInsightsView.swift diff --git a/Loop.xcodeproj/project.pbxproj b/Loop.xcodeproj/project.pbxproj index 68a66b40c8..c0eb350d71 100644 --- a/Loop.xcodeproj/project.pbxproj +++ b/Loop.xcodeproj/project.pbxproj @@ -7,6 +7,7 @@ objects = { /* Begin PBXBuildFile section */ + 8D0F376E7E338ECB93EE03E0 /* LoopInsights_TrendsInsightsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = EE7AAD3549253FE16941E10D /* LoopInsights_TrendsInsightsView.swift */; }; 1419606428D9550400BA86E0 /* LoopKitUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 437AFEE6203688CF008C4892 /* LoopKitUI.framework */; }; 1419606928D9554E00BA86E0 /* LoopKitUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 437AFEE6203688CF008C4892 /* LoopKitUI.framework */; }; 1419606A28D955BC00BA86E0 /* MockKitUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C101947127DD473C004E7EB8 /* MockKitUI.framework */; }; @@ -606,6 +607,10 @@ 51E08775179BF0C6D3C4468A /* LoopInsights_ModelsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9807F50B2A84D11791A7C992 /* LoopInsights_ModelsTests.swift */; }; 84F08AFCA333AFD961F8B037 /* LoopInsights_SuggestionStoreTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8E9EE7EF28AC643A5A61BA90 /* LoopInsights_SuggestionStoreTests.swift */; }; 11D448D84F8B6FDE43A9DC77 /* LoopInsights_DataAggregatorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1DF3371B113CDE1971B80A91 /* LoopInsights_DataAggregatorTests.swift */; }; + D8950E91581E86BE23B016FC /* LoopInsights_BackgroundMonitor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 585625767F8B708C753B6B70 /* LoopInsights_BackgroundMonitor.swift */; }; + 43CA1D2C89F0E99C9BF8E595 /* LoopInsights_ChatViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1441AF7F093555B0A342E921 /* LoopInsights_ChatViewModel.swift */; }; + A5BA458D4C96896EB8F770A8 /* LoopInsights_ChatView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2029C9AA34E59B67467B1756 /* LoopInsights_ChatView.swift */; }; + 02DEF744456C1BA094E55A8A /* LoopInsights_MonitorSettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = CF876C4BBAD67542E1E0A979 /* LoopInsights_MonitorSettingsView.swift */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -776,6 +781,7 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ + EE7AAD3549253FE16941E10D /* LoopInsights_TrendsInsightsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoopInsights_TrendsInsightsView.swift; sourceTree = ""; }; 142CB7582A60BF2E0075748A /* EditMode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = EditMode.swift; sourceTree = ""; }; 142CB75A2A60BFC30075748A /* FavoriteFoodsView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FavoriteFoodsView.swift; sourceTree = ""; }; 1452F4A82A851C9400F8B9E4 /* AddEditFavoriteFoodViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AddEditFavoriteFoodViewModel.swift; sourceTree = ""; }; @@ -1445,6 +1451,10 @@ 9807F50B2A84D11791A7C992 /* LoopInsights_ModelsTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoopInsights_ModelsTests.swift; sourceTree = ""; }; 8E9EE7EF28AC643A5A61BA90 /* LoopInsights_SuggestionStoreTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoopInsights_SuggestionStoreTests.swift; sourceTree = ""; }; 1DF3371B113CDE1971B80A91 /* LoopInsights_DataAggregatorTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoopInsights_DataAggregatorTests.swift; sourceTree = ""; }; + 585625767F8B708C753B6B70 /* LoopInsights_BackgroundMonitor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoopInsights_BackgroundMonitor.swift; sourceTree = ""; }; + 1441AF7F093555B0A342E921 /* LoopInsights_ChatViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoopInsights_ChatViewModel.swift; sourceTree = ""; }; + 2029C9AA34E59B67467B1756 /* LoopInsights_ChatView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoopInsights_ChatView.swift; sourceTree = ""; }; + CF876C4BBAD67542E1E0A979 /* LoopInsights_MonitorSettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoopInsights_MonitorSettingsView.swift; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -2716,6 +2726,7 @@ isa = PBXGroup; children = ( 76F7734CE5F39086ACDF05E4 /* LoopInsights_DashboardViewModel.swift */, + 1441AF7F093555B0A342E921 /* LoopInsights_ChatViewModel.swift */, ); path = LoopInsights; sourceTree = ""; @@ -2727,6 +2738,9 @@ 298B9D3C1F836418FB49F5A4 /* LoopInsights_SettingsView.swift */, 6FF964C8C711F6D2BC5ABADF /* LoopInsights_SuggestionDetailView.swift */, F30BE128F5152CCEFCE77A91 /* LoopInsights_SuggestionHistoryView.swift */, + 2029C9AA34E59B67467B1756 /* LoopInsights_ChatView.swift */, + CF876C4BBAD67542E1E0A979 /* LoopInsights_MonitorSettingsView.swift */, + EE7AAD3549253FE16941E10D /* LoopInsights_TrendsInsightsView.swift */, ); path = LoopInsights; sourceTree = ""; @@ -2772,6 +2786,7 @@ isa = PBXGroup; children = ( DD1A8C2568AD3C055D53CABA /* LoopInsights_Coordinator.swift */, + 585625767F8B708C753B6B70 /* LoopInsights_BackgroundMonitor.swift */, ); path = LoopInsights; sourceTree = ""; @@ -3717,7 +3732,12 @@ 9C14D255A2CA94966BAD7667 /* LoopInsights_SuggestionStore.swift in Sources */, 17EAECD5386B86C1F7968394 /* LoopInsights_FeatureFlags.swift in Sources */, 6C78970231AAF9CC3E477BCB /* LoopInsights_Coordinator.swift in Sources */, - ); + D8950E91581E86BE23B016FC /* LoopInsights_BackgroundMonitor.swift in Sources */, + 43CA1D2C89F0E99C9BF8E595 /* LoopInsights_ChatViewModel.swift in Sources */, + A5BA458D4C96896EB8F770A8 /* LoopInsights_ChatView.swift in Sources */, + 02DEF744456C1BA094E55A8A /* LoopInsights_MonitorSettingsView.swift in Sources */, + 8D0F376E7E338ECB93EE03E0 /* LoopInsights_TrendsInsightsView.swift in Sources */, +); runOnlyForDeploymentPostprocessing = 0; }; 43A9437A1B926B7B0051FA24 /* Sources */ = { diff --git a/Loop/Localizable.xcstrings b/Loop/Localizable.xcstrings index 24e3c354eb..df1772e330 100644 --- a/Loop/Localizable.xcstrings +++ b/Loop/Localizable.xcstrings @@ -3186,6 +3186,9 @@ } } }, + "%d new therapy setting suggestions available" : { + "comment" : "LoopInsights notification body: multiple suggestions" + }, "%d suggestions" : { "comment" : "LoopInsights suggestion count" }, @@ -3208,6 +3211,10 @@ } } }, + "•" : { + "comment" : "A bullet point symbol.", + "isCommentAutoGenerated" : true + }, "⚠️" : { "localizations" : { "da" : { @@ -4293,6 +4300,10 @@ } } }, + "Above Range (>180)" : { + "comment" : "Description of a glucose reading that is above 180 mg/dL.", + "isCommentAutoGenerated" : true + }, "Absorption Time" : { "comment" : "Label for food absorption entry on add favorite food screen", "localizations" : { @@ -5879,6 +5890,9 @@ "Advanced API Settings" : { "comment" : "LoopInsights advanced settings toggle" }, + "Advisor" : { + "comment" : "LoopInsights trends tab: advisor" + }, "AI Assessment" : { "comment" : "LoopInsights assessment header" }, @@ -6360,6 +6374,9 @@ } } }, + "All" : { + "comment" : "LoopInsights confidence filter: all" + }, "All Alerts Muted" : { "comment" : "Warning text for when alerts are muted", "localizations" : { @@ -6507,6 +6524,9 @@ } } }, + "Am I bolusing enough for meals?" : { + "comment" : "LoopInsights quick ask: meal bolus" + }, "Amount Consumed" : { "comment" : "Label for carb quantity entry row on carb entry screen", "localizations" : { @@ -7105,6 +7125,9 @@ "comment" : "The title of the view that displays detailed information about an AI analysis.", "isCommentAutoGenerated" : true }, + "ANALYSIS FREQUENCY" : { + "comment" : "LoopInsights monitor frequency header" + }, "Analysis Info" : { "comment" : "The header text for the section that displays information about the AI analysis.", "isCommentAutoGenerated" : true @@ -7121,6 +7144,9 @@ "Analyze All" : { "comment" : "LoopInsights analyze all button" }, + "Analyze my last 3 days" : { + "comment" : "LoopInsights quick ask: recent analysis" + }, "Analyzing..." : { "comment" : "LoopInsights analyzing\nLoopInsights analyzing all" }, @@ -8252,6 +8278,18 @@ } } }, + "Ask a question..." : { + "comment" : "LoopInsights chat input placeholder" + }, + "Ask LoopInsights" : { + "comment" : "LoopInsights chat button\nLoopInsights chat title" + }, + "Ask me anything about your diabetes management" : { + "comment" : "LoopInsights chat empty state title" + }, + "Ask questions about your glucose trends, therapy settings, and get personalized advice." : { + "comment" : "LoopInsights trends advisor subtitle" + }, "at %@" : { "comment" : "Format fragment for a specific time", "localizations" : { @@ -8634,6 +8672,22 @@ "Average rise of %.0f mg/dL between 3 AM–7 AM" : { "comment" : "LoopInsights pattern detail: dawn phenomenon\nLoopInsights pattern detail: dawn phenomenon moderate" }, + "Avg" : { + "comment" : "LoopInsights trends avg chip" + }, + "Background Monitoring" : { + "comment" : "LoopInsights background monitoring row\nLoopInsights monitor settings title" + }, + "BACKGROUND MONITORING" : { + "comment" : "LoopInsights background monitoring header" + }, + "Background monitoring piggybacks on Loop's existing ~5 minute cycle. When enough time has passed (based on your frequency setting), it runs a full AI analysis of all three therapy settings. If it finds suggestions that meet your confidence threshold, you'll be notified." : { + "comment" : "LoopInsights monitor info description" + }, + "Basal" : { + "comment" : "Label for the percentage of total insulin dose attributed to basal insulin.", + "isCommentAutoGenerated" : true + }, "Basal Rate" : { "comment" : "LoopInsights setting type: Basal Rate" }, @@ -8986,6 +9040,10 @@ } } }, + "Below Range (<70)" : { + "comment" : "Description of a glucose reading that is below the recommended target range.", + "isCommentAutoGenerated" : true + }, "Bluetooth\nOff" : { "comment" : "Message to the user to that the bluetooth is off", "localizations" : { @@ -11184,6 +11242,9 @@ } } }, + "Carbs" : { + "comment" : "LoopInsights trends stats carbs" + }, "Carbs Absorbed (g) ÷ Carb Ratio (g/U) × Insulin Sensitivity (%1$@/U)" : { "comment" : "Description of the prediction input effect for carbohydrates. (1: The glucose unit string)", "localizations" : { @@ -11625,6 +11686,12 @@ } } }, + "Chat with your AI Advisor" : { + "comment" : "LoopInsights trends advisor title" + }, + "Check every" : { + "comment" : "LoopInsights monitor frequency picker" + }, "Check settings" : { "comment" : "Details for configuration error when one or more loop settings are missing", "extractionState" : "manual", @@ -13678,6 +13745,10 @@ "comment" : "A button label that says \"Copy Full Log\".", "isCommentAutoGenerated" : true }, + "Correction Boluses" : { + "comment" : "Label for the number of correction boluses logged in the stats section of the Trends & Insights view.", + "isCommentAutoGenerated" : true + }, "Correction Range" : { "comment" : "The title of the glucose target range schedule screen\n The title text for the glucose target range schedule", "extractionState" : "manual", @@ -14632,6 +14703,16 @@ } } }, + "CV" : { + "comment" : "LoopInsights trends CV chip" + }, + "Daily" : { + "comment" : "LoopInsights trends tab: daily" + }, + "Daily Average" : { + "comment" : "Label for the daily average carb intake in the stats section of the Trends & Insights view.", + "isCommentAutoGenerated" : true + }, "Date" : { "comment" : "Date picker label", "localizations" : { @@ -15959,6 +16040,9 @@ } } }, + "Delivery" : { + "comment" : "LoopInsights monitor notification picker" + }, "Delivery Limits" : { "comment" : "Title text for delivery limits", "extractionState" : "manual", @@ -16097,6 +16181,9 @@ } } }, + "Detailed Statistics" : { + "comment" : "LoopInsights trends stats header" + }, "Detected Patterns" : { "comment" : "LoopInsights detected patterns header" }, @@ -16395,7 +16482,7 @@ } }, "Dismiss" : { - "comment" : "Default alert dismissal\nLoopInsights dismiss\nThe button label of the action used to dismiss an error alert", + "comment" : "Default alert dismissal\nLoopInsights banner dismiss button\nLoopInsights dismiss\nThe button label of the action used to dismiss an error alert", "localizations" : { "ar" : { "stringUnit" : { @@ -16910,6 +16997,9 @@ "comment" : "A placeholder text for the user to enter their OpenAI or Azure organization ID.", "isCommentAutoGenerated" : true }, + "Each analysis uses your configured AI provider and consumes API credits. With daily frequency, expect ~3 API calls per day (one per setting type)." : { + "comment" : "LoopInsights monitor API usage note" + }, "Enable\nBluetooth" : { "comment" : "Message to the user to enable bluetooth", "localizations" : { @@ -17008,6 +17098,9 @@ "Enable AI-powered therapy settings analysis and suggestions. When disabled, the feature is hidden but settings are preserved." : { "comment" : "LoopInsights feature toggle description" }, + "Enable Background Monitoring" : { + "comment" : "LoopInsights monitor toggle" + }, "Enable Glucose Based Partial Application" : { "comment" : "Title for Glucose Based Partial Application toggle", "localizations" : { @@ -17093,6 +17186,9 @@ "Enable LoopInsights" : { "comment" : "LoopInsights enable toggle" }, + "Enable Quiet Hours" : { + "comment" : "LoopInsights monitor quiet hours toggle" + }, "Enabled" : { "comment" : "Title for enable live activity toggle", "localizations" : { @@ -18307,6 +18403,12 @@ } } }, + "Every 6 Hours" : { + "comment" : "LoopInsights monitor frequency: 6 hours" + }, + "Every 12 Hours" : { + "comment" : "LoopInsights monitor frequency: 12 hours" + }, "Exceeds maximum allowed bolus in settings" : { "comment" : "Bolus error description: bolus exceeds maximum bolus in settings.", "localizations" : { @@ -19755,6 +19857,9 @@ } } }, + "From" : { + "comment" : "LoopInsights monitor quiet hours from" + }, "Full endpoint URL:" : { "comment" : "LoopInsights endpoint preview label" }, @@ -19886,6 +19991,20 @@ "g/U" : { "comment" : "LoopInsights unit: grams per unit of insulin" }, + "Generated %@ at %@" : { + "comment" : "LoopInsights trends generated at", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Generated %1$@ at %2$@" + } + } + } + }, + "Generating insights..." : { + "comment" : "LoopInsights trends loading" + }, "Get an API key from a provider:" : { "comment" : "LoopInsights API key links header" }, @@ -19967,7 +20086,7 @@ } }, "Glucose" : { - "comment" : "The title of the glucose and prediction graph\nTitle for predicted glucose chart on bolus screen", + "comment" : "LoopInsights trends stats glucose\nThe title of the glucose and prediction graph\nTitle for predicted glucose chart on bolus screen", "localizations" : { "ar" : { "stringUnit" : { @@ -20904,9 +21023,15 @@ } } }, + "High Only" : { + "comment" : "LoopInsights confidence filter: high only" + }, "High Variability" : { "comment" : "LoopInsights pattern: high variability" }, + "Highlights" : { + "comment" : "LoopInsights trends highlights header" + }, "How can I silence non-Critical Alerts?" : { "localizations" : { "da" : { @@ -21052,6 +21177,12 @@ } } }, + "How it works" : { + "comment" : "LoopInsights monitor info header" + }, + "How often LoopInsights runs a full AI analysis on your data. More frequent checks use more API calls." : { + "comment" : "LoopInsights monitor frequency description" + }, "How to update (LoopDocs)" : { "comment" : "The title text for how to update", "localizations" : { @@ -21135,6 +21266,9 @@ } } }, + "How's my basal rate?" : { + "comment" : "LoopInsights quick ask: basal rate review" + }, "https://mysite.herokuapp.com" : { "comment" : "The placeholder text for the nightscout site URL credential", "extractionState" : "manual", @@ -21147,6 +21281,9 @@ } } }, + "I have access to your current therapy settings and recent glucose data. Try one of the suggestions below or type your own question." : { + "comment" : "LoopInsights chat empty state subtitle" + }, "If iOS Focus Mode is ON and Mute Alerts is OFF, Critical Alerts will still be delivered and non-Critical Alerts will be silenced until %1$@ is added to each Focus mode as an Allowed App." : { "comment" : "Focus modes descriptive text (1: app name)", "localizations" : { @@ -21324,6 +21461,9 @@ } } }, + "In-App Banner" : { + "comment" : "LoopInsights notification style: banner" + }, "Increase" : { "comment" : "LoopInsights: increase direction" }, @@ -21485,7 +21625,7 @@ "comment" : "LoopInsights error: insufficient data" }, "Insulin" : { - "comment" : "Title of the prediction input effect for insulin", + "comment" : "LoopInsights trends stats insulin\nTitle of the prediction input effect for insulin", "localizations" : { "ar" : { "stringUnit" : { @@ -25206,7 +25346,7 @@ } }, "LoopInsights" : { - "comment" : "LoopInsights dashboard title\nLoopInsights header\nLoopInsights settings button" + "comment" : "LoopInsights banner title\nLoopInsights dashboard title\nLoopInsights header\nLoopInsights notification title\nLoopInsights settings button" }, "LOOPINSIGHTS" : { "comment" : "The uppercase name of the feature.", @@ -25215,6 +25355,9 @@ "LoopInsights analyzes your glucose, insulin, and carb data to suggest adjustments to your Basal Rates, Carb Ratios, and Insulin Sensitivity factors. Tap one of the settings, choose a lookback period, and tap Analyze to get AI-generated suggestions. All changes require your review and approval." : { "comment" : "LoopInsights subtitle" }, + "LoopInsights can continuously monitor your data and proactively notify you when it detects a setting change opportunity." : { + "comment" : "LoopInsights background monitoring description" + }, "LoopInsights Settings" : { "comment" : "LoopInsights settings title" }, @@ -25900,12 +26043,19 @@ } } }, + "Meals Logged" : { + "comment" : "Label for the number of meals logged in the stats section of the Trends & Insights view.", + "isCommentAutoGenerated" : true + }, "MEDICAL DISCLAIMER" : { "comment" : "LoopInsights medical disclaimer header" }, "Medium" : { "comment" : "LoopInsights confidence: medium\nLoopInsights legend: medium" }, + "Medium & Above" : { + "comment" : "LoopInsights confidence filter: medium+" + }, "mg/dL" : { "comment" : "The short unit display string for milligrams of glucose per decilter", "localizations" : { @@ -26571,6 +26721,9 @@ } } }, + "Monthly" : { + "comment" : "LoopInsights trends tab: monthly" + }, "More Info" : { "comment" : "Text for more info action on notification of upcoming TestFlight expiration\nText for more info action on notification of upcoming profile expiration", "localizations" : { @@ -27151,6 +27304,17 @@ "Network Error: %@" : { "comment" : "LoopInsights error: network" }, + "New %@ suggestion: %@" : { + "comment" : "LoopInsights notification body: single suggestion", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "New %1$@ suggestion: %2$@" + } + } + } + }, "New Favorite Food" : { "comment" : "Title of new favorite food screen", "localizations" : { @@ -27312,6 +27476,9 @@ } } }, + "No alert — suggestions are available when you next open LoopInsights." : { + "comment" : "LoopInsights notification style desc: silent" + }, "No alerts or alarms will sound while muted. Select how long you would you like to mute for." : { "comment" : "Message for mute alert duration selection action sheet", "localizations" : { @@ -28428,6 +28595,12 @@ } } }, + "NOTIFICATION STYLE" : { + "comment" : "LoopInsights monitor notification style header" + }, + "NOTIFICATION THRESHOLD" : { + "comment" : "LoopInsights monitor confidence header" + }, "Notifications" : { "comment" : "Notifications Status text", "localizations" : { @@ -28511,6 +28684,9 @@ } } }, + "Notifications are suppressed during quiet hours. Analysis still runs — results are available when you next open LoopInsights." : { + "comment" : "LoopInsights monitor quiet hours description" + }, "Notifications Delayed" : { "comment" : "Scheduled Delivery Enabled alert title", "localizations" : { @@ -28754,8 +28930,17 @@ } } }, + "Notify for" : { + "comment" : "LoopInsights monitor confidence picker" + }, + "Notify for all suggestions, including low-confidence ones. This may result in more notifications." : { + "comment" : "LoopInsights monitor confidence: all desc" + }, + "Notify for medium and high confidence suggestions. Good balance of signal vs. noise." : { + "comment" : "LoopInsights monitor confidence: medium+ desc" + }, "Off" : { - "comment" : "Notification Setting Status is Off", + "comment" : "LoopInsights monitoring off\nNotification Setting Status is Off", "localizations" : { "cs" : { "stringUnit" : { @@ -29194,9 +29379,21 @@ } } }, + "Once Daily" : { + "comment" : "LoopInsights monitor frequency: daily" + }, + "Once Weekly" : { + "comment" : "LoopInsights monitor frequency: weekly" + }, "One-Tap Apply" : { "comment" : "LoopInsights apply mode: apply with confirmation" }, + "Only notify for high confidence suggestions. Fewer notifications, but only the most impactful changes." : { + "comment" : "LoopInsights monitor confidence: high only desc" + }, + "Open Chat" : { + "comment" : "LoopInsights trends advisor button" + }, "Open Dashboard" : { "comment" : "LoopInsights open dashboard button" }, @@ -29344,6 +29541,10 @@ "Pending" : { "comment" : "LoopInsights suggestion status: pending review" }, + "Per Meal Average" : { + "comment" : "Description of a stat row in the LoopInsights trends stats section, showing the average number of grams of carbohydrates consumed per meal.", + "isCommentAutoGenerated" : true + }, "Place fixture files in Documents/LoopInsights/ or rebuild with bundled test data." : { "comment" : "LoopInsights no fixtures hint" }, @@ -31828,6 +32029,9 @@ } } }, + "Push Notification" : { + "comment" : "LoopInsights notification style: push" + }, "QUANTITY_VALUE_AND_UNIT" : { "comment" : "Format string for combining localized numeric value and unit. (1: numeric value)(2: unit)", "extractionState" : "extracted_with_value", @@ -31954,6 +32158,9 @@ } } }, + "QUIET HOURS" : { + "comment" : "LoopInsights monitor quiet hours header" + }, "Rapid-Acting – Adults" : { "comment" : "Title of insulin model preset", "extractionState" : "manual", @@ -32210,6 +32417,9 @@ "comment" : "A label displayed above the raw text of the AI's response.", "isCommentAutoGenerated" : true }, + "Readings" : { + "comment" : "LoopInsights trends readings chip" + }, "Reasoning" : { "comment" : "LoopInsight's detailed reasoning" }, @@ -33765,6 +33975,9 @@ } } }, + "Sends a push notification even when the app is in the background." : { + "comment" : "LoopInsights notification style desc: push" + }, "Sensor Failed" : { "localizations" : { "da" : { @@ -34145,6 +34358,9 @@ } } }, + "Shows a banner inside the app when a new suggestion is found." : { + "comment" : "LoopInsights notification style desc: banner" + }, "Shows last loop error" : { "comment" : "Loop Completion HUD accessibility hint", "localizations" : { @@ -34264,6 +34480,9 @@ } } }, + "Silent (Badge Only)" : { + "comment" : "LoopInsights notification style: silent" + }, "Simple Bolus Calculator" : { "comment" : "Title of simple bolus view when not displaying meal entry", "localizations" : { @@ -35085,9 +35304,16 @@ } } }, + "Stats" : { + "comment" : "LoopInsights trends tab: stats" + }, "Status" : { "comment" : "LoopInsights status header" }, + "Std Deviation" : { + "comment" : "Label for the standard deviation value in the stats section card.", + "isCommentAutoGenerated" : true + }, "Stored securely in Keychain" : { "comment" : "LoopInsights keychain confirmation" }, @@ -35106,6 +35332,9 @@ "Suggestions for Fine Tuning" : { "comment" : "LoopInsights suggestions header" }, + "Summary" : { + "comment" : "LoopInsights trends summary header" + }, "Support" : { "comment" : "Section title for Support\nThe title of the support section in settings", "localizations" : { @@ -35662,6 +35891,9 @@ "Tap one of your current Therapy Settings" : { "comment" : "LoopInsights current settings header" }, + "Tap refresh to generate insights" : { + "comment" : "LoopInsights trends no data" + }, "Tap to Add" : { "comment" : "The subtitle of the cell displaying an action to add a manually measurement glucose value", "localizations" : { @@ -37250,6 +37482,9 @@ } } }, + "Thinking..." : { + "comment" : "LoopInsights chat: AI thinking" + }, "This option only applies when Loop's Dosing Strategy is set to Automatic Bolus." : { "comment" : "String shown when glucose based partial application cannot be enabled because dosing strategy is not set to Automatic Bolus", "localizations" : { @@ -37463,9 +37698,15 @@ "comment" : "A label displayed next to the timestamp in the debug log view.", "isCommentAutoGenerated" : true }, + "TIR" : { + "comment" : "LoopInsights trends TIR chip" + }, "TIR >85% with low hypoglycemia risk. The suggestions below are minor refinements — apply with caution." : { "comment" : "LoopInsights optimal warning detail" }, + "To" : { + "comment" : "LoopInsights monitor quiet hours to" + }, "Total Daily Dose" : { "comment" : "LoopInsights TDD label" }, @@ -37524,6 +37765,9 @@ } } }, + "Trends & Insights" : { + "comment" : "LoopInsights trends button\nLoopInsights trends title" + }, "Try Again" : { "comment" : "Critical event log export error alert try again button", "localizations" : { @@ -39670,6 +39914,9 @@ }, "User Prompt" : { + }, + "View" : { + "comment" : "LoopInsights banner view button" }, "View Last Analysis Log" : { "comment" : "LoopInsights debug log button" @@ -39880,6 +40127,9 @@ } } }, + "Weekly" : { + "comment" : "LoopInsights trends tab: weekly" + }, "What are examples of Critical and Time Sensitive alerts?" : { "localizations" : { "da" : { @@ -39932,6 +40182,9 @@ } } }, + "What should I change first?" : { + "comment" : "LoopInsights quick ask: priority" + }, "When applying suggestions" : { "comment" : "LoopInsights apply mode picker" }, @@ -40233,6 +40486,9 @@ } } }, + "When enabled, LoopInsights periodically analyzes your data and notifies you when it detects a therapy setting that could be improved." : { + "comment" : "LoopInsights monitor description" + }, "When out of Closed Loop mode, the app uses a simplified bolus calculator like a typical pump." : { "localizations" : { "da" : { @@ -40479,6 +40735,12 @@ } } }, + "Why am I high overnight?" : { + "comment" : "LoopInsights quick ask: overnight highs" + }, + "Why do I go low after exercise?" : { + "comment" : "LoopInsights quick ask: exercise lows" + }, "Witty and clever. No sugar-coating (pun intended) — helpful advice with a side of humor." : { "comment" : "LoopInsights personality desc: dry wit" }, diff --git a/Loop/Managers/LoopInsights/LoopInsights_BackgroundMonitor.swift b/Loop/Managers/LoopInsights/LoopInsights_BackgroundMonitor.swift new file mode 100644 index 0000000000..b4e58e57a0 --- /dev/null +++ b/Loop/Managers/LoopInsights/LoopInsights_BackgroundMonitor.swift @@ -0,0 +1,265 @@ +// +// LoopInsights_BackgroundMonitor.swift +// Loop +// +// Concept & design by Taylor Patterson. Coded & tested by Claude Code in February 2026. +// Copyright (c) 2025-2026 LoopKit Authors. All rights reserved. +// + +import Foundation +import UserNotifications +import Combine + +/// Monitors Loop's completion cycle and periodically runs AI analysis +/// to proactively detect therapy setting adjustment opportunities. +/// +/// Hooks into `Notification.Name.LoopCompleted` which fires ~every 5 minutes. +/// Actual analysis is throttled to the user's configured frequency (6h/12h/24h/weekly). +/// When new suggestions are found, delivers notifications based on user preferences. +final class LoopInsights_BackgroundMonitor: ObservableObject { + + // MARK: - Published State + + /// The most recent background suggestion (for in-app banner display) + @Published private(set) var latestBackgroundSuggestion: LoopInsightsSuggestion? + + /// Whether a new suggestion banner should be shown + @Published var showBanner = false + + // MARK: - Properties + + private var loopCompletedObserver: NSObjectProtocol? + private let coordinator: LoopInsights_Coordinator + private var isRunningAnalysis = false + + /// UserDefaults key for last analysis timestamp + private static let lastAnalysisKey = "LoopInsights_lastBackgroundAnalysis" + + /// Notification category identifier for LoopInsights + static let notificationCategoryID = "LoopInsights_Suggestion" + + // MARK: - Initialization + + init(coordinator: LoopInsights_Coordinator) { + self.coordinator = coordinator + } + + deinit { + stop() + } + + // MARK: - Lifecycle + + /// Start observing Loop completion notifications. + func start() { + guard loopCompletedObserver == nil else { return } + guard LoopInsights_FeatureFlags.backgroundMonitorEnabled else { + print("[LoopInsights Monitor] Background monitoring is disabled") + return + } + + loopCompletedObserver = NotificationCenter.default.addObserver( + forName: .LoopCompleted, + object: nil, + queue: nil + ) { [weak self] _ in + self?.handleLoopCompleted() + } + + print("[LoopInsights Monitor] Started — frequency: \(LoopInsights_FeatureFlags.monitorFrequency.displayName)") + } + + /// Stop observing and cancel any pending work. + func stop() { + if let observer = loopCompletedObserver { + NotificationCenter.default.removeObserver(observer) + loopCompletedObserver = nil + } + print("[LoopInsights Monitor] Stopped") + } + + /// Restart the monitor (e.g. after settings change). + func restart() { + stop() + start() + } + + // MARK: - Loop Completion Handler + + private func handleLoopCompleted() { + guard LoopInsights_FeatureFlags.backgroundMonitorEnabled else { return } + guard !isRunningAnalysis else { return } + guard shouldRunAnalysis() else { return } + + isRunningAnalysis = true + + Task { + await runBackgroundAnalysis() + await MainActor.run { + isRunningAnalysis = false + } + } + } + + /// Check if enough time has elapsed since the last analysis + private func shouldRunAnalysis() -> Bool { + let frequency = LoopInsights_FeatureFlags.monitorFrequency + let lastAnalysis = UserDefaults.standard.double(forKey: Self.lastAnalysisKey) + + guard lastAnalysis > 0 else { + return true // Never run before + } + + let lastDate = Date(timeIntervalSince1970: lastAnalysis) + let elapsed = Date().timeIntervalSince(lastDate) + return elapsed >= frequency.timeInterval + } + + /// Check if the current time falls within quiet hours + private func isInQuietHours() -> Bool { + guard LoopInsights_FeatureFlags.quietHoursEnabled else { return false } + + let calendar = Calendar.current + let currentHour = calendar.component(.hour, from: Date()) + let start = LoopInsights_FeatureFlags.quietHoursStart + let end = LoopInsights_FeatureFlags.quietHoursEnd + + if start <= end { + // e.g., quiet hours 22-07 wraps around midnight → this is the non-wrapping case like 09-17 + return currentHour >= start && currentHour < end + } else { + // Wraps around midnight: e.g., 22-07 means quiet from 22:00 to 06:59 + return currentHour >= start || currentHour < end + } + } + + // MARK: - Background Analysis + + private func runBackgroundAnalysis() async { + print("[LoopInsights Monitor] Running background analysis...") + + do { + let period = LoopInsights_FeatureFlags.analysisPeriod + let stats = try await coordinator.dataAggregator.aggregateData(period: period) + let snapshot = try coordinator.captureCurrentSnapshot() + + var newSuggestions: [LoopInsightsSuggestion] = [] + let minConfidence = LoopInsights_FeatureFlags.monitorMinConfidence + + // Analyze all three setting types + for settingType in LoopInsightsSettingType.allCases { + let response = try await coordinator.aiAnalysis.analyze( + settingType: settingType, + currentSettings: snapshot, + stats: stats + ) + + // Filter by minimum confidence + let qualifying = response.suggestions.filter { $0.confidence >= minConfidence } + newSuggestions.append(contentsOf: qualifying) + } + + // Update last analysis timestamp + UserDefaults.standard.set(Date().timeIntervalSince1970, forKey: Self.lastAnalysisKey) + + guard !newSuggestions.isEmpty else { + print("[LoopInsights Monitor] No new suggestions found") + return + } + + // Check for genuinely new suggestions (not duplicates of existing pending ones) + let existingPending = coordinator.suggestionStore.pendingRecords + let genuinelyNew = newSuggestions.filter { suggestion in + !existingPending.contains { existing in + existing.suggestion.settingType == suggestion.settingType && + existing.suggestion.timeBlocks.count == suggestion.timeBlocks.count + } + } + + guard !genuinelyNew.isEmpty else { + print("[LoopInsights Monitor] Suggestions match existing pending — no notification needed") + return + } + + // Store the new suggestions + let _ = coordinator.suggestionStore.addSuggestions(genuinelyNew) + + // Deliver notification + await deliverNotification(for: genuinelyNew) + + } catch { + print("[LoopInsights Monitor] Analysis failed: \(error.localizedDescription)") + } + } + + // MARK: - Notification Delivery + + private func deliverNotification(for suggestions: [LoopInsightsSuggestion]) async { + let style = LoopInsights_FeatureFlags.notificationStyle + + // Check quiet hours — still store suggestions but suppress notifications + if isInQuietHours() { + print("[LoopInsights Monitor] Quiet hours active — suppressing notification") + return + } + + guard let primary = suggestions.first else { return } + + switch style { + case .banner: + await deliverInAppBanner(suggestion: primary) + case .push: + await deliverPushNotification(suggestions: suggestions) + case .silent: + // No notification — suggestions are available in the store + print("[LoopInsights Monitor] Silent mode — \(suggestions.count) suggestion(s) stored") + } + } + + private func deliverInAppBanner(suggestion: LoopInsightsSuggestion) async { + await MainActor.run { + latestBackgroundSuggestion = suggestion + showBanner = true + } + } + + private func deliverPushNotification(suggestions: [LoopInsightsSuggestion]) async { + let notification = UNMutableNotificationContent() + notification.title = NSLocalizedString("LoopInsights", comment: "LoopInsights notification title") + + if suggestions.count == 1, let suggestion = suggestions.first { + notification.body = String( + format: NSLocalizedString("New %@ suggestion: %@", comment: "LoopInsights notification body: single suggestion"), + suggestion.settingType.displayName, + suggestion.summaryDescription + ) + } else { + notification.body = String( + format: NSLocalizedString("%d new therapy setting suggestions available", comment: "LoopInsights notification body: multiple suggestions"), + suggestions.count + ) + } + + notification.sound = .default + notification.categoryIdentifier = Self.notificationCategoryID + + let request = UNNotificationRequest( + identifier: "LoopInsights_Background_\(UUID().uuidString)", + content: notification, + trigger: nil + ) + + do { + try await UNUserNotificationCenter.current().add(request) + print("[LoopInsights Monitor] Push notification sent for \(suggestions.count) suggestion(s)") + } catch { + print("[LoopInsights Monitor] Failed to send notification: \(error.localizedDescription)") + } + } + + /// Dismiss the in-app banner + func dismissBanner() { + showBanner = false + latestBackgroundSuggestion = nil + } +} diff --git a/Loop/Managers/LoopInsights/LoopInsights_Coordinator.swift b/Loop/Managers/LoopInsights/LoopInsights_Coordinator.swift index ecd917ebb5..679c68841e 100644 --- a/Loop/Managers/LoopInsights/LoopInsights_Coordinator.swift +++ b/Loop/Managers/LoopInsights/LoopInsights_Coordinator.swift @@ -27,6 +27,9 @@ final class LoopInsights_Coordinator: ObservableObject { let aiAnalysis: LoopInsights_AIAnalysis let suggestionStore: LoopInsights_SuggestionStore + /// Background monitor for proactive suggestions (lazy-initialized) + lazy var backgroundMonitor: LoopInsights_BackgroundMonitor = LoopInsights_BackgroundMonitor(coordinator: self) + // MARK: - Data Provider Bridge private var dataProviderBridge: DataProviderBridge? @@ -87,6 +90,22 @@ final class LoopInsights_Coordinator: ObservableObject { return LoopInsights_Coordinator(testDataProvider: provider) } + // MARK: - Background Monitoring + + /// Start background monitoring if enabled and using real stores (not test data). + func startBackgroundMonitoring() { + guard dataProviderBridge != nil else { + print("[LoopInsights] Skipping background monitor — test data mode") + return + } + backgroundMonitor.start() + } + + /// Stop background monitoring. + func stopBackgroundMonitoring() { + backgroundMonitor.stop() + } + // MARK: - Therapy Settings Write Access /// Capture a snapshot of the current therapy settings diff --git a/Loop/Models/LoopInsights/LoopInsights_Models.swift b/Loop/Models/LoopInsights/LoopInsights_Models.swift index 6d70e564da..947da77f0f 100644 --- a/Loop/Models/LoopInsights/LoopInsights_Models.swift +++ b/Loop/Models/LoopInsights/LoopInsights_Models.swift @@ -673,6 +673,73 @@ enum LoopInsightsError: Error, LocalizedError { } } +// MARK: - Monitor Frequency + +/// How often the background monitor runs AI analysis +enum LoopInsightsMonitorFrequency: String, Codable, CaseIterable, Identifiable { + case sixHours = "six_hours" + case twelveHours = "twelve_hours" + case daily = "daily" + case weekly = "weekly" + + var id: String { rawValue } + + var timeInterval: TimeInterval { + switch self { + case .sixHours: return 6 * 3600 + case .twelveHours: return 12 * 3600 + case .daily: return 24 * 3600 + case .weekly: return 7 * 24 * 3600 + } + } + + var displayName: String { + switch self { + case .sixHours: + return NSLocalizedString("Every 6 Hours", comment: "LoopInsights monitor frequency: 6 hours") + case .twelveHours: + return NSLocalizedString("Every 12 Hours", comment: "LoopInsights monitor frequency: 12 hours") + case .daily: + return NSLocalizedString("Once Daily", comment: "LoopInsights monitor frequency: daily") + case .weekly: + return NSLocalizedString("Once Weekly", comment: "LoopInsights monitor frequency: weekly") + } + } +} + +// MARK: - Notification Style + +/// How the background monitor delivers notifications +enum LoopInsightsNotificationStyle: String, Codable, CaseIterable, Identifiable { + case banner + case push + case silent + + var id: String { rawValue } + + var displayName: String { + switch self { + case .banner: + return NSLocalizedString("In-App Banner", comment: "LoopInsights notification style: banner") + case .push: + return NSLocalizedString("Push Notification", comment: "LoopInsights notification style: push") + case .silent: + return NSLocalizedString("Silent (Badge Only)", comment: "LoopInsights notification style: silent") + } + } + + var description: String { + switch self { + case .banner: + return NSLocalizedString("Shows a banner inside the app when a new suggestion is found.", comment: "LoopInsights notification style desc: banner") + case .push: + return NSLocalizedString("Sends a push notification even when the app is in the background.", comment: "LoopInsights notification style desc: push") + case .silent: + return NSLocalizedString("No alert — suggestions are available when you next open LoopInsights.", comment: "LoopInsights notification style desc: silent") + } + } +} + // MARK: - Debug Log /// Captures the full prompt/response exchange for a single AI analysis call. @@ -685,3 +752,51 @@ struct LoopInsightsDebugLog: Identifiable { let userPrompt: String let rawResponse: String } + +// MARK: - Chat Message + +/// A single message in a LoopInsights chat conversation +struct LoopInsightsChatMessage: Identifiable { + let id: UUID + let role: Role + let content: String + let timestamp: Date + + enum Role: String { + case user + case assistant + case system + } + + init(role: Role, content: String) { + self.id = UUID() + self.role = role + self.content = content + self.timestamp = Date() + } +} + +// MARK: - Chat Session + +/// Manages an in-memory chat session. Conversations are not persisted +/// across app launches — the AI always starts fresh with current data context. +final class LoopInsightsChatSession: ObservableObject { + @Published private(set) var messages: [LoopInsightsChatMessage] = [] + let sessionStarted: Date + + init() { + self.sessionStarted = Date() + } + + func appendMessage(_ message: LoopInsightsChatMessage) { + messages.append(message) + } + + func conversationHistory() -> [(role: String, content: String)] { + return messages.map { ($0.role.rawValue, $0.content) } + } + + func clear() { + messages.removeAll() + } +} diff --git a/Loop/Resources/LoopInsights/LoopInsights_FeatureFlags.swift b/Loop/Resources/LoopInsights/LoopInsights_FeatureFlags.swift index 6c16f7961b..47fb8e96d2 100644 --- a/Loop/Resources/LoopInsights/LoopInsights_FeatureFlags.swift +++ b/Loop/Resources/LoopInsights/LoopInsights_FeatureFlags.swift @@ -21,6 +21,13 @@ struct LoopInsights_FeatureFlags { static let developerUnlockCount = "LoopInsights_developerUnlockCount" static let useTestData = "LoopInsights_useTestData" static let aiPersonality = "LoopInsights_aiPersonality" + static let backgroundMonitorEnabled = "LoopInsights_backgroundMonitorEnabled" + static let monitorFrequency = "LoopInsights_monitorFrequency" + static let monitorMinConfidence = "LoopInsights_monitorMinConfidence" + static let quietHoursEnabled = "LoopInsights_quietHoursEnabled" + static let quietHoursStart = "LoopInsights_quietHoursStart" + static let quietHoursEnd = "LoopInsights_quietHoursEnd" + static let notificationStyle = "LoopInsights_notificationStyle" } private static let defaults = UserDefaults.standard @@ -108,6 +115,80 @@ struct LoopInsights_FeatureFlags { } } + // MARK: - Background Monitor + + /// Master toggle for background monitoring. Defaults to false. + static var backgroundMonitorEnabled: Bool { + get { defaults.bool(forKey: Keys.backgroundMonitorEnabled) } + set { defaults.set(newValue, forKey: Keys.backgroundMonitorEnabled) } + } + + /// How frequently background analysis runs. Defaults to daily. + static var monitorFrequency: LoopInsightsMonitorFrequency { + get { + guard let raw = defaults.string(forKey: Keys.monitorFrequency), + let freq = LoopInsightsMonitorFrequency(rawValue: raw) else { + return .daily + } + return freq + } + set { defaults.set(newValue.rawValue, forKey: Keys.monitorFrequency) } + } + + /// Minimum confidence level for background notifications. Defaults to medium. + static var monitorMinConfidence: LoopInsightsConfidence { + get { + guard let raw = defaults.string(forKey: Keys.monitorMinConfidence), + let conf = LoopInsightsConfidence(rawValue: raw) else { + return .medium + } + return conf + } + set { defaults.set(newValue.rawValue, forKey: Keys.monitorMinConfidence) } + } + + /// Whether quiet hours are enabled. Defaults to false. + static var quietHoursEnabled: Bool { + get { defaults.bool(forKey: Keys.quietHoursEnabled) } + set { defaults.set(newValue, forKey: Keys.quietHoursEnabled) } + } + + /// Quiet hours start (hour 0-23). Defaults to 22 (10 PM). + static var quietHoursStart: Int { + get { + let val = defaults.integer(forKey: Keys.quietHoursStart) + return val == 0 && !defaults.bool(forKey: Keys.quietHoursEnabled + "_startSet") ? 22 : val + } + set { + defaults.set(newValue, forKey: Keys.quietHoursStart) + defaults.set(true, forKey: Keys.quietHoursEnabled + "_startSet") + } + } + + /// Quiet hours end (hour 0-23). Defaults to 7 (7 AM). + static var quietHoursEnd: Int { + get { + let val = defaults.integer(forKey: Keys.quietHoursEnd) + return val == 0 && !defaults.bool(forKey: Keys.quietHoursEnabled + "_endSet") ? 7 : val + } + set { + defaults.set(newValue, forKey: Keys.quietHoursEnd) + defaults.set(true, forKey: Keys.quietHoursEnabled + "_endSet") + } + } + + /// Notification delivery style. Defaults to push. + static var notificationStyle: LoopInsightsNotificationStyle { + get { + guard let raw = defaults.string(forKey: Keys.notificationStyle), + let style = LoopInsightsNotificationStyle(rawValue: raw) else { + return .push + } + return style + } + set { defaults.set(newValue.rawValue, forKey: Keys.notificationStyle) } + } + // MARK: - AI Configuration /// User-configurable AI provider configuration. Persisted to UserDefaults (excluding API key). diff --git a/Loop/View Models/LoopInsights/LoopInsights_ChatViewModel.swift b/Loop/View Models/LoopInsights/LoopInsights_ChatViewModel.swift new file mode 100644 index 0000000000..73fd9b40e7 --- /dev/null +++ b/Loop/View Models/LoopInsights/LoopInsights_ChatViewModel.swift @@ -0,0 +1,227 @@ +// +// LoopInsights_ChatViewModel.swift +// Loop +// +// Concept & design by Taylor Patterson. Coded & tested by Claude Code in February 2026. +// Copyright (c) 2025-2026 LoopKit Authors. All rights reserved. +// + +import Foundation +import Combine + +/// View model for the LoopInsights chat interface. +/// Manages the conversation session, builds chat prompts, sends messages +/// through AIServiceAdapter, and provides quick-ask suggestion chips. +final class LoopInsights_ChatViewModel: ObservableObject { + + // MARK: - Published State + + @Published var messages: [LoopInsightsChatMessage] = [] + @Published var isLoading = false + @Published var inputText = "" + @Published var errorMessage: String? + + // MARK: - Dependencies + + private let session: LoopInsightsChatSession + private let coordinator: LoopInsights_Coordinator + private let serviceAdapter: LoopInsights_AIServiceAdapter + private var cancellables = Set() + + /// Pre-built quick-ask suggestions shown when the conversation is empty + let quickAskSuggestions: [String] = [ + NSLocalizedString("Why am I high overnight?", comment: "LoopInsights quick ask: overnight highs"), + NSLocalizedString("How's my basal rate?", comment: "LoopInsights quick ask: basal rate review"), + NSLocalizedString("Analyze my last 3 days", comment: "LoopInsights quick ask: recent analysis"), + NSLocalizedString("What should I change first?", comment: "LoopInsights quick ask: priority"), + NSLocalizedString("Am I bolusing enough for meals?", comment: "LoopInsights quick ask: meal bolus"), + NSLocalizedString("Why do I go low after exercise?", comment: "LoopInsights quick ask: exercise lows"), + ] + + // MARK: - Initialization + + init(coordinator: LoopInsights_Coordinator, serviceAdapter: LoopInsights_AIServiceAdapter = .shared) { + self.coordinator = coordinator + self.serviceAdapter = serviceAdapter + self.session = LoopInsightsChatSession() + + session.$messages + .receive(on: DispatchQueue.main) + .assign(to: &$messages) + } + + // MARK: - Actions + + /// Send the current input text as a message + func sendMessage() { + let text = inputText.trimmingCharacters(in: .whitespacesAndNewlines) + guard !text.isEmpty, !isLoading else { return } + + inputText = "" + errorMessage = nil + + let userMessage = LoopInsightsChatMessage(role: .user, content: text) + session.appendMessage(userMessage) + + isLoading = true + + Task { @MainActor in + do { + let snapshot = try? coordinator.captureCurrentSnapshot() + let stats = try? await coordinator.dataAggregator.aggregateData( + period: LoopInsights_FeatureFlags.analysisPeriod + ) + let context = Self.buildTherapyContext(snapshot: snapshot, stats: stats) + + let history = session.conversationHistory().dropLast().map { ($0.role, $0.content) } + + let systemPrompt = buildChatSystemPrompt(therapyContext: context) + let userPrompt = buildUserPrompt(message: text, conversationHistory: Array(history)) + + let response = try await serviceAdapter.sendPrompt(systemPrompt, userPrompt: userPrompt) + + let aiMessage = LoopInsightsChatMessage(role: .assistant, content: response) + session.appendMessage(aiMessage) + + isLoading = false + + } catch { + errorMessage = error.localizedDescription + isLoading = false + } + } + } + + /// Send a quick-ask suggestion + func sendQuickAsk(_ question: String) { + inputText = question + sendMessage() + } + + /// Clear the conversation and start fresh + func clearConversation() { + session.clear() + errorMessage = nil + } + + // MARK: - Chat Prompt Building + + private func buildChatSystemPrompt(therapyContext: String) -> String { + let personality = LoopInsights_FeatureFlags.aiPersonality + + return """ + You are an expert diabetes and automated insulin delivery (AID) advisor embedded \ + in the Loop app. The user is wearing an insulin pump managed by Loop's closed-loop \ + algorithm. You have access to their real therapy settings and recent glucose/insulin/carb \ + statistics provided below. + + \(personality.promptInstruction) + + GUIDELINES: + - Answer questions about diabetes management, glucose patterns, therapy settings, and Loop. + - Reference the user's actual data when relevant — don't give generic advice when you have specifics. + - If asked about changing settings, explain the expected impact and always recommend conservative changes. + - You may suggest specific therapy setting adjustments. Frame them clearly as suggestions, not commands. + - Always remind users that significant therapy changes should be discussed with their healthcare provider. + - Keep responses concise but thorough. Use bullet points for multi-part answers. + - If you don't have enough data to answer confidently, say so. + - Never fabricate data or statistics — only reference what's provided in the context below. + + CURRENT DATA CONTEXT: + \(therapyContext) + """ + } + + private func buildUserPrompt( + message: String, + conversationHistory: [(role: String, content: String)] + ) -> String { + if conversationHistory.isEmpty { + return message + } + + var prompt = "CONVERSATION HISTORY:\n" + let recentHistory = conversationHistory.suffix(10) + for entry in recentHistory { + let roleLabel = entry.role == "user" ? "User" : "Assistant" + prompt += "\(roleLabel): \(entry.content)\n\n" + } + prompt += "User: \(message)" + return prompt + } + + // MARK: - Therapy Context + + /// Build a therapy context string from a snapshot and stats. + static func buildTherapyContext( + snapshot: LoopInsightsTherapySnapshot?, + stats: LoopInsightsAggregatedStats? + ) -> String { + var context = "" + + if let snapshot = snapshot { + context += "CURRENT THERAPY SETTINGS:\n" + + context += "Basal Rates:\n" + for item in snapshot.basalRateItems { + context += " \(formatTime(item.startTime)): \(String(format: "%.2f", item.value)) U/hr\n" + } + + context += "Carb Ratios:\n" + for item in snapshot.carbRatioItems { + context += " \(formatTime(item.startTime)): \(String(format: "%.1f", item.value)) g/U\n" + } + + context += "Insulin Sensitivity Factors:\n" + for item in snapshot.insulinSensitivityItems { + context += " \(formatTime(item.startTime)): \(String(format: "%.0f", item.value)) mg/dL per U\n" + } + } + + if let stats = stats { + context += "\nRECENT GLUCOSE STATISTICS (\(stats.period.displayName)):\n" + context += " Average Glucose: \(String(format: "%.0f", stats.glucoseStats.averageGlucose)) mg/dL\n" + context += " Time in Range (70-180): \(String(format: "%.1f", stats.glucoseStats.timeInRange))%\n" + context += " Time Below Range (<70): \(String(format: "%.1f", stats.glucoseStats.timeBelowRange))%\n" + context += " Time Above Range (>180): \(String(format: "%.1f", stats.glucoseStats.timeAboveRange))%\n" + context += " GMI (est. A1C): \(String(format: "%.1f", stats.glucoseStats.gmi))%\n" + context += " Coefficient of Variation: \(String(format: "%.1f", stats.glucoseStats.coefficientOfVariation))%\n" + context += " Standard Deviation: \(String(format: "%.1f", stats.glucoseStats.standardDeviation)) mg/dL\n" + + context += "\nINSULIN STATISTICS:\n" + context += " Total Daily Dose: \(String(format: "%.1f", stats.insulinStats.totalDailyDose)) U/day\n" + context += " Basal %: \(String(format: "%.0f", stats.insulinStats.basalPercentage))%\n" + context += " Bolus %: \(String(format: "%.0f", stats.insulinStats.bolusPercentage))%\n" + context += " Correction Boluses: \(stats.insulinStats.correctionBolusCount)\n" + + context += "\nCARB STATISTICS:\n" + context += " Average Daily Carbs: \(String(format: "%.0f", stats.carbStats.averageDailyCarbs)) g/day\n" + context += " Average Carbs Per Meal: \(String(format: "%.0f", stats.carbStats.averageCarbsPerMeal)) g\n" + context += " Total Meals Logged: \(stats.carbStats.mealCount)\n" + + if !stats.glucoseStats.hourlyAverages.isEmpty { + context += "\nHOURLY GLUCOSE AVERAGES:\n" + for hour in 0..<24 { + if let avg = stats.glucoseStats.hourlyAverages[hour] { + context += " \(String(format: "%02d", hour)):00 — \(String(format: "%.0f", avg)) mg/dL\n" + } + } + } + } + + if context.isEmpty { + context = "No therapy data currently available." + } + + return context + } + + private static func formatTime(_ seconds: TimeInterval) -> String { + let formatter = DateFormatter() + formatter.dateFormat = "h:mm a" + var calendar = Calendar.current + calendar.timeZone = TimeZone.current + let date = calendar.startOfDay(for: Date()).addingTimeInterval(seconds) + return formatter.string(from: date) + } +} diff --git a/Loop/View Models/LoopInsights/LoopInsights_DashboardViewModel.swift b/Loop/View Models/LoopInsights/LoopInsights_DashboardViewModel.swift index 1585c29bca..94a6f3ede6 100644 --- a/Loop/View Models/LoopInsights/LoopInsights_DashboardViewModel.swift +++ b/Loop/View Models/LoopInsights/LoopInsights_DashboardViewModel.swift @@ -68,7 +68,7 @@ final class LoopInsights_DashboardViewModel: ObservableObject { // MARK: - Dependencies - private let coordinator: LoopInsights_Coordinator + let coordinator: LoopInsights_Coordinator private var cancellables = Set() /// Expose suggestion store for views that need direct access @@ -76,6 +76,13 @@ final class LoopInsights_DashboardViewModel: ObservableObject { coordinator.suggestionStore } + /// Expose background monitor for banner overlay in DashboardView. + /// Returns nil if monitoring is disabled. + var backgroundMonitor: LoopInsights_BackgroundMonitor? { + guard LoopInsights_FeatureFlags.backgroundMonitorEnabled else { return nil } + return coordinator.backgroundMonitor + } + // MARK: - Initialization init(coordinator: LoopInsights_Coordinator) { diff --git a/Loop/Views/LoopInsights/LoopInsights_ChatView.swift b/Loop/Views/LoopInsights/LoopInsights_ChatView.swift new file mode 100644 index 0000000000..9531f9765a --- /dev/null +++ b/Loop/Views/LoopInsights/LoopInsights_ChatView.swift @@ -0,0 +1,313 @@ +// +// LoopInsights_ChatView.swift +// Loop +// +// Concept & design by Taylor Patterson. Coded & tested by Claude Code in February 2026. +// Copyright (c) 2025-2026 LoopKit Authors. All rights reserved. +// + +import SwiftUI + +/// Full chat interface for Ask LoopInsights. +/// Dark-themed design with gradient background, purple user bubbles, +/// dark card AI bubbles, and a dark input bar. +struct LoopInsights_ChatView: View { + + @ObservedObject var viewModel: LoopInsights_ChatViewModel + @Environment(\.dismiss) private var dismiss + @FocusState private var isInputFocused: Bool + + var body: some View { + ZStack { + // Dark gradient background + LinearGradient( + colors: [ + Color(red: 0.06, green: 0.07, blue: 0.15), + Color(red: 0.08, green: 0.10, blue: 0.22), + Color(red: 0.05, green: 0.06, blue: 0.14) + ], + startPoint: .topLeading, + endPoint: .bottomTrailing + ) + .ignoresSafeArea() + + VStack(spacing: 0) { + ScrollViewReader { proxy in + ScrollView { + LazyVStack(spacing: 14) { + if viewModel.messages.isEmpty { + emptyStateView + } else { + ForEach(viewModel.messages) { message in + chatBubble(message) + .id(message.id) + } + } + + if viewModel.isLoading { + loadingIndicator + .id("loading") + } + + if let error = viewModel.errorMessage { + errorView(error) + } + } + .padding(.vertical) + } + .onChange(of: viewModel.messages.count) { _ in + withAnimation { + if let lastMessage = viewModel.messages.last { + proxy.scrollTo(lastMessage.id, anchor: .bottom) + } else if viewModel.isLoading { + proxy.scrollTo("loading", anchor: .bottom) + } + } + } + } + + inputBar + } + } + .navigationTitle(NSLocalizedString("Ask LoopInsights", comment: "LoopInsights chat title")) + .navigationBarTitleDisplayMode(.inline) + .toolbar { + ToolbarItem(placement: .navigationBarLeading) { + Button(action: { dismiss() }) { + Image(systemName: "xmark.circle.fill") + .foregroundColor(.white.opacity(0.7)) + } + } + ToolbarItem(placement: .navigationBarTrailing) { + if !viewModel.messages.isEmpty { + Button(action: { viewModel.clearConversation() }) { + Image(systemName: "trash") + .font(.caption) + .foregroundColor(.white.opacity(0.7)) + } + } + } + } + } + + // MARK: - Chat Bubble + + private func chatBubble(_ message: LoopInsightsChatMessage) -> some View { + let isUser = message.role == .user + return HStack(alignment: .bottom, spacing: 8) { + if isUser { Spacer(minLength: 50) } + + if !isUser { + // AI avatar + Image(systemName: "brain.head.profile") + .font(.caption) + .foregroundColor(.purple.opacity(0.8)) + .frame(width: 24, height: 24) + .background(Color.white.opacity(0.1)) + .clipShape(Circle()) + } + + VStack(alignment: isUser ? .trailing : .leading, spacing: 4) { + if isUser { + // Purple gradient user bubble + Text(message.content) + .font(.body) + .foregroundColor(.white) + .padding(.horizontal, 16) + .padding(.vertical, 10) + .background( + LinearGradient( + colors: [ + Color(red: 0.55, green: 0.25, blue: 0.85), + Color(red: 0.75, green: 0.20, blue: 0.65) + ], + startPoint: .topLeading, + endPoint: .bottomTrailing + ) + ) + .clipShape(RoundedRectangle(cornerRadius: 20)) + } else { + // Dark card AI bubble + Text(message.content) + .font(.body) + .foregroundColor(.white.opacity(0.92)) + .textSelection(.enabled) + .padding(.horizontal, 16) + .padding(.vertical, 12) + .background( + RoundedRectangle(cornerRadius: 16) + .fill(Color.white.opacity(0.10)) + ) + } + + Text(Self.timeFormatter.string(from: message.timestamp)) + .font(.caption2) + .foregroundColor(.white.opacity(0.4)) + .padding(.horizontal, 4) + } + + if !isUser { Spacer(minLength: 50) } + } + .padding(.horizontal) + } + + // MARK: - Loading Indicator + + private var loadingIndicator: some View { + HStack(spacing: 8) { + Image(systemName: "brain.head.profile") + .font(.caption) + .foregroundColor(.purple.opacity(0.8)) + .frame(width: 24, height: 24) + .background(Color.white.opacity(0.1)) + .clipShape(Circle()) + + HStack(spacing: 6) { + ProgressView() + .scaleEffect(0.7) + .tint(.white.opacity(0.6)) + Text(NSLocalizedString("Thinking...", comment: "LoopInsights chat: AI thinking")) + .font(.caption) + .foregroundColor(.white.opacity(0.5)) + } + .padding(.horizontal, 14) + .padding(.vertical, 10) + .background( + RoundedRectangle(cornerRadius: 16) + .fill(Color.white.opacity(0.08)) + ) + + Spacer() + } + .padding(.horizontal) + } + + // MARK: - Error View + + private func errorView(_ error: String) -> some View { + HStack(spacing: 6) { + Image(systemName: "exclamationmark.triangle.fill") + .foregroundColor(.red.opacity(0.8)) + Text(error) + .font(.caption) + .foregroundColor(.red.opacity(0.8)) + Spacer() + } + .padding(.horizontal, 16) + .padding(.vertical, 8) + .background( + RoundedRectangle(cornerRadius: 10) + .fill(Color.red.opacity(0.1)) + ) + .padding(.horizontal) + } + + // MARK: - Empty State + + private var emptyStateView: some View { + VStack(spacing: 20) { + Spacer() + .frame(height: 60) + + Image(systemName: "bubble.left.and.bubble.right") + .font(.system(size: 48)) + .foregroundColor(.purple.opacity(0.5)) + + Text(NSLocalizedString("Ask me anything about your diabetes management", comment: "LoopInsights chat empty state title")) + .font(.headline) + .foregroundColor(.white.opacity(0.9)) + .multilineTextAlignment(.center) + + Text(NSLocalizedString("I have access to your current therapy settings and recent glucose data. Try one of the suggestions below or type your own question.", comment: "LoopInsights chat empty state subtitle")) + .font(.subheadline) + .foregroundColor(.white.opacity(0.5)) + .multilineTextAlignment(.center) + .padding(.horizontal) + + // Quick-ask chips + ScrollView(.horizontal, showsIndicators: false) { + HStack(spacing: 10) { + ForEach(viewModel.quickAskSuggestions, id: \.self) { suggestion in + Button(action: { viewModel.sendQuickAsk(suggestion) }) { + Text(suggestion) + .font(.subheadline) + .foregroundColor(.white.opacity(0.8)) + .padding(.horizontal, 14) + .padding(.vertical, 8) + .background( + RoundedRectangle(cornerRadius: 20) + .stroke(Color.purple.opacity(0.5), lineWidth: 1) + ) + } + .buttonStyle(.plain) + } + } + .padding(.horizontal) + } + .padding(.top, 8) + + Spacer() + } + } + + // MARK: - Input Bar + + private var inputBar: some View { + HStack(spacing: 10) { + // Placeholder "+" button (non-functional for now) + Button(action: {}) { + Image(systemName: "plus.circle.fill") + .font(.title3) + .foregroundColor(.white.opacity(0.3)) + } + .disabled(true) + + // Text field area + HStack(spacing: 8) { + TextField( + NSLocalizedString("Ask a question...", comment: "LoopInsights chat input placeholder"), + text: $viewModel.inputText + ) + .textFieldStyle(.plain) + .foregroundColor(.white) + .focused($isInputFocused) + .onSubmit { + viewModel.sendMessage() + } + .tint(.purple) + + // Send button + Button(action: { viewModel.sendMessage() }) { + Image(systemName: "arrow.up.circle.fill") + .font(.title2) + .foregroundColor( + viewModel.inputText.trimmingCharacters(in: .whitespacesAndNewlines).isEmpty || viewModel.isLoading + ? .white.opacity(0.2) + : .purple + ) + } + .disabled(viewModel.inputText.trimmingCharacters(in: .whitespacesAndNewlines).isEmpty || viewModel.isLoading) + } + .padding(.horizontal, 14) + .padding(.vertical, 10) + .background( + RoundedRectangle(cornerRadius: 22) + .fill(Color.white.opacity(0.08)) + ) + } + .padding(.horizontal, 14) + .padding(.vertical, 10) + .background( + Color(red: 0.06, green: 0.07, blue: 0.15) + .ignoresSafeArea(edges: .bottom) + ) + } + + // MARK: - Formatters + + private static let timeFormatter: DateFormatter = { + let formatter = DateFormatter() + formatter.timeStyle = .short + return formatter + }() +} diff --git a/Loop/Views/LoopInsights/LoopInsights_DashboardView.swift b/Loop/Views/LoopInsights/LoopInsights_DashboardView.swift index d906865e80..8ab8053f8b 100644 --- a/Loop/Views/LoopInsights/LoopInsights_DashboardView.swift +++ b/Loop/Views/LoopInsights/LoopInsights_DashboardView.swift @@ -26,6 +26,8 @@ struct LoopInsights_DashboardView: View { @State private var showingHistory = false @State private var showingDebugLog = false + @State private var showingChat = false + @State private var showingTrendsInsights = false @State private var selectedRecord: LoopInsightsSuggestionRecord? @State private var developerTapCount = 0 @@ -132,6 +134,38 @@ struct LoopInsights_DashboardView: View { } } } + .sheet(isPresented: $showingChat) { + NavigationView { + LoopInsights_ChatView( + viewModel: LoopInsights_ChatViewModel(coordinator: viewModel.coordinator) + ) + } + } + .sheet(isPresented: $showingTrendsInsights) { + NavigationView { + LoopInsights_TrendsInsightsView(coordinator: viewModel.coordinator) + } + } + .overlay(alignment: .top) { + if let monitor = viewModel.backgroundMonitor, + monitor.showBanner, + let suggestion = monitor.latestBackgroundSuggestion { + notificationBanner( + suggestion: suggestion, + onView: { + monitor.dismissBanner() + viewModel.loadCurrentSettings() + }, + onAsk: { + monitor.dismissBanner() + showingChat = true + }, + onDismiss: { + monitor.dismissBanner() + } + ) + } + } } // MARK: - Header @@ -665,6 +699,30 @@ struct LoopInsights_DashboardView: View { private var navigationSection: some View { Section { + Button(action: { showingTrendsInsights = true }) { + HStack { + Image(systemName: "chart.line.uptrend.xyaxis") + .foregroundColor(.accentColor) + Text(NSLocalizedString("Trends & Insights", comment: "LoopInsights trends button")) + Spacer() + Image(systemName: "chevron.right") + .font(.caption) + .foregroundColor(.secondary) + } + } + + Button(action: { showingChat = true }) { + HStack { + Image(systemName: "bubble.left.and.bubble.right") + .foregroundColor(.accentColor) + Text(NSLocalizedString("Ask LoopInsights", comment: "LoopInsights chat button")) + Spacer() + Image(systemName: "chevron.right") + .font(.caption) + .foregroundColor(.secondary) + } + } + Button(action: { showingHistory = true }) { HStack { Image(systemName: "clock.arrow.circlepath") @@ -706,6 +764,94 @@ struct LoopInsights_DashboardView: View { } } + // MARK: - Notification Banner + + @ViewBuilder + private func notificationBanner( + suggestion: LoopInsightsSuggestion, + onView: @escaping () -> Void, + onAsk: @escaping () -> Void, + onDismiss: @escaping () -> Void + ) -> some View { + VStack(spacing: 0) { + HStack(spacing: 12) { + Image(systemName: "brain.head.profile") + .font(.title3) + .foregroundColor(.white) + + VStack(alignment: .leading, spacing: 4) { + HStack { + Text(NSLocalizedString("LoopInsights", comment: "LoopInsights banner title")) + .font(.subheadline.weight(.bold)) + .foregroundColor(.white) + Spacer() + HStack(spacing: 4) { + Circle() + .fill(confidenceColor(suggestion.confidence)) + .frame(width: 6, height: 6) + Text(suggestion.confidence.displayName) + .font(.caption2.weight(.bold)) + } + .padding(.horizontal, 6) + .padding(.vertical, 3) + .background(Color.white.opacity(0.2)) + .cornerRadius(8) + .foregroundColor(.white) + } + + Text(suggestion.summaryDescription) + .font(.caption) + .foregroundColor(.white.opacity(0.9)) + .lineLimit(2) + + HStack(spacing: 12) { + Button(action: onView) { + Text(NSLocalizedString("View", comment: "LoopInsights banner view button")) + .font(.caption.weight(.semibold)) + .foregroundColor(.accentColor) + .padding(.horizontal, 16) + .padding(.vertical, 6) + .background(Color.white) + .cornerRadius(14) + } + .buttonStyle(.plain) + + Button(action: onAsk) { + Text(NSLocalizedString("Ask", comment: "LoopInsights banner ask button")) + .font(.caption.weight(.semibold)) + .foregroundColor(.white) + .padding(.horizontal, 16) + .padding(.vertical, 6) + .background(Color.white.opacity(0.25)) + .cornerRadius(14) + } + .buttonStyle(.plain) + + Button(action: onDismiss) { + Text(NSLocalizedString("Dismiss", comment: "LoopInsights banner dismiss button")) + .font(.caption.weight(.medium)) + .foregroundColor(.white.opacity(0.8)) + } + .buttonStyle(.plain) + + Spacer() + } + .padding(.top, 2) + } + } + .padding() + .background( + RoundedRectangle(cornerRadius: 16) + .fill(Color.accentColor.opacity(0.95)) + .shadow(color: .black.opacity(0.2), radius: 8, y: 4) + ) + .padding(.horizontal) + + Spacer() + } + .transition(.move(edge: .top).combined(with: .opacity)) + } + // MARK: - Formatters private static let dateFormatter: DateFormatter = { diff --git a/Loop/Views/LoopInsights/LoopInsights_MonitorSettingsView.swift b/Loop/Views/LoopInsights/LoopInsights_MonitorSettingsView.swift new file mode 100644 index 0000000000..348783a4fc --- /dev/null +++ b/Loop/Views/LoopInsights/LoopInsights_MonitorSettingsView.swift @@ -0,0 +1,240 @@ +// +// LoopInsights_MonitorSettingsView.swift +// Loop +// +// Concept & design by Taylor Patterson. Coded & tested by Claude Code in February 2026. +// Copyright (c) 2025-2026 LoopKit Authors. All rights reserved. +// + +import SwiftUI +import Combine + +// MARK: - View Model + +/// Reads/writes all monitor preferences from LoopInsights_FeatureFlags. +private final class MonitorSettingsViewModel: ObservableObject { + + @Published var isEnabled: Bool { + didSet { LoopInsights_FeatureFlags.backgroundMonitorEnabled = isEnabled } + } + + @Published var frequency: LoopInsightsMonitorFrequency { + didSet { LoopInsights_FeatureFlags.monitorFrequency = frequency } + } + + @Published var minConfidence: LoopInsightsConfidence { + didSet { LoopInsights_FeatureFlags.monitorMinConfidence = minConfidence } + } + + @Published var quietHoursEnabled: Bool { + didSet { LoopInsights_FeatureFlags.quietHoursEnabled = quietHoursEnabled } + } + + @Published var quietHoursStart: Int { + didSet { LoopInsights_FeatureFlags.quietHoursStart = quietHoursStart } + } + + @Published var quietHoursEnd: Int { + didSet { LoopInsights_FeatureFlags.quietHoursEnd = quietHoursEnd } + } + + @Published var notificationStyle: LoopInsightsNotificationStyle { + didSet { LoopInsights_FeatureFlags.notificationStyle = notificationStyle } + } + + init() { + self.isEnabled = LoopInsights_FeatureFlags.backgroundMonitorEnabled + self.frequency = LoopInsights_FeatureFlags.monitorFrequency + self.minConfidence = LoopInsights_FeatureFlags.monitorMinConfidence + self.quietHoursEnabled = LoopInsights_FeatureFlags.quietHoursEnabled + self.quietHoursStart = LoopInsights_FeatureFlags.quietHoursStart + self.quietHoursEnd = LoopInsights_FeatureFlags.quietHoursEnd + self.notificationStyle = LoopInsights_FeatureFlags.notificationStyle + } + + func formatHour(_ hour: Int) -> String { + let formatter = DateFormatter() + formatter.dateFormat = "h a" + var calendar = Calendar.current + calendar.timeZone = TimeZone.current + let date = calendar.startOfDay(for: Date()).addingTimeInterval(TimeInterval(hour * 3600)) + return formatter.string(from: date) + } +} + +// MARK: - View + +/// Settings UI for configuring LoopInsights background monitoring preferences. +/// Allows users to control frequency, confidence thresholds, quiet hours, +/// and notification style. +struct LoopInsights_MonitorSettingsView: View { + + @StateObject private var viewModel = MonitorSettingsViewModel() + + /// Callback to restart the background monitor when settings change + var onSettingsChanged: (() -> Void)? + + var body: some View { + Form { + masterToggleSection + if viewModel.isEnabled { + frequencySection + confidenceSection + quietHoursSection + notificationStyleSection + infoSection + } + } + .navigationTitle(NSLocalizedString("Background Monitoring", comment: "LoopInsights monitor settings title")) + .navigationBarTitleDisplayMode(.inline) + .onDisappear { + onSettingsChanged?() + } + } + + // MARK: - Master Toggle + + private var masterToggleSection: some View { + Section { + Toggle( + NSLocalizedString("Enable Background Monitoring", comment: "LoopInsights monitor toggle"), + isOn: $viewModel.isEnabled + ) + + Text(NSLocalizedString("When enabled, LoopInsights periodically analyzes your data and notifies you when it detects a therapy setting that could be improved.", comment: "LoopInsights monitor description")) + .font(.caption) + .foregroundColor(.secondary) + } + } + + // MARK: - Frequency + + private var frequencySection: some View { + Section(header: Text(NSLocalizedString("ANALYSIS FREQUENCY", comment: "LoopInsights monitor frequency header"))) { + Picker( + NSLocalizedString("Check every", comment: "LoopInsights monitor frequency picker"), + selection: $viewModel.frequency + ) { + ForEach(LoopInsightsMonitorFrequency.allCases) { freq in + Text(freq.displayName).tag(freq) + } + } + + Text(NSLocalizedString("How often LoopInsights runs a full AI analysis on your data. More frequent checks use more API calls.", comment: "LoopInsights monitor frequency description")) + .font(.caption) + .foregroundColor(.secondary) + } + } + + // MARK: - Minimum Confidence + + private var confidenceSection: some View { + Section(header: Text(NSLocalizedString("NOTIFICATION THRESHOLD", comment: "LoopInsights monitor confidence header"))) { + Picker( + NSLocalizedString("Notify for", comment: "LoopInsights monitor confidence picker"), + selection: $viewModel.minConfidence + ) { + Text(NSLocalizedString("All", comment: "LoopInsights confidence filter: all")).tag(LoopInsightsConfidence.low) + Text(NSLocalizedString("Medium & Above", comment: "LoopInsights confidence filter: medium+")).tag(LoopInsightsConfidence.medium) + Text(NSLocalizedString("High Only", comment: "LoopInsights confidence filter: high only")).tag(LoopInsightsConfidence.high) + } + .pickerStyle(.segmented) + + Text(confidenceDescription) + .font(.caption) + .foregroundColor(.secondary) + } + } + + private var confidenceDescription: String { + switch viewModel.minConfidence { + case .low: + return NSLocalizedString("Notify for all suggestions, including low-confidence ones. This may result in more notifications.", comment: "LoopInsights monitor confidence: all desc") + case .medium: + return NSLocalizedString("Notify for medium and high confidence suggestions. Good balance of signal vs. noise.", comment: "LoopInsights monitor confidence: medium+ desc") + case .high: + return NSLocalizedString("Only notify for high confidence suggestions. Fewer notifications, but only the most impactful changes.", comment: "LoopInsights monitor confidence: high only desc") + } + } + + // MARK: - Quiet Hours + + private var quietHoursSection: some View { + Section(header: Text(NSLocalizedString("QUIET HOURS", comment: "LoopInsights monitor quiet hours header"))) { + Toggle( + NSLocalizedString("Enable Quiet Hours", comment: "LoopInsights monitor quiet hours toggle"), + isOn: $viewModel.quietHoursEnabled + ) + + if viewModel.quietHoursEnabled { + HStack { + Text(NSLocalizedString("From", comment: "LoopInsights monitor quiet hours from")) + Spacer() + Picker("", selection: $viewModel.quietHoursStart) { + ForEach(0..<24, id: \.self) { hour in + Text(viewModel.formatHour(hour)).tag(hour) + } + } + .pickerStyle(.menu) + } + + HStack { + Text(NSLocalizedString("To", comment: "LoopInsights monitor quiet hours to")) + Spacer() + Picker("", selection: $viewModel.quietHoursEnd) { + ForEach(0..<24, id: \.self) { hour in + Text(viewModel.formatHour(hour)).tag(hour) + } + } + .pickerStyle(.menu) + } + + Text(NSLocalizedString("Notifications are suppressed during quiet hours. Analysis still runs — results are available when you next open LoopInsights.", comment: "LoopInsights monitor quiet hours description")) + .font(.caption) + .foregroundColor(.secondary) + } + } + } + + // MARK: - Notification Style + + private var notificationStyleSection: some View { + Section(header: Text(NSLocalizedString("NOTIFICATION STYLE", comment: "LoopInsights monitor notification style header"))) { + Picker( + NSLocalizedString("Delivery", comment: "LoopInsights monitor notification picker"), + selection: $viewModel.notificationStyle + ) { + ForEach(LoopInsightsNotificationStyle.allCases) { style in + Text(style.displayName).tag(style) + } + } + + Text(viewModel.notificationStyle.description) + .font(.caption) + .foregroundColor(.secondary) + } + } + + // MARK: - Info + + private var infoSection: some View { + Section { + VStack(alignment: .leading, spacing: 8) { + HStack(spacing: 6) { + Image(systemName: "info.circle") + .foregroundColor(.accentColor) + Text(NSLocalizedString("How it works", comment: "LoopInsights monitor info header")) + .font(.subheadline.weight(.medium)) + } + + Text(NSLocalizedString("Background monitoring piggybacks on Loop's existing ~5 minute cycle. When enough time has passed (based on your frequency setting), it runs a full AI analysis of all three therapy settings. If it finds suggestions that meet your confidence threshold, you'll be notified.", comment: "LoopInsights monitor info description")) + .font(.caption) + .foregroundColor(.secondary) + + Text(NSLocalizedString("Each analysis uses your configured AI provider and consumes API credits. With daily frequency, expect ~3 API calls per day (one per setting type).", comment: "LoopInsights monitor API usage note")) + .font(.caption) + .foregroundColor(.orange) + } + } + } +} diff --git a/Loop/Views/LoopInsights/LoopInsights_SettingsView.swift b/Loop/Views/LoopInsights/LoopInsights_SettingsView.swift index e1b130270b..2614f73a48 100644 --- a/Loop/Views/LoopInsights/LoopInsights_SettingsView.swift +++ b/Loop/Views/LoopInsights/LoopInsights_SettingsView.swift @@ -93,6 +93,7 @@ struct LoopInsights_SettingsView: View { advancedAISection analysisOptionsSection personalitySection + backgroundMonitoringSection dataSection if LoopInsights_FeatureFlags.developerModeEnabled { developerSection @@ -661,6 +662,41 @@ struct LoopInsights_SettingsView: View { } } + // MARK: - Background Monitoring + + private var backgroundMonitoringSection: some View { + Section { + VStack(alignment: .leading, spacing: 12) { + HStack(spacing: 6) { + Image(systemName: "bell.badge") + .foregroundColor(.accentColor) + Text(NSLocalizedString("BACKGROUND MONITORING", comment: "LoopInsights background monitoring header")) + .font(.caption) + .fontWeight(.semibold) + .foregroundColor(.secondary) + .textCase(.uppercase) + } + + NavigationLink { + LoopInsights_MonitorSettingsView() + } label: { + HStack { + Text(NSLocalizedString("Background Monitoring", comment: "LoopInsights background monitoring row")) + Spacer() + Text(LoopInsights_FeatureFlags.backgroundMonitorEnabled + ? LoopInsights_FeatureFlags.monitorFrequency.displayName + : NSLocalizedString("Off", comment: "LoopInsights monitoring off")) + .foregroundColor(.secondary) + } + } + + Text(NSLocalizedString("LoopInsights can continuously monitor your data and proactively notify you when it detects a setting change opportunity.", comment: "LoopInsights background monitoring description")) + .font(.caption) + .foregroundColor(.secondary) + } + } + } + // MARK: - Data private var dataSection: some View { @@ -940,6 +976,9 @@ private class LoopInsights_DashboardContainer: ObservableObject { coordinator = LoopInsights_Coordinator(testDataProvider: provider) } + // Start background monitoring if enabled + coordinator.startBackgroundMonitoring() + let vm = LoopInsights_DashboardViewModel(coordinator: coordinator) // Forward ViewModel's objectWillChange → increment renderTrigger diff --git a/Loop/Views/LoopInsights/LoopInsights_TrendsInsightsView.swift b/Loop/Views/LoopInsights/LoopInsights_TrendsInsightsView.swift new file mode 100644 index 0000000000..3786e5a353 --- /dev/null +++ b/Loop/Views/LoopInsights/LoopInsights_TrendsInsightsView.swift @@ -0,0 +1,722 @@ +// +// LoopInsights_TrendsInsightsView.swift +// Loop +// +// Concept & design by Taylor Patterson. Coded & tested by Claude Code in February 2026. +// Copyright (c) 2025-2026 LoopKit Authors. All rights reserved. +// + +import SwiftUI + +/// Tab-based Trends & Insights view with Daily/Weekly/Monthly/Stats/Advisor tabs. +/// Shows AI-generated summaries of glucose data with stats chips, summary cards, +/// and highlights sections. Dark-themed to match the restyled ChatView. +struct LoopInsights_TrendsInsightsView: View { + + let coordinator: LoopInsights_Coordinator + @Environment(\.dismiss) private var dismiss + @StateObject private var viewModel = TrendsViewModel() + @State private var showingChat = false + + var body: some View { + ZStack { + // Dark gradient background + LinearGradient( + colors: [ + Color(red: 0.06, green: 0.07, blue: 0.15), + Color(red: 0.08, green: 0.10, blue: 0.22), + Color(red: 0.05, green: 0.06, blue: 0.14) + ], + startPoint: .topLeading, + endPoint: .bottomTrailing + ) + .ignoresSafeArea() + + VStack(spacing: 0) { + tabBar + tabContent + } + } + .navigationTitle(NSLocalizedString("Trends & Insights", comment: "LoopInsights trends title")) + .navigationBarTitleDisplayMode(.inline) + .toolbar { + ToolbarItem(placement: .navigationBarLeading) { + Button(action: { dismiss() }) { + Image(systemName: "xmark.circle.fill") + .foregroundColor(.white.opacity(0.7)) + } + } + ToolbarItem(placement: .navigationBarTrailing) { + if viewModel.selectedTab.isTimePeriod { + Button(action: { viewModel.refresh(coordinator: coordinator) }) { + Image(systemName: "arrow.clockwise") + .foregroundColor(.white.opacity(0.7)) + } + .disabled(viewModel.isLoading) + } + } + } + .onAppear { + viewModel.loadIfNeeded(coordinator: coordinator) + } + .sheet(isPresented: $showingChat) { + NavigationView { + LoopInsights_ChatView( + viewModel: LoopInsights_ChatViewModel(coordinator: coordinator) + ) + } + } + } + + // MARK: - Tab Bar + + private var tabBar: some View { + ScrollView(.horizontal, showsIndicators: false) { + HStack(spacing: 8) { + ForEach(TrendsTab.allCases) { tab in + Button(action: { + withAnimation(.easeInOut(duration: 0.2)) { + viewModel.selectedTab = tab + } + if tab == .advisor { + showingChat = true + } else { + viewModel.loadIfNeeded(coordinator: coordinator) + } + }) { + HStack(spacing: 5) { + Image(systemName: tab.icon) + .font(.caption2) + Text(tab.label) + .font(.caption.weight(.medium)) + } + .foregroundColor(viewModel.selectedTab == tab ? .white : .white.opacity(0.5)) + .padding(.horizontal, 14) + .padding(.vertical, 8) + .background( + Capsule() + .fill(viewModel.selectedTab == tab + ? Color.purple.opacity(0.6) + : Color.white.opacity(0.08) + ) + ) + } + .buttonStyle(.plain) + } + } + .padding(.horizontal, 16) + .padding(.vertical, 10) + } + } + + // MARK: - Tab Content + + @ViewBuilder + private var tabContent: some View { + switch viewModel.selectedTab { + case .daily, .weekly, .monthly: + timePeriodContent + case .stats: + statsContent + case .advisor: + // Advisor shows a prompt card; tapping opens chat + advisorContent + } + } + + // MARK: - Time Period Content (Daily/Weekly/Monthly) + + private var timePeriodContent: some View { + ScrollView { + VStack(alignment: .leading, spacing: 16) { + // Date header + dateHeader + + if viewModel.isLoading { + loadingView + } else if let error = viewModel.errorMessage { + errorCard(error) + } else { + // Stats chips + if let stats = viewModel.cachedStats[viewModel.selectedTab] { + statsChipsRow(stats: stats) + } + + // Summary card + if let summary = viewModel.cachedSummaries[viewModel.selectedTab], !summary.isEmpty { + summaryCard(summary) + } + + // Highlights card + if let highlights = viewModel.cachedHighlights[viewModel.selectedTab], !highlights.isEmpty { + highlightsCard(highlights) + } + + // Show placeholder if no data yet + if viewModel.cachedSummaries[viewModel.selectedTab] == nil + && viewModel.cachedStats[viewModel.selectedTab] == nil { + noDataPlaceholder + } + } + } + .padding(.horizontal, 16) + .padding(.bottom, 20) + } + } + + private var dateHeader: some View { + VStack(alignment: .leading, spacing: 4) { + Text(Self.dayFormatter.string(from: Date())) + .font(.title2.weight(.bold)) + .foregroundColor(.white) + + if let generatedAt = viewModel.cachedGeneratedAt[viewModel.selectedTab] { + Text(String( + format: NSLocalizedString("Generated %@ at %@", comment: "LoopInsights trends generated at"), + Self.dateMediumFormatter.string(from: generatedAt), + Self.timeShortFormatter.string(from: generatedAt) + )) + .font(.caption) + .foregroundColor(.white.opacity(0.4)) + } + } + .padding(.top, 8) + } + + private func statsChipsRow(stats: LoopInsightsAggregatedStats) -> some View { + ScrollView(.horizontal, showsIndicators: false) { + HStack(spacing: 10) { + statsChip( + label: NSLocalizedString("TIR", comment: "LoopInsights trends TIR chip"), + value: String(format: "%.0f%%", stats.glucoseStats.timeInRange), + color: tirColor(stats.glucoseStats.timeInRange) + ) + statsChip( + label: NSLocalizedString("Avg", comment: "LoopInsights trends avg chip"), + value: String(format: "%.0f", stats.glucoseStats.averageGlucose), + color: avgColor(stats.glucoseStats.averageGlucose) + ) + statsChip( + label: NSLocalizedString("Readings", comment: "LoopInsights trends readings chip"), + value: "\(stats.glucoseStats.sampleCount)", + color: .teal + ) + statsChip( + label: NSLocalizedString("CV", comment: "LoopInsights trends CV chip"), + value: String(format: "%.0f%%", stats.glucoseStats.coefficientOfVariation), + color: stats.glucoseStats.coefficientOfVariation <= 36 ? .green : .orange + ) + } + } + } + + private func statsChip(label: String, value: String, color: Color) -> some View { + VStack(spacing: 2) { + Text(value) + .font(.subheadline.weight(.bold)) + .foregroundColor(.white) + Text(label) + .font(.caption2) + .foregroundColor(.white.opacity(0.6)) + } + .padding(.horizontal, 16) + .padding(.vertical, 10) + .background( + Capsule() + .fill(color.opacity(0.25)) + ) + .overlay( + Capsule() + .stroke(color.opacity(0.4), lineWidth: 1) + ) + } + + private func summaryCard(_ summary: String) -> some View { + VStack(alignment: .leading, spacing: 10) { + HStack(spacing: 8) { + Image(systemName: "doc.plaintext") + .foregroundColor(.purple.opacity(0.8)) + Text(NSLocalizedString("Summary", comment: "LoopInsights trends summary header")) + .font(.subheadline.weight(.semibold)) + .foregroundColor(.white.opacity(0.9)) + } + + Text(summary) + .font(.subheadline) + .foregroundColor(.white.opacity(0.78)) + .textSelection(.enabled) + .fixedSize(horizontal: false, vertical: true) + } + .padding(16) + .frame(maxWidth: .infinity, alignment: .leading) + .background( + RoundedRectangle(cornerRadius: 14) + .fill(Color.white.opacity(0.08)) + ) + } + + private func highlightsCard(_ highlights: [String]) -> some View { + VStack(alignment: .leading, spacing: 10) { + HStack(spacing: 8) { + Image(systemName: "star.fill") + .foregroundColor(.yellow.opacity(0.8)) + Text(NSLocalizedString("Highlights", comment: "LoopInsights trends highlights header")) + .font(.subheadline.weight(.semibold)) + .foregroundColor(.white.opacity(0.9)) + } + + ForEach(highlights.indices, id: \.self) { index in + HStack(alignment: .top, spacing: 8) { + Text("\u{2022}") + .foregroundColor(.purple.opacity(0.8)) + Text(highlights[index]) + .font(.subheadline) + .foregroundColor(.white.opacity(0.78)) + .fixedSize(horizontal: false, vertical: true) + } + } + } + .padding(16) + .frame(maxWidth: .infinity, alignment: .leading) + .background( + RoundedRectangle(cornerRadius: 14) + .fill(Color.white.opacity(0.08)) + ) + } + + // MARK: - Stats Content + + private var statsContent: some View { + ScrollView { + VStack(alignment: .leading, spacing: 16) { + Text(NSLocalizedString("Detailed Statistics", comment: "LoopInsights trends stats header")) + .font(.title3.weight(.bold)) + .foregroundColor(.white) + .padding(.top, 8) + + if viewModel.isLoading { + loadingView + } else if let stats = viewModel.statsTabData { + // Glucose section + statsSectionCard( + title: NSLocalizedString("Glucose", comment: "LoopInsights trends stats glucose"), + icon: "drop.fill", + rows: [ + (NSLocalizedString("Time in Range (70-180)", comment: ""), String(format: "%.1f%%", stats.glucoseStats.timeInRange)), + (NSLocalizedString("Below Range (<70)", comment: ""), String(format: "%.1f%%", stats.glucoseStats.timeBelowRange)), + (NSLocalizedString("Above Range (>180)", comment: ""), String(format: "%.1f%%", stats.glucoseStats.timeAboveRange)), + (NSLocalizedString("Average Glucose", comment: ""), String(format: "%.0f mg/dL", stats.glucoseStats.averageGlucose)), + (NSLocalizedString("GMI (est. A1C)", comment: ""), String(format: "%.1f%%", stats.glucoseStats.gmi)), + (NSLocalizedString("Coefficient of Variation", comment: ""), String(format: "%.1f%%", stats.glucoseStats.coefficientOfVariation)), + (NSLocalizedString("Std Deviation", comment: ""), String(format: "%.1f mg/dL", stats.glucoseStats.standardDeviation)), + (NSLocalizedString("Readings", comment: ""), "\(stats.glucoseStats.sampleCount)") + ] + ) + + // Insulin section + statsSectionCard( + title: NSLocalizedString("Insulin", comment: "LoopInsights trends stats insulin"), + icon: "syringe.fill", + rows: [ + (NSLocalizedString("Total Daily Dose", comment: ""), String(format: "%.1f U/day", stats.insulinStats.totalDailyDose)), + (NSLocalizedString("Basal", comment: ""), String(format: "%.0f%%", stats.insulinStats.basalPercentage)), + (NSLocalizedString("Bolus", comment: ""), String(format: "%.0f%%", stats.insulinStats.bolusPercentage)), + (NSLocalizedString("Correction Boluses", comment: ""), "\(stats.insulinStats.correctionBolusCount)") + ] + ) + + // Carb section + statsSectionCard( + title: NSLocalizedString("Carbs", comment: "LoopInsights trends stats carbs"), + icon: "fork.knife", + rows: [ + (NSLocalizedString("Daily Average", comment: ""), String(format: "%.0f g/day", stats.carbStats.averageDailyCarbs)), + (NSLocalizedString("Per Meal Average", comment: ""), String(format: "%.0f g", stats.carbStats.averageCarbsPerMeal)), + (NSLocalizedString("Meals Logged", comment: ""), "\(stats.carbStats.mealCount)") + ] + ) + } else { + noDataPlaceholder + } + } + .padding(.horizontal, 16) + .padding(.bottom, 20) + } + .onAppear { + viewModel.loadStatsIfNeeded(coordinator: coordinator) + } + } + + private func statsSectionCard(title: String, icon: String, rows: [(String, String)]) -> some View { + VStack(alignment: .leading, spacing: 10) { + HStack(spacing: 8) { + Image(systemName: icon) + .foregroundColor(.purple.opacity(0.8)) + Text(title) + .font(.subheadline.weight(.semibold)) + .foregroundColor(.white.opacity(0.9)) + } + + ForEach(rows.indices, id: \.self) { index in + HStack { + Text(rows[index].0) + .font(.caption) + .foregroundColor(.white.opacity(0.55)) + Spacer() + Text(rows[index].1) + .font(.caption.weight(.medium)) + .foregroundColor(.white.opacity(0.85)) + } + if index < rows.count - 1 { + Divider() + .background(Color.white.opacity(0.08)) + } + } + } + .padding(16) + .background( + RoundedRectangle(cornerRadius: 14) + .fill(Color.white.opacity(0.08)) + ) + } + + // MARK: - Advisor Content + + private var advisorContent: some View { + VStack(spacing: 24) { + Spacer() + + Image(systemName: "bubble.left.and.bubble.right") + .font(.system(size: 48)) + .foregroundColor(.purple.opacity(0.5)) + + Text(NSLocalizedString("Chat with your AI Advisor", comment: "LoopInsights trends advisor title")) + .font(.headline) + .foregroundColor(.white.opacity(0.9)) + + Text(NSLocalizedString("Ask questions about your glucose trends, therapy settings, and get personalized advice.", comment: "LoopInsights trends advisor subtitle")) + .font(.subheadline) + .foregroundColor(.white.opacity(0.5)) + .multilineTextAlignment(.center) + .padding(.horizontal, 32) + + Button(action: { showingChat = true }) { + HStack(spacing: 8) { + Image(systemName: "message.fill") + Text(NSLocalizedString("Open Chat", comment: "LoopInsights trends advisor button")) + .fontWeight(.semibold) + } + .foregroundColor(.white) + .padding(.horizontal, 28) + .padding(.vertical, 14) + .background( + LinearGradient( + colors: [ + Color(red: 0.55, green: 0.25, blue: 0.85), + Color(red: 0.75, green: 0.20, blue: 0.65) + ], + startPoint: .leading, + endPoint: .trailing + ) + ) + .clipShape(Capsule()) + } + .buttonStyle(.plain) + + Spacer() + } + } + + // MARK: - Shared Components + + private var loadingView: some View { + VStack(spacing: 12) { + Spacer().frame(height: 40) + ProgressView() + .scaleEffect(1.2) + .tint(.purple) + Text(NSLocalizedString("Generating insights...", comment: "LoopInsights trends loading")) + .font(.subheadline) + .foregroundColor(.white.opacity(0.5)) + Spacer().frame(height: 40) + } + .frame(maxWidth: .infinity) + } + + private func errorCard(_ message: String) -> some View { + HStack(spacing: 8) { + Image(systemName: "exclamationmark.triangle.fill") + .foregroundColor(.red.opacity(0.8)) + Text(message) + .font(.caption) + .foregroundColor(.red.opacity(0.8)) + Spacer() + } + .padding(14) + .background( + RoundedRectangle(cornerRadius: 12) + .fill(Color.red.opacity(0.1)) + ) + } + + private var noDataPlaceholder: some View { + VStack(spacing: 12) { + Spacer().frame(height: 40) + Image(systemName: "chart.bar.doc.horizontal") + .font(.system(size: 36)) + .foregroundColor(.white.opacity(0.3)) + Text(NSLocalizedString("Tap refresh to generate insights", comment: "LoopInsights trends no data")) + .font(.subheadline) + .foregroundColor(.white.opacity(0.4)) + Spacer().frame(height: 40) + } + .frame(maxWidth: .infinity) + } + + // MARK: - Color Helpers + + private func tirColor(_ tir: Double) -> Color { + if tir >= 70 { return .green } + if tir >= 50 { return .yellow } + return .red + } + + private func avgColor(_ avg: Double) -> Color { + if avg >= 70 && avg <= 180 { return .green } + if avg >= 60 && avg <= 200 { return .yellow } + return .red + } + + // MARK: - Formatters + + private static let dayFormatter: DateFormatter = { + let f = DateFormatter() + f.dateFormat = "EEEE, MMM d" + return f + }() + + private static let dateMediumFormatter: DateFormatter = { + let f = DateFormatter() + f.dateStyle = .medium + return f + }() + + private static let timeShortFormatter: DateFormatter = { + let f = DateFormatter() + f.timeStyle = .short + return f + }() +} + +// MARK: - Trends Tab Enum + +private enum TrendsTab: String, CaseIterable, Identifiable, Hashable { + case daily + case weekly + case monthly + case stats + case advisor + + var id: String { rawValue } + + var label: String { + switch self { + case .daily: return NSLocalizedString("Daily", comment: "LoopInsights trends tab: daily") + case .weekly: return NSLocalizedString("Weekly", comment: "LoopInsights trends tab: weekly") + case .monthly: return NSLocalizedString("Monthly", comment: "LoopInsights trends tab: monthly") + case .stats: return NSLocalizedString("Stats", comment: "LoopInsights trends tab: stats") + case .advisor: return NSLocalizedString("Advisor", comment: "LoopInsights trends tab: advisor") + } + } + + var icon: String { + switch self { + case .daily: return "sun.max" + case .weekly: return "calendar" + case .monthly: return "calendar.badge.clock" + case .stats: return "chart.bar.fill" + case .advisor: return "bubble.left.and.bubble.right" + } + } + + var isTimePeriod: Bool { + switch self { + case .daily, .weekly, .monthly: return true + default: return false + } + } + + var analysisPeriod: LoopInsightsAnalysisPeriod? { + switch self { + case .daily: return .threeDays + case .weekly: return .sevenDays + case .monthly: return .thirtyDays + default: return nil + } + } +} + +// MARK: - Trends ViewModel + +private final class TrendsViewModel: ObservableObject { + + @Published var selectedTab: TrendsTab = .daily + @Published var isLoading = false + @Published var errorMessage: String? + + // Cached results per tab + var cachedSummaries: [TrendsTab: String] = [:] + var cachedHighlights: [TrendsTab: [String]] = [:] + var cachedStats: [TrendsTab: LoopInsightsAggregatedStats] = [:] + var cachedGeneratedAt: [TrendsTab: Date] = [:] + var statsTabData: LoopInsightsAggregatedStats? + + // MARK: - Load + + func loadIfNeeded(coordinator: LoopInsights_Coordinator) { + guard selectedTab.isTimePeriod else { return } + guard cachedSummaries[selectedTab] == nil else { return } + refresh(coordinator: coordinator) + } + + func loadStatsIfNeeded(coordinator: LoopInsights_Coordinator) { + guard statsTabData == nil else { return } + loadStats(coordinator: coordinator) + } + + func refresh(coordinator: LoopInsights_Coordinator) { + guard selectedTab.isTimePeriod, let period = selectedTab.analysisPeriod else { return } + + isLoading = true + errorMessage = nil + let currentTab = selectedTab + + Task { @MainActor in + do { + // Fetch aggregated stats + let stats = try await coordinator.dataAggregator.aggregateData(period: period) + cachedStats[currentTab] = stats + cachedGeneratedAt[currentTab] = Date() + + // Build a summary prompt + let therapyContext = LoopInsights_ChatViewModel.buildTherapyContext( + snapshot: try? coordinator.captureCurrentSnapshot(), + stats: stats + ) + + let systemPrompt = buildTrendsSystemPrompt() + let userPrompt = buildTrendsUserPrompt( + periodName: currentTab.label, + therapyContext: therapyContext + ) + + let response = try await LoopInsights_AIServiceAdapter.shared.sendPrompt( + systemPrompt, + userPrompt: userPrompt + ) + + // Parse response into summary + highlights + let parsed = parseTrendsResponse(response) + cachedSummaries[currentTab] = parsed.summary + cachedHighlights[currentTab] = parsed.highlights + + isLoading = false + } catch { + errorMessage = error.localizedDescription + isLoading = false + } + } + } + + private func loadStats(coordinator: LoopInsights_Coordinator) { + isLoading = true + errorMessage = nil + + Task { @MainActor in + do { + let stats = try await coordinator.dataAggregator.aggregateData( + period: .sevenDays + ) + statsTabData = stats + isLoading = false + } catch { + errorMessage = error.localizedDescription + isLoading = false + } + } + } + + // MARK: - Prompt Building + + private func buildTrendsSystemPrompt() -> String { + let personality = LoopInsights_FeatureFlags.aiPersonality + + return """ + You are an expert diabetes advisor providing a trends summary for a Loop AID user. \ + \(personality.promptInstruction) + + RESPONSE FORMAT — you MUST use exactly this structure: + + SUMMARY: + Write 2-4 sentences summarizing the user's glucose control for this period. \ + Mention TIR, average glucose, and any notable patterns. Use **bold** for key numbers. + + HIGHLIGHTS: + - First key observation (one sentence) + - Second key observation (one sentence) + - Third key observation (one sentence) + + Keep it concise and actionable. Reference actual numbers from the data. + """ + } + + private func buildTrendsUserPrompt(periodName: String, therapyContext: String) -> String { + return """ + Generate a \(periodName) trends summary for this user's diabetes data: + + \(therapyContext) + """ + } + + // MARK: - Response Parsing + + private func parseTrendsResponse(_ response: String) -> (summary: String, highlights: [String]) { + var summary = "" + var highlights: [String] = [] + + let lines = response.components(separatedBy: "\n") + var section: String? + + for line in lines { + let trimmed = line.trimmingCharacters(in: .whitespaces) + + if trimmed.uppercased().hasPrefix("SUMMARY") { + section = "summary" + continue + } + if trimmed.uppercased().hasPrefix("HIGHLIGHTS") || trimmed.uppercased().hasPrefix("HIGHLIGHT") { + section = "highlights" + continue + } + + if section == "summary" && !trimmed.isEmpty { + if !summary.isEmpty { summary += " " } + summary += trimmed + } + + if section == "highlights" && trimmed.hasPrefix("-") { + let bullet = String(trimmed.dropFirst()).trimmingCharacters(in: .whitespaces) + if !bullet.isEmpty { + highlights.append(bullet) + } + } + } + + // Fallback: if parsing failed, treat entire response as summary + if summary.isEmpty && highlights.isEmpty { + summary = response + } + + return (summary, highlights) + } +} From c5ea7b98815b06facae8e07481a3db7088908403 Mon Sep 17 00:00:00 2001 From: Taylor Date: Thu, 12 Feb 2026 19:36:42 -0800 Subject: [PATCH 04/14] Phase 4: Goals, pattern discovery, reflections, and exportable PDF reports Add clinical goal tracking (TIR, A1C, below-range, custom) with progress bars, AI-powered 30-day pattern discovery with sick day and negative basal detection, timestamped reflection journal with mood tags, and HTML-to-PDF report generation with share sheet. Goals & Patterns accessible from the Dashboard navigation section. --- Loop.xcodeproj/project.pbxproj | 12 + Loop/Localizable.xcstrings | 111 ++- .../LoopInsights_Coordinator.swift | 3 + .../LoopInsights/LoopInsights_GoalStore.swift | 384 +++++++++ .../LoopInsights_ReportGenerator.swift | 256 ++++++ .../LoopInsights_DashboardView.swift | 18 + .../LoopInsights/LoopInsights_GoalsView.swift | 753 ++++++++++++++++++ 7 files changed, 1536 insertions(+), 1 deletion(-) create mode 100644 Loop/Services/LoopInsights/LoopInsights_GoalStore.swift create mode 100644 Loop/Services/LoopInsights/LoopInsights_ReportGenerator.swift create mode 100644 Loop/Views/LoopInsights/LoopInsights_GoalsView.swift diff --git a/Loop.xcodeproj/project.pbxproj b/Loop.xcodeproj/project.pbxproj index c0eb350d71..e371592cd5 100644 --- a/Loop.xcodeproj/project.pbxproj +++ b/Loop.xcodeproj/project.pbxproj @@ -611,6 +611,9 @@ 43CA1D2C89F0E99C9BF8E595 /* LoopInsights_ChatViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1441AF7F093555B0A342E921 /* LoopInsights_ChatViewModel.swift */; }; A5BA458D4C96896EB8F770A8 /* LoopInsights_ChatView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2029C9AA34E59B67467B1756 /* LoopInsights_ChatView.swift */; }; 02DEF744456C1BA094E55A8A /* LoopInsights_MonitorSettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = CF876C4BBAD67542E1E0A979 /* LoopInsights_MonitorSettingsView.swift */; }; + 8D65F67A3D5AE1576364C287 /* LoopInsights_GoalStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0065F6CA2B051676FEE0B7D5 /* LoopInsights_GoalStore.swift */; }; + 2BD98847D48B412626D8AFDF /* LoopInsights_GoalsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 49486DDC8FCBA7675B005E62 /* LoopInsights_GoalsView.swift */; }; + 1AD80F425B1DA688EBAC6653 /* LoopInsights_ReportGenerator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 91CA9C204385601A795C4DF2 /* LoopInsights_ReportGenerator.swift */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -1455,6 +1458,9 @@ 1441AF7F093555B0A342E921 /* LoopInsights_ChatViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoopInsights_ChatViewModel.swift; sourceTree = ""; }; 2029C9AA34E59B67467B1756 /* LoopInsights_ChatView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoopInsights_ChatView.swift; sourceTree = ""; }; CF876C4BBAD67542E1E0A979 /* LoopInsights_MonitorSettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoopInsights_MonitorSettingsView.swift; sourceTree = ""; }; + 0065F6CA2B051676FEE0B7D5 /* LoopInsights_GoalStore.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoopInsights_GoalStore.swift; sourceTree = ""; }; + 49486DDC8FCBA7675B005E62 /* LoopInsights_GoalsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoopInsights_GoalsView.swift; sourceTree = ""; }; + 91CA9C204385601A795C4DF2 /* LoopInsights_ReportGenerator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoopInsights_ReportGenerator.swift; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -2741,6 +2747,7 @@ 2029C9AA34E59B67467B1756 /* LoopInsights_ChatView.swift */, CF876C4BBAD67542E1E0A979 /* LoopInsights_MonitorSettingsView.swift */, EE7AAD3549253FE16941E10D /* LoopInsights_TrendsInsightsView.swift */, + 49486DDC8FCBA7675B005E62 /* LoopInsights_GoalsView.swift */, ); path = LoopInsights; sourceTree = ""; @@ -2762,6 +2769,8 @@ E8F875E984C8C1A149E4242E /* LoopInsights_TestDataProvider.swift */, EF3390DD6BCC87E617CF9C4E /* LoopInsights_SecureStorage.swift */, 186598BBCF20AF6BFDA7C65E /* LoopInsights_SuggestionStore.swift */, + 0065F6CA2B051676FEE0B7D5 /* LoopInsights_GoalStore.swift */, + 91CA9C204385601A795C4DF2 /* LoopInsights_ReportGenerator.swift */, ); path = LoopInsights; sourceTree = ""; @@ -3736,6 +3745,9 @@ 43CA1D2C89F0E99C9BF8E595 /* LoopInsights_ChatViewModel.swift in Sources */, A5BA458D4C96896EB8F770A8 /* LoopInsights_ChatView.swift in Sources */, 02DEF744456C1BA094E55A8A /* LoopInsights_MonitorSettingsView.swift in Sources */, + 8D65F67A3D5AE1576364C287 /* LoopInsights_GoalStore.swift in Sources */, + 2BD98847D48B412626D8AFDF /* LoopInsights_GoalsView.swift in Sources */, + 1AD80F425B1DA688EBAC6653 /* LoopInsights_ReportGenerator.swift in Sources */, 8D0F376E7E338ECB93EE03E0 /* LoopInsights_TrendsInsightsView.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; diff --git a/Loop/Localizable.xcstrings b/Loop/Localizable.xcstrings index df1772e330..fe56d7c174 100644 --- a/Loop/Localizable.xcstrings +++ b/Loop/Localizable.xcstrings @@ -1245,6 +1245,18 @@ } } }, + "%@%@" : { + "comment" : "Displays the current value of a goal, if it has one. The argument is the string “%.1f”.", + "isCommentAutoGenerated" : true, + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "%1$@%2$@" + } + } + } + }, "%@%@ was unable to cancel your current temporary basal rate, which is higher than the new Max Basal limit you have set. This may result in higher insulin delivery than desired.\n\nConsider suspending insulin delivery manually and then immediately resuming to enact basal delivery with the new limit in place." : { "comment" : "Alert text for failing to cancel temp basal (1: reason description, 2: app name)", "localizations" : { @@ -3215,6 +3227,30 @@ "comment" : "A bullet point symbol.", "isCommentAutoGenerated" : true }, + "≤ %@%@" : { + "comment" : "A comparison symbol followed by the target value of a goal, formatted to one decimal place. The argument is the string “%.1f”.", + "isCommentAutoGenerated" : true, + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "≤ %1$@%2$@" + } + } + } + }, + "≥ %@%@" : { + "comment" : "A textual representation of a target value for a goal, using a \"greater than or equal to\" symbol. The value is formatted to one decimal place. The argument is the string “%.1f”.", + "isCommentAutoGenerated" : true, + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "≥ %1$@%2$@" + } + } + } + }, "⚠️" : { "localizations" : { "da" : { @@ -4300,6 +4336,9 @@ } } }, + "A1C Estimate" : { + "comment" : "LoopInsights goal type: A1C target" + }, "Above Range (>180)" : { "comment" : "Description of a glucose reading that is above 180 mg/dL.", "isCommentAutoGenerated" : true @@ -5113,6 +5152,9 @@ } } }, + "Add" : { + "comment" : "LoopInsights add reflection button" + }, "Add a new favorite food" : { "comment" : "Button label to open new favorite food view", "localizations" : { @@ -5422,6 +5464,9 @@ } } }, + "Add Goal" : { + "comment" : "LoopInsights add goal title" + }, "Add item to bottom row" : { "comment" : "Title for Add item", "extractionState" : "stale", @@ -8278,6 +8323,9 @@ } } }, + "Ask" : { + "comment" : "LoopInsights banner ask button" + }, "Ask a question..." : { "comment" : "LoopInsights chat input placeholder" }, @@ -9040,6 +9088,9 @@ } } }, + "Below Range" : { + "comment" : "LoopInsights goal type: hypo reduction" + }, "Below Range (<70)" : { "comment" : "Description of a glucose reading that is below the recommended target range.", "isCommentAutoGenerated" : true @@ -10174,7 +10225,7 @@ } }, "Cancel" : { - "comment" : "Button label for cancel\nButton text to cancel\nCancel button\nCancel button for reset loop alert\nCancel export button title\nLoopInsights pre-fill cancel button\nThe title of the cancel action in an action sheet", + "comment" : "Button label for cancel\nButton text to cancel\nCancel\nCancel button\nCancel button for reset loop alert\nCancel export button title\nLoopInsights pre-fill cancel button\nThe title of the cancel action in an action sheet", "localizations" : { "ar" : { "stringUnit" : { @@ -14471,6 +14522,9 @@ } } }, + "Custom Goal" : { + "comment" : "LoopInsights goal type: custom" + }, "Custom Override" : { "comment" : "The title of the cell indicating a generic temporary override is enabled", "extractionState" : "manual", @@ -16481,6 +16535,9 @@ } } }, + "Discovering patterns..." : { + "comment" : "LoopInsights patterns loading" + }, "Dismiss" : { "comment" : "Default alert dismissal\nLoopInsights banner dismiss button\nLoopInsights dismiss\nThe button label of the action used to dismiss an error alert", "localizations" : { @@ -20913,9 +20970,27 @@ "GMI (est. A1C)" : { "comment" : "LoopInsights GMI label" }, + "Goal name" : { + "comment" : "LoopInsights custom goal name" + }, + "Goal Type" : { + "comment" : "LoopInsights goal type picker" + }, + "Goals" : { + "comment" : "LoopInsights goals section header" + }, + "Goals & Patterns" : { + "comment" : "LoopInsights goals button\nLoopInsights goals view title" + }, + "Good" : { + "comment" : "LoopInsights mood: good" + }, "Good — minor improvements possible" : { "comment" : "LoopInsights score: good" }, + "Great" : { + "comment" : "LoopInsights mood: great" + }, "HARDWARE SOUNDS" : { "localizations" : { "da" : { @@ -21269,6 +21344,9 @@ "How's my basal rate?" : { "comment" : "LoopInsights quick ask: basal rate review" }, + "How's your day going?" : { + "comment" : "LoopInsights reflection placeholder" + }, "https://mysite.herokuapp.com" : { "comment" : "The placeholder text for the nightscout site URL credential", "extractionState" : "manual", @@ -27344,6 +27422,9 @@ } } }, + "New Goal" : { + "comment" : "LoopInsights new goal nav title" + }, "Nightscout" : { "comment" : "The title of the Nightscout service", "extractionState" : "manual", @@ -27740,6 +27821,9 @@ "No fixtures found" : { "comment" : "LoopInsights no fixtures" }, + "No goals set yet" : { + "comment" : "LoopInsights goals empty placeholder" + }, "No Maximum Bolus Configured" : { "comment" : "Alert title for a missing maximum bolus setting error", "localizations" : { @@ -29248,6 +29332,9 @@ } } }, + "Okay" : { + "comment" : "LoopInsights mood: okay" + }, "On" : { "comment" : "Notification Setting Status is On", "localizations" : { @@ -29538,6 +29625,9 @@ } } }, + "Pattern Discovery" : { + "comment" : "LoopInsights patterns section header" + }, "Pending" : { "comment" : "LoopInsights suggestion status: pending review" }, @@ -32981,6 +33071,9 @@ } } }, + "Reflections" : { + "comment" : "LoopInsights reflections section header" + }, "Remote Bolus Entry: %@ U" : { "comment" : "The notification title for a remote bolus. (1: Bolus amount)\nThe notification title for a remote failure. (1: Bolus amount)", "localizations" : { @@ -33608,6 +33701,7 @@ "comment" : "LoopInsights empty history message" }, "Save" : { + "comment" : "Save goal", "localizations" : { "da" : { "stringUnit" : { @@ -35602,6 +35696,9 @@ }, "System Prompt" : { + }, + "Tap + to set a clinical goal like TIR > 80%" : { + "comment" : "LoopInsights goals empty hint" }, "Tap here to set up a CGM" : { "comment" : "Descriptive text for button to add CGM device", @@ -35891,6 +35988,9 @@ "Tap one of your current Therapy Settings" : { "comment" : "LoopInsights current settings header" }, + "Tap refresh to discover patterns" : { + "comment" : "LoopInsights patterns empty" + }, "Tap refresh to generate insights" : { "comment" : "LoopInsights trends no data" }, @@ -36291,6 +36391,9 @@ } } }, + "Target:" : { + "comment" : "LoopInsights goal target\nLoopInsights goal target label" + }, "Test Connection" : { "comment" : "LoopInsights test connection button" }, @@ -37556,6 +37659,9 @@ "This will restore your therapy settings to the values they had before this suggestion was applied." : { "comment" : "LoopInsights revert confirmation message" }, + "Time in Range" : { + "comment" : "LoopInsights goal type: TIR target" + }, "Time in Range (70-180)" : { "comment" : "LoopInsights TIR label with range" }, @@ -37710,6 +37816,9 @@ "Total Daily Dose" : { "comment" : "LoopInsights TDD label" }, + "Tough" : { + "comment" : "LoopInsights mood: tough" + }, "Tough Love" : { "comment" : "LoopInsights personality: tough love" }, diff --git a/Loop/Managers/LoopInsights/LoopInsights_Coordinator.swift b/Loop/Managers/LoopInsights/LoopInsights_Coordinator.swift index 679c68841e..83629f483a 100644 --- a/Loop/Managers/LoopInsights/LoopInsights_Coordinator.swift +++ b/Loop/Managers/LoopInsights/LoopInsights_Coordinator.swift @@ -26,6 +26,7 @@ final class LoopInsights_Coordinator: ObservableObject { let dataAggregator: LoopInsights_DataAggregator let aiAnalysis: LoopInsights_AIAnalysis let suggestionStore: LoopInsights_SuggestionStore + let goalStore: LoopInsights_GoalStore /// Background monitor for proactive suggestions (lazy-initialized) lazy var backgroundMonitor: LoopInsights_BackgroundMonitor = LoopInsights_BackgroundMonitor(coordinator: self) @@ -62,6 +63,7 @@ final class LoopInsights_Coordinator: ObservableObject { self.dataAggregator = LoopInsights_DataAggregator(dataProvider: bridge) self.aiAnalysis = LoopInsights_AIAnalysis() self.suggestionStore = LoopInsights_SuggestionStore.shared + self.goalStore = LoopInsights_GoalStore.shared } /// Initialize with test data fixtures (for simulator/developer mode). @@ -73,6 +75,7 @@ final class LoopInsights_Coordinator: ObservableObject { self.dataAggregator = LoopInsights_DataAggregator(dataProvider: testDataProvider) self.aiAnalysis = LoopInsights_AIAnalysis() self.suggestionStore = LoopInsights_SuggestionStore.shared + self.goalStore = LoopInsights_GoalStore.shared } /// Factory method: creates a Coordinator with test data if available and enabled, diff --git a/Loop/Services/LoopInsights/LoopInsights_GoalStore.swift b/Loop/Services/LoopInsights/LoopInsights_GoalStore.swift new file mode 100644 index 0000000000..6c0328b119 --- /dev/null +++ b/Loop/Services/LoopInsights/LoopInsights_GoalStore.swift @@ -0,0 +1,384 @@ +// +// LoopInsights_GoalStore.swift +// Loop +// +// Concept & design by Taylor Patterson. Coded & tested by Claude Code in February 2026. +// Copyright (c) 2025-2026 LoopKit Authors. All rights reserved. +// + +import Foundation + +// MARK: - Goal Type + +/// Types of clinical goals users can track +enum LoopInsightsGoalType: String, Codable, CaseIterable, Identifiable { + case tirTarget = "tir_target" + case a1cTarget = "a1c_target" + case hypoReduction = "hypo_reduction" + case custom = "custom" + + var id: String { rawValue } + + var displayName: String { + switch self { + case .tirTarget: + return NSLocalizedString("Time in Range", comment: "LoopInsights goal type: TIR target") + case .a1cTarget: + return NSLocalizedString("A1C Estimate", comment: "LoopInsights goal type: A1C target") + case .hypoReduction: + return NSLocalizedString("Below Range", comment: "LoopInsights goal type: hypo reduction") + case .custom: + return NSLocalizedString("Custom Goal", comment: "LoopInsights goal type: custom") + } + } + + var icon: String { + switch self { + case .tirTarget: return "target" + case .a1cTarget: return "chart.line.downtrend.xyaxis" + case .hypoReduction: return "arrow.down.circle" + case .custom: return "star" + } + } + + var unit: String { + switch self { + case .tirTarget: return "%" + case .a1cTarget: return "%" + case .hypoReduction: return "%" + case .custom: return "" + } + } + + /// Default target value for each goal type + var defaultTarget: Double { + switch self { + case .tirTarget: return 80 + case .a1cTarget: return 6.5 + case .hypoReduction: return 2 + case .custom: return 0 + } + } + + /// Whether lower is better (e.g., A1C, below-range %) + var lowerIsBetter: Bool { + switch self { + case .tirTarget: return false + case .a1cTarget: return true + case .hypoReduction: return true + case .custom: return false + } + } +} + +// MARK: - Goal Model + +/// A user-set clinical goal with progress tracking +struct LoopInsightsGoal: Codable, Identifiable { + let id: UUID + let type: LoopInsightsGoalType + var targetValue: Double + var currentValue: Double + var customLabel: String? + let createdAt: Date + var achieved: Bool + + init(type: LoopInsightsGoalType, targetValue: Double, currentValue: Double = 0, customLabel: String? = nil) { + self.id = UUID() + self.type = type + self.targetValue = targetValue + self.currentValue = currentValue + self.customLabel = customLabel + self.createdAt = Date() + self.achieved = false + } + + /// Display label (uses customLabel for custom goals, otherwise type displayName) + var displayLabel: String { + if type == .custom, let label = customLabel, !label.isEmpty { + return label + } + return type.displayName + } + + /// Progress from 0.0 to 1.0 + var progress: Double { + guard targetValue != 0 else { return 0 } + if type.lowerIsBetter { + // For lower-is-better goals: progress increases as current drops toward/below target + guard currentValue > 0 else { return 1.0 } + // If current is at or below target, we're done + if currentValue <= targetValue { return 1.0 } + // Use a reasonable "starting" value to measure progress from + let startValue = max(targetValue * 3, currentValue) + let range = startValue - targetValue + guard range > 0 else { return 1.0 } + return min(1.0, max(0, (startValue - currentValue) / range)) + } else { + return min(1.0, max(0, currentValue / targetValue)) + } + } +} + +// MARK: - Mood Tag + +/// Mood tag for reflections +enum LoopInsightsMoodTag: String, Codable, CaseIterable, Identifiable { + case great + case good + case okay + case tough + + var id: String { rawValue } + + var displayName: String { + switch self { + case .great: return NSLocalizedString("Great", comment: "LoopInsights mood: great") + case .good: return NSLocalizedString("Good", comment: "LoopInsights mood: good") + case .okay: return NSLocalizedString("Okay", comment: "LoopInsights mood: okay") + case .tough: return NSLocalizedString("Tough", comment: "LoopInsights mood: tough") + } + } + + var emoji: String { + switch self { + case .great: return "😊" + case .good: return "🙂" + case .okay: return "😐" + case .tough: return "😓" + } + } + + var color: String { + switch self { + case .great: return "green" + case .good: return "blue" + case .okay: return "orange" + case .tough: return "red" + } + } +} + +// MARK: - Reflection Model + +/// A timestamped journal entry with mood tag +struct LoopInsightsReflection: Codable, Identifiable { + let id: UUID + let text: String + let mood: LoopInsightsMoodTag + let timestamp: Date + + init(text: String, mood: LoopInsightsMoodTag) { + self.id = UUID() + self.text = text + self.mood = mood + self.timestamp = Date() + } +} + +// MARK: - Cached Pattern Model + +/// An AI-discovered pattern cached per session +struct LoopInsightsCachedPattern: Codable, Identifiable { + let id: UUID + let type: String + let description: String + let severity: String + let detectedAt: Date + let expiresAt: Date + + init(type: String, description: String, severity: String, ttlMinutes: Int = 60) { + self.id = UUID() + self.type = type + self.description = description + self.severity = severity + self.detectedAt = Date() + self.expiresAt = Date().addingTimeInterval(TimeInterval(ttlMinutes * 60)) + } + + var isExpired: Bool { + return Date() > expiresAt + } +} + +// MARK: - Goal Store + +/// Singleton store for LoopInsights goals, reflections, and cached patterns. +/// UserDefaults-backed JSON persistence. +final class LoopInsights_GoalStore: ObservableObject { + + static let shared = LoopInsights_GoalStore() + + private static let goalsKey = "LoopInsights_Goals" + private static let reflectionsKey = "LoopInsights_Reflections" + private static let patternsKey = "LoopInsights_CachedPatterns" + + private let defaults = UserDefaults.standard + private let encoder = JSONEncoder() + private let decoder = JSONDecoder() + + @Published private(set) var goals: [LoopInsightsGoal] = [] + @Published private(set) var reflections: [LoopInsightsReflection] = [] + @Published private(set) var cachedPatterns: [LoopInsightsCachedPattern] = [] + + private init() { + loadGoals() + loadReflections() + loadPatterns() + } + + // MARK: - Goals API + + /// Add a new goal + @discardableResult + func addGoal(type: LoopInsightsGoalType, targetValue: Double, customLabel: String? = nil) -> LoopInsightsGoal { + let goal = LoopInsightsGoal(type: type, targetValue: targetValue, customLabel: customLabel) + goals.append(goal) + saveGoals() + return goal + } + + /// Update goal's current value and check achievement + func updateGoal(id: UUID, currentValue: Double) { + guard let index = goals.firstIndex(where: { $0.id == id }) else { return } + goals[index].currentValue = currentValue + + // Check if goal is achieved + let goal = goals[index] + if goal.type.lowerIsBetter { + goals[index].achieved = currentValue <= goal.targetValue + } else { + goals[index].achieved = currentValue >= goal.targetValue + } + + saveGoals() + } + + /// Delete a goal + func deleteGoal(id: UUID) { + goals.removeAll { $0.id == id } + saveGoals() + } + + /// All goals sorted by creation date (newest first) + var allGoals: [LoopInsightsGoal] { + return goals.sorted { $0.createdAt > $1.createdAt } + } + + // MARK: - Reflections API + + /// Add a new reflection + @discardableResult + func addReflection(text: String, mood: LoopInsightsMoodTag) -> LoopInsightsReflection { + let reflection = LoopInsightsReflection(text: text, mood: mood) + reflections.append(reflection) + saveReflections() + return reflection + } + + /// Delete a reflection + func deleteReflection(id: UUID) { + reflections.removeAll { $0.id == id } + saveReflections() + } + + /// All reflections sorted by timestamp (newest first) + var allReflections: [LoopInsightsReflection] { + return reflections.sorted { $0.timestamp > $1.timestamp } + } + + /// Most recent N reflections + func recentReflections(limit: Int = 5) -> [LoopInsightsReflection] { + return Array(allReflections.prefix(limit)) + } + + // MARK: - Pattern Cache API + + /// Cache AI-discovered patterns + func cachePatterns(_ patterns: [LoopInsightsCachedPattern]) { + cachedPatterns = patterns + savePatterns() + } + + /// Get non-expired cached patterns + var validPatterns: [LoopInsightsCachedPattern] { + return cachedPatterns.filter { !$0.isExpired } + } + + /// Clear expired patterns + func pruneExpiredPatterns() { + let before = cachedPatterns.count + cachedPatterns.removeAll { $0.isExpired } + if cachedPatterns.count != before { + savePatterns() + } + } + + // MARK: - Persistence + + private func loadGoals() { + guard let data = defaults.data(forKey: Self.goalsKey) else { + goals = [] + return + } + do { + goals = try decoder.decode([LoopInsightsGoal].self, from: data) + } catch { + print("[LoopInsights] Failed to decode goals: \(error)") + goals = [] + } + } + + private func saveGoals() { + do { + let data = try encoder.encode(goals) + defaults.set(data, forKey: Self.goalsKey) + } catch { + print("[LoopInsights] Failed to encode goals: \(error)") + } + } + + private func loadReflections() { + guard let data = defaults.data(forKey: Self.reflectionsKey) else { + reflections = [] + return + } + do { + reflections = try decoder.decode([LoopInsightsReflection].self, from: data) + } catch { + print("[LoopInsights] Failed to decode reflections: \(error)") + reflections = [] + } + } + + private func saveReflections() { + do { + let data = try encoder.encode(reflections) + defaults.set(data, forKey: Self.reflectionsKey) + } catch { + print("[LoopInsights] Failed to encode reflections: \(error)") + } + } + + private func loadPatterns() { + guard let data = defaults.data(forKey: Self.patternsKey) else { + cachedPatterns = [] + return + } + do { + cachedPatterns = try decoder.decode([LoopInsightsCachedPattern].self, from: data) + } catch { + print("[LoopInsights] Failed to decode cached patterns: \(error)") + cachedPatterns = [] + } + } + + private func savePatterns() { + do { + let data = try encoder.encode(cachedPatterns) + defaults.set(data, forKey: Self.patternsKey) + } catch { + print("[LoopInsights] Failed to encode cached patterns: \(error)") + } + } +} diff --git a/Loop/Services/LoopInsights/LoopInsights_ReportGenerator.swift b/Loop/Services/LoopInsights/LoopInsights_ReportGenerator.swift new file mode 100644 index 0000000000..88baf28be8 --- /dev/null +++ b/Loop/Services/LoopInsights/LoopInsights_ReportGenerator.swift @@ -0,0 +1,256 @@ +// +// LoopInsights_ReportGenerator.swift +// Loop +// +// Concept & design by Taylor Patterson. Coded & tested by Claude Code in February 2026. +// Copyright (c) 2025-2026 LoopKit Authors. All rights reserved. +// + +import UIKit +import SwiftUI + +/// Generates HTML→PDF reports for LoopInsights data (stats, goals, patterns, reflections). +/// Reports can be shared via the system share sheet. +final class LoopInsights_ReportGenerator { + + // MARK: - HTML Generation + + /// Generate a complete HTML report from LoopInsights data. + static func generateHTML( + stats: LoopInsightsAggregatedStats?, + goals: [LoopInsightsGoal], + patterns: [LoopInsightsCachedPattern], + reflections: [LoopInsightsReflection] + ) -> String { + let dateFormatter = DateFormatter() + dateFormatter.dateStyle = .long + dateFormatter.timeStyle = .short + + let shortDateFormatter = DateFormatter() + shortDateFormatter.dateStyle = .medium + + let now = Date() + let periodLabel = stats?.period.displayName ?? "N/A" + let startDate: Date + if let stats = stats { + startDate = now.addingTimeInterval(-stats.period.timeInterval) + } else { + startDate = now.addingTimeInterval(-14 * 24 * 3600) + } + + var html = """ + + + + + + + +

LoopInsights Report

+
+ Period: \(shortDateFormatter.string(from: startDate)) – \(shortDateFormatter.string(from: now)) (\(periodLabel))
+ Generated: \(dateFormatter.string(from: now)) +
+ """ + + // Glucose Section + if let stats = stats { + html += """ +

Glucose

+ + + + + + + + + +
Time in Range (70-180)\(String(format: "%.1f%%", stats.glucoseStats.timeInRange))
Average Glucose\(String(format: "%.0f mg/dL", stats.glucoseStats.averageGlucose))
GMI (est. A1C)\(String(format: "%.1f%%", stats.glucoseStats.gmi))
Coefficient of Variation\(String(format: "%.1f%%", stats.glucoseStats.coefficientOfVariation))
Below Range (<70)\(String(format: "%.1f%%", stats.glucoseStats.timeBelowRange))
Above Range (>180)\(String(format: "%.1f%%", stats.glucoseStats.timeAboveRange))
Std Deviation\(String(format: "%.1f mg/dL", stats.glucoseStats.standardDeviation))
Readings\(stats.glucoseStats.sampleCount)
+ """ + + // Insulin Section + html += """ +

Insulin

+ + + + + +
Total Daily Dose\(String(format: "%.1f U/day", stats.insulinStats.totalDailyDose))
Basal\(String(format: "%.0f%%", stats.insulinStats.basalPercentage))
Bolus\(String(format: "%.0f%%", stats.insulinStats.bolusPercentage))
Correction Boluses\(stats.insulinStats.correctionBolusCount)
+ """ + + // Carbs Section + html += """ +

Carbs

+ + + + +
Daily Average\(String(format: "%.0f g/day", stats.carbStats.averageDailyCarbs))
Per Meal Average\(String(format: "%.0f g", stats.carbStats.averageCarbsPerMeal))
Meals Logged\(stats.carbStats.mealCount)
+ """ + } + + // Goals Section + if !goals.isEmpty { + html += "

Goals

" + for goal in goals { + let statusText = goal.achieved + ? "Achieved" + : "\(String(format: "%.1f", goal.currentValue))\(goal.type.unit) / \(String(format: "%.1f", goal.targetValue))\(goal.type.unit)" + html += """ +
+ \(escapeHTML(goal.displayLabel)) — \(statusText) +
+ """ + } + } + + // Patterns Section + if !patterns.isEmpty { + html += "

Patterns

" + for pattern in patterns { + html += """ +
+
\(escapeHTML(pattern.type))
+
\(escapeHTML(pattern.description))
+
+ """ + } + } + + // Reflections Section (last 5) + let recentReflections = Array(reflections.prefix(5)) + if !recentReflections.isEmpty { + html += "

Recent Reflections

" + let reflectionDateFormatter = DateFormatter() + reflectionDateFormatter.dateStyle = .medium + reflectionDateFormatter.timeStyle = .short + + for reflection in recentReflections { + html += """ +
+ \(reflectionDateFormatter.string(from: reflection.timestamp)) + \(reflection.mood.emoji) \(reflection.mood.displayName) +
\(escapeHTML(reflection.text))
+
+ """ + } + } + + // Disclaimer + html += """ +
+ This report is generated by LoopInsights for informational purposes only. It is not a substitute for + professional medical advice, diagnosis, or treatment. Always consult your healthcare provider before + making changes to your diabetes therapy. +
+ + + """ + + return html + } + + // MARK: - PDF Generation + + /// Generate a PDF file from HTML content. Returns URL to temp file. + static func generatePDF(from html: String) async -> URL? { + return await MainActor.run { + let formatter = UIMarkupTextPrintFormatter(markupText: html) + + let renderer = UIPrintPageRenderer() + renderer.addPrintFormatter(formatter, startingAtPageAt: 0) + + // A4 page size + let pageRect = CGRect(x: 0, y: 0, width: 595.2, height: 841.8) + let printableRect = pageRect.insetBy(dx: 36, dy: 36) + + renderer.setValue(NSValue(cgRect: pageRect), forKey: "paperRect") + renderer.setValue(NSValue(cgRect: printableRect), forKey: "printableRect") + + let pdfData = NSMutableData() + UIGraphicsBeginPDFContextToData(pdfData, pageRect, nil) + + for i in 0.. String { + return string + .replacingOccurrences(of: "&", with: "&") + .replacingOccurrences(of: "<", with: "<") + .replacingOccurrences(of: ">", with: ">") + .replacingOccurrences(of: "\"", with: """) + } +} + +// MARK: - Share Sheet (UIViewControllerRepresentable) + +/// SwiftUI wrapper for UIActivityViewController to share PDFs and other items. +struct LoopInsights_ActivityViewRepresentable: UIViewControllerRepresentable { + let activityItems: [Any] + let applicationActivities: [UIActivity]? + + init(activityItems: [Any], applicationActivities: [UIActivity]? = nil) { + self.activityItems = activityItems + self.applicationActivities = applicationActivities + } + + func makeUIViewController(context: Context) -> UIActivityViewController { + return UIActivityViewController( + activityItems: activityItems, + applicationActivities: applicationActivities + ) + } + + func updateUIViewController(_ uiViewController: UIActivityViewController, context: Context) {} +} diff --git a/Loop/Views/LoopInsights/LoopInsights_DashboardView.swift b/Loop/Views/LoopInsights/LoopInsights_DashboardView.swift index 8ab8053f8b..fdc13ccc19 100644 --- a/Loop/Views/LoopInsights/LoopInsights_DashboardView.swift +++ b/Loop/Views/LoopInsights/LoopInsights_DashboardView.swift @@ -28,6 +28,7 @@ struct LoopInsights_DashboardView: View { @State private var showingDebugLog = false @State private var showingChat = false @State private var showingTrendsInsights = false + @State private var showingGoals = false @State private var selectedRecord: LoopInsightsSuggestionRecord? @State private var developerTapCount = 0 @@ -146,6 +147,11 @@ struct LoopInsights_DashboardView: View { LoopInsights_TrendsInsightsView(coordinator: viewModel.coordinator) } } + .sheet(isPresented: $showingGoals) { + NavigationView { + LoopInsights_GoalsView(coordinator: viewModel.coordinator) + } + } .overlay(alignment: .top) { if let monitor = viewModel.backgroundMonitor, monitor.showBanner, @@ -711,6 +717,18 @@ struct LoopInsights_DashboardView: View { } } + Button(action: { showingGoals = true }) { + HStack { + Image(systemName: "target") + .foregroundColor(.accentColor) + Text(NSLocalizedString("Goals & Patterns", comment: "LoopInsights goals button")) + Spacer() + Image(systemName: "chevron.right") + .font(.caption) + .foregroundColor(.secondary) + } + } + Button(action: { showingChat = true }) { HStack { Image(systemName: "bubble.left.and.bubble.right") diff --git a/Loop/Views/LoopInsights/LoopInsights_GoalsView.swift b/Loop/Views/LoopInsights/LoopInsights_GoalsView.swift new file mode 100644 index 0000000000..5e676958b3 --- /dev/null +++ b/Loop/Views/LoopInsights/LoopInsights_GoalsView.swift @@ -0,0 +1,753 @@ +// +// LoopInsights_GoalsView.swift +// Loop +// +// Concept & design by Taylor Patterson. Coded & tested by Claude Code in February 2026. +// Copyright (c) 2025-2026 LoopKit Authors. All rights reserved. +// + +import SwiftUI + +/// Combined Goals, Pattern Discovery, and Reflections view. +/// Light/Dark mode agnostic — adapts to the system appearance. +/// Presented as sheet from Dashboard. +struct LoopInsights_GoalsView: View { + + let coordinator: LoopInsights_Coordinator + @Environment(\.dismiss) private var dismiss + @StateObject private var viewModel = GoalsViewModel() + + var body: some View { + List { + goalsSection + patternsSection + reflectionsSection + } + .navigationTitle(NSLocalizedString("Goals & Patterns", comment: "LoopInsights goals view title")) + .navigationBarTitleDisplayMode(.inline) + .toolbar { + ToolbarItem(placement: .navigationBarLeading) { + Button(action: { dismiss() }) { + Image(systemName: "xmark.circle.fill") + .foregroundColor(.secondary) + } + } + ToolbarItem(placement: .navigationBarTrailing) { + Button(action: { viewModel.generateReport(coordinator: coordinator) }) { + Image(systemName: "square.and.arrow.up") + } + .disabled(viewModel.isGeneratingReport) + } + } + .onAppear { + viewModel.loadData(coordinator: coordinator) + } + .sheet(isPresented: $viewModel.showingShareSheet) { + if let url = viewModel.reportURL { + LoopInsights_ActivityViewRepresentable(activityItems: [url]) + } + } + .sheet(isPresented: $viewModel.showingAddGoal) { + NavigationView { + addGoalSheet + } + } + } + + // MARK: - Goals Section + + private var goalsSection: some View { + Section(header: HStack { + Image(systemName: "target") + Text(NSLocalizedString("Goals", comment: "LoopInsights goals section header")) + Spacer() + Button(action: { viewModel.showingAddGoal = true }) { + Image(systemName: "plus.circle.fill") + .foregroundColor(.green) + .font(.title3) + } + .buttonStyle(.plain) + }) { + if viewModel.goals.isEmpty { + emptyGoalsPlaceholder + } else { + ForEach(viewModel.goals) { goal in + goalRow(goal) + } + } + } + } + + private var emptyGoalsPlaceholder: some View { + VStack(spacing: 8) { + Image(systemName: "target") + .font(.system(size: 28)) + .foregroundColor(.secondary.opacity(0.5)) + Text(NSLocalizedString("No goals set yet", comment: "LoopInsights goals empty placeholder")) + .font(.subheadline) + .foregroundColor(.secondary) + Text(NSLocalizedString("Tap + to set a clinical goal like TIR > 80%", comment: "LoopInsights goals empty hint")) + .font(.caption) + .foregroundColor(.secondary.opacity(0.7)) + } + .frame(maxWidth: .infinity) + .padding(.vertical, 12) + } + + private func goalRow(_ goal: LoopInsightsGoal) -> some View { + VStack(alignment: .leading, spacing: 8) { + HStack { + Image(systemName: goal.type.icon) + .foregroundColor(goal.achieved ? .green : .accentColor) + .frame(width: 20) + + Text(goal.displayLabel) + .font(.subheadline.weight(.semibold)) + + Spacer() + + if goal.achieved { + Image(systemName: "checkmark.circle.fill") + .foregroundColor(.green) + } else { + Text("\(String(format: "%.1f", goal.currentValue))\(goal.type.unit)") + .font(.caption.weight(.medium)) + .foregroundColor(.secondary) + } + + Button(action: { viewModel.deleteGoal(id: goal.id) }) { + Image(systemName: "trash") + .font(.caption) + .foregroundColor(.red.opacity(0.6)) + } + .buttonStyle(.plain) + } + + // Progress bar + GeometryReader { geo in + ZStack(alignment: .leading) { + RoundedRectangle(cornerRadius: 3) + .fill(Color.secondary.opacity(0.2)) + .frame(height: 6) + RoundedRectangle(cornerRadius: 3) + .fill(goal.achieved ? Color.green : Color.accentColor) + .frame(width: geo.size.width * goal.progress, height: 6) + } + } + .frame(height: 6) + + HStack { + Text(NSLocalizedString("Target:", comment: "LoopInsights goal target label")) + .font(.caption2) + .foregroundColor(.secondary) + if goal.type.lowerIsBetter { + Text("\u{2264} \(String(format: "%.1f", goal.targetValue))\(goal.type.unit)") + .font(.caption2.weight(.medium)) + .foregroundColor(.secondary) + } else { + Text("\u{2265} \(String(format: "%.1f", goal.targetValue))\(goal.type.unit)") + .font(.caption2.weight(.medium)) + .foregroundColor(.secondary) + } + + Spacer() + + if let tip = viewModel.goalTips[goal.id] { + Text(tip) + .font(.caption2) + .foregroundColor(.accentColor) + .lineLimit(1) + } + } + } + .padding(.vertical, 4) + } + + // MARK: - Patterns Section + + private var patternsSection: some View { + Section(header: HStack { + Image(systemName: "waveform.path.ecg") + Text(NSLocalizedString("Pattern Discovery", comment: "LoopInsights patterns section header")) + Spacer() + Button(action: { viewModel.refreshPatterns(coordinator: coordinator) }) { + if viewModel.isLoadingPatterns { + ProgressView() + .scaleEffect(0.8) + } else { + Image(systemName: "arrow.clockwise") + } + } + .buttonStyle(.plain) + .disabled(viewModel.isLoadingPatterns) + }) { + if viewModel.isLoadingPatterns && viewModel.patterns.isEmpty { + loadingRow(NSLocalizedString("Discovering patterns...", comment: "LoopInsights patterns loading")) + } else if viewModel.patterns.isEmpty { + VStack(spacing: 8) { + Image(systemName: "magnifyingglass") + .font(.system(size: 28)) + .foregroundColor(.secondary.opacity(0.5)) + Text(NSLocalizedString("Tap refresh to discover patterns", comment: "LoopInsights patterns empty")) + .font(.subheadline) + .foregroundColor(.secondary) + } + .frame(maxWidth: .infinity) + .padding(.vertical, 12) + } else { + ForEach(viewModel.patterns) { pattern in + patternRow(pattern) + } + } + + if let error = viewModel.patternError { + HStack(spacing: 8) { + Image(systemName: "exclamationmark.triangle.fill") + .foregroundColor(.red) + Text(error) + .font(.caption) + .foregroundColor(.red) + } + } + } + } + + private func patternRow(_ pattern: LoopInsightsCachedPattern) -> some View { + VStack(alignment: .leading, spacing: 6) { + HStack { + Text(pattern.type) + .font(.subheadline.weight(.semibold)) + Spacer() + Text(pattern.severity.capitalized) + .font(.caption2.weight(.bold)) + .foregroundColor(severityColor(pattern.severity)) + .padding(.horizontal, 8) + .padding(.vertical, 3) + .background(severityColor(pattern.severity).opacity(0.15)) + .cornerRadius(6) + } + + Text(pattern.description) + .font(.caption) + .foregroundColor(.secondary) + .fixedSize(horizontal: false, vertical: true) + } + .padding(.vertical, 4) + } + + // MARK: - Reflections Section + + private var reflectionsSection: some View { + Section(header: HStack { + Image(systemName: "note.text") + Text(NSLocalizedString("Reflections", comment: "LoopInsights reflections section header")) + }) { + // Add reflection input + addReflectionRow + + // Recent reflections + ForEach(viewModel.reflections.prefix(10)) { reflection in + reflectionRow(reflection) + } + } + } + + private var addReflectionRow: some View { + VStack(spacing: 10) { + TextField( + NSLocalizedString("How's your day going?", comment: "LoopInsights reflection placeholder"), + text: $viewModel.reflectionText + ) + .font(.subheadline) + + HStack(spacing: 8) { + // Mood picker + ForEach(LoopInsightsMoodTag.allCases) { mood in + Button(action: { viewModel.selectedMood = mood }) { + Text(mood.emoji) + .font(.title3) + .padding(6) + .background( + Circle() + .fill(viewModel.selectedMood == mood + ? Color.accentColor.opacity(0.3) + : Color.secondary.opacity(0.1) + ) + ) + } + .buttonStyle(.plain) + } + + Spacer() + + Button(action: { viewModel.addReflection() }) { + Text(NSLocalizedString("Add", comment: "LoopInsights add reflection button")) + .font(.caption.weight(.semibold)) + .foregroundColor(.white) + .padding(.horizontal, 16) + .padding(.vertical, 8) + .background( + Capsule() + .fill(viewModel.reflectionText.trimmingCharacters(in: .whitespaces).isEmpty + ? Color.accentColor.opacity(0.4) + : Color.accentColor + ) + ) + } + .buttonStyle(.plain) + .disabled(viewModel.reflectionText.trimmingCharacters(in: .whitespaces).isEmpty) + } + } + } + + private func reflectionRow(_ reflection: LoopInsightsReflection) -> some View { + HStack(alignment: .top, spacing: 10) { + Text(reflection.mood.emoji) + .font(.title3) + + VStack(alignment: .leading, spacing: 4) { + Text(reflection.text) + .font(.subheadline) + .fixedSize(horizontal: false, vertical: true) + + HStack { + Text(Self.reflectionDateFormatter.string(from: reflection.timestamp)) + .font(.caption2) + .foregroundColor(.secondary) + Text(reflection.mood.displayName) + .font(.caption2.weight(.medium)) + .foregroundColor(moodColor(reflection.mood)) + } + } + + Spacer() + + Button(action: { viewModel.deleteReflection(id: reflection.id) }) { + Image(systemName: "xmark") + .font(.caption2) + .foregroundColor(.secondary) + } + .buttonStyle(.plain) + } + .padding(.vertical, 2) + } + + // MARK: - Add Goal Sheet + + private var addGoalSheet: some View { + VStack(spacing: 20) { + Text(NSLocalizedString("Add Goal", comment: "LoopInsights add goal title")) + .font(.headline) + + Picker(NSLocalizedString("Goal Type", comment: "LoopInsights goal type picker"), selection: $viewModel.newGoalType) { + ForEach(LoopInsightsGoalType.allCases) { type in + Text(type.displayName).tag(type) + } + } + .pickerStyle(.segmented) + .onChange(of: viewModel.newGoalType) { newType in + viewModel.newGoalTarget = newType.defaultTarget + } + + if viewModel.newGoalType == .custom { + TextField( + NSLocalizedString("Goal name", comment: "LoopInsights custom goal name"), + text: $viewModel.newGoalCustomLabel + ) + .textFieldStyle(.roundedBorder) + } + + HStack { + Text(NSLocalizedString("Target:", comment: "LoopInsights goal target")) + .foregroundColor(.secondary) + TextField( + "", + value: $viewModel.newGoalTarget, + format: .number + ) + .textFieldStyle(.roundedBorder) + .keyboardType(.decimalPad) + .frame(width: 100) + Text(viewModel.newGoalType.unit) + .foregroundColor(.secondary) + } + + HStack { + Button(NSLocalizedString("Cancel", comment: "Cancel")) { + viewModel.showingAddGoal = false + } + Spacer() + Button(NSLocalizedString("Save", comment: "Save goal")) { + viewModel.saveNewGoal() + } + .disabled(viewModel.newGoalTarget <= 0) + } + .padding(.top, 8) + + Spacer() + } + .padding() + .navigationTitle(NSLocalizedString("New Goal", comment: "LoopInsights new goal nav title")) + .navigationBarTitleDisplayMode(.inline) + } + + // MARK: - Shared Components + + private func loadingRow(_ text: String) -> some View { + VStack(spacing: 10) { + ProgressView() + .scaleEffect(1.1) + Text(text) + .font(.subheadline) + .foregroundColor(.secondary) + } + .frame(maxWidth: .infinity) + .padding(.vertical, 16) + } + + // MARK: - Color Helpers + + private func severityColor(_ severity: String) -> Color { + switch severity.lowercased() { + case "high": return .red + case "medium": return .orange + default: return .yellow + } + } + + private func moodColor(_ mood: LoopInsightsMoodTag) -> Color { + switch mood { + case .great: return .green + case .good: return .blue + case .okay: return .orange + case .tough: return .red + } + } + + // MARK: - Formatters + + private static let reflectionDateFormatter: DateFormatter = { + let f = DateFormatter() + f.dateStyle = .short + f.timeStyle = .short + return f + }() +} + +// MARK: - Goals ViewModel + +private final class GoalsViewModel: ObservableObject { + + // MARK: - Published State + + @Published var goals: [LoopInsightsGoal] = [] + @Published var patterns: [LoopInsightsCachedPattern] = [] + @Published var reflections: [LoopInsightsReflection] = [] + + @Published var goalTips: [UUID: String] = [:] + + @Published var isLoadingPatterns = false + @Published var patternError: String? + + @Published var reflectionText = "" + @Published var selectedMood: LoopInsightsMoodTag = .good + + @Published var showingAddGoal = false + @Published var newGoalType: LoopInsightsGoalType = .tirTarget + @Published var newGoalTarget: Double = 80 + @Published var newGoalCustomLabel = "" + + @Published var showingShareSheet = false + @Published var isGeneratingReport = false + @Published var reportURL: URL? + + private let goalStore = LoopInsights_GoalStore.shared + + // MARK: - Load + + func loadData(coordinator: LoopInsights_Coordinator) { + goals = goalStore.allGoals + reflections = goalStore.allReflections + patterns = goalStore.validPatterns + goalStore.pruneExpiredPatterns() + + // Update goal current values from live data + updateGoalCurrentValues(coordinator: coordinator) + } + + private func updateGoalCurrentValues(coordinator: LoopInsights_Coordinator) { + Task { @MainActor in + guard let stats = try? await coordinator.dataAggregator.aggregateData( + period: LoopInsights_FeatureFlags.analysisPeriod + ) else { return } + + for goal in goals { + let current: Double + switch goal.type { + case .tirTarget: + current = stats.glucoseStats.timeInRange + case .a1cTarget: + current = stats.glucoseStats.gmi + case .hypoReduction: + current = stats.glucoseStats.timeBelowRange + case .custom: + continue + } + goalStore.updateGoal(id: goal.id, currentValue: current) + } + goals = goalStore.allGoals + } + } + + // MARK: - Goals Actions + + func saveNewGoal() { + let target: Double + if newGoalType == .custom { + target = newGoalTarget + } else { + target = newGoalTarget > 0 ? newGoalTarget : newGoalType.defaultTarget + } + goalStore.addGoal( + type: newGoalType, + targetValue: target, + customLabel: newGoalType == .custom ? newGoalCustomLabel : nil + ) + goals = goalStore.allGoals + showingAddGoal = false + // Reset form + newGoalType = .tirTarget + newGoalTarget = 80 + newGoalCustomLabel = "" + } + + func deleteGoal(id: UUID) { + goalStore.deleteGoal(id: id) + goals = goalStore.allGoals + goalTips.removeValue(forKey: id) + } + + // MARK: - Pattern Discovery + + func refreshPatterns(coordinator: LoopInsights_Coordinator) { + guard !isLoadingPatterns else { return } + isLoadingPatterns = true + patternError = nil + + Task { @MainActor in + do { + let stats = try await coordinator.dataAggregator.aggregateData(period: .thirtyDays) + let snapshot = try? coordinator.captureCurrentSnapshot() + let context = LoopInsights_ChatViewModel.buildTherapyContext( + snapshot: snapshot, + stats: stats + ) + + let goalsContext = buildGoalsContext() + let systemPrompt = buildPatternSystemPrompt() + let userPrompt = buildPatternUserPrompt(therapyContext: context, goalsContext: goalsContext) + + let response = try await LoopInsights_AIServiceAdapter.shared.sendPrompt( + systemPrompt, + userPrompt: userPrompt + ) + + let parsed = parsePatternResponse(response) + goalStore.cachePatterns(parsed.patterns) + patterns = parsed.patterns + goalTips = parsed.tips + + isLoadingPatterns = false + } catch { + patternError = error.localizedDescription + isLoadingPatterns = false + } + } + } + + // MARK: - Reflections Actions + + func addReflection() { + let text = reflectionText.trimmingCharacters(in: .whitespacesAndNewlines) + guard !text.isEmpty else { return } + goalStore.addReflection(text: text, mood: selectedMood) + reflections = goalStore.allReflections + reflectionText = "" + selectedMood = .good + } + + func deleteReflection(id: UUID) { + goalStore.deleteReflection(id: id) + reflections = goalStore.allReflections + } + + // MARK: - Report Generation + + func generateReport(coordinator: LoopInsights_Coordinator) { + guard !isGeneratingReport else { return } + isGeneratingReport = true + + Task { @MainActor in + let stats = try? await coordinator.dataAggregator.aggregateData( + period: LoopInsights_FeatureFlags.analysisPeriod + ) + + let html = LoopInsights_ReportGenerator.generateHTML( + stats: stats, + goals: goals, + patterns: patterns, + reflections: reflections + ) + + if let url = await LoopInsights_ReportGenerator.generatePDF(from: html) { + reportURL = url + showingShareSheet = true + } + isGeneratingReport = false + } + } + + // MARK: - Prompt Building + + private func buildPatternSystemPrompt() -> String { + let personality = LoopInsights_FeatureFlags.aiPersonality + + return """ + You are an expert diabetes advisor analyzing 30 days of Loop AID data to discover patterns. \ + \(personality.promptInstruction) + + RESPONSE FORMAT — you MUST use exactly this structure: + + PATTERNS: + [TYPE] Pattern title + Description of the pattern (1-2 sentences). Include specific numbers. + SEVERITY: high/medium/low + + [TYPE] Another pattern title + Description. + SEVERITY: high/medium/low + + (List 3-6 patterns. Types can be: Overnight, Dawn, Post-Meal, Exercise, Weekend, Weekday, \ + Sick Day, Negative Basal, Variability, Insulin Resistance, or any descriptive type.) + + TIPS: + GOAL_INDEX:0 One-line actionable tip for the first goal + GOAL_INDEX:1 One-line actionable tip for the second goal + (One tip per active goal. Skip if no goals.) + + SPECIAL PATTERN DETECTION: + - Sick day flags: Look for sustained glucose >250 mg/dL for 6+ hours with unusually high \ + insulin requirements. If hourly averages show extended periods well above 250, flag it. + - Negative basal: Periods where basal delivery is near-zero or suspended for extended periods \ + indicating overcorrection. Check if basal % is unusually low or insulin stats suggest \ + frequent suspensions. + - Weekend vs weekday: Compare timing patterns in carb data and glucose patterns. + - Exercise correlation: Look for post-activity lows followed by rebounds. + - Goal-aware tips: Reference the user's active goals in suggestions. + """ + } + + private func buildPatternUserPrompt(therapyContext: String, goalsContext: String) -> String { + return """ + Analyze this 30-day data for patterns and provide actionable insights: + + \(therapyContext) + + \(goalsContext) + """ + } + + private func buildGoalsContext() -> String { + guard !goals.isEmpty else { return "" } + + var context = "USER'S ACTIVE GOALS:\n" + for (index, goal) in goals.enumerated() { + let status = goal.achieved ? "ACHIEVED" : "In Progress" + context += " Goal \(index): \(goal.displayLabel) — Target: \(String(format: "%.1f", goal.targetValue))\(goal.type.unit), Current: \(String(format: "%.1f", goal.currentValue))\(goal.type.unit) [\(status)]\n" + } + return context + } + + // MARK: - Response Parsing + + private func parsePatternResponse(_ response: String) -> (patterns: [LoopInsightsCachedPattern], tips: [UUID: String]) { + var patterns: [LoopInsightsCachedPattern] = [] + var tips: [UUID: String] = [:] + + let lines = response.components(separatedBy: "\n") + var section: String? + var currentType: String? + var currentDesc = "" + var currentSeverity = "medium" + + func flushPattern() { + if let type = currentType, !currentDesc.isEmpty { + patterns.append(LoopInsightsCachedPattern( + type: type, + description: currentDesc.trimmingCharacters(in: .whitespacesAndNewlines), + severity: currentSeverity + )) + } + currentType = nil + currentDesc = "" + currentSeverity = "medium" + } + + for line in lines { + let trimmed = line.trimmingCharacters(in: .whitespaces) + + if trimmed.uppercased().hasPrefix("PATTERNS") { + section = "patterns" + continue + } + if trimmed.uppercased().hasPrefix("TIPS") { + flushPattern() + section = "tips" + continue + } + + if section == "patterns" { + // Check for [TYPE] pattern + if trimmed.hasPrefix("[") { + flushPattern() + if let endBracket = trimmed.firstIndex(of: "]") { + let type = String(trimmed[trimmed.index(after: trimmed.startIndex).. Date: Thu, 12 Feb 2026 21:06:37 -0800 Subject: [PATCH 05/14] Phase 4 (biometrics): HealthKit biometric integration for enriched AI analysis Add HealthKit biometric data (heart rate, HRV, steps, sleep, active energy, weight) to the AI analysis and chat pipelines. Biometrics are read-only, independently authorized, and gracefully degrade when individual types are unavailable. New file: LoopInsights_HealthKitManager.swift Modified: Models, DataAggregator, AIAnalysis, ChatViewModel, Coordinator, FeatureFlags, SettingsView, DashboardView, pbxproj, Localizable.xcstrings --- Loop.xcodeproj/project.pbxproj | 4 + Loop/Localizable.xcstrings | 27 ++ .../LoopInsights_Coordinator.swift | 8 +- .../LoopInsights/LoopInsights_Models.swift | 41 +++ .../LoopInsights_FeatureFlags.swift | 10 + .../LoopInsights_AIAnalysis.swift | 100 ++++- .../LoopInsights_DataAggregator.swift | 33 +- .../LoopInsights_HealthKitManager.swift | 343 ++++++++++++++++++ .../LoopInsights_ChatViewModel.swift | 40 ++ .../LoopInsights_DashboardView.swift | 23 ++ .../LoopInsights_SettingsView.swift | 126 +++++++ 11 files changed, 751 insertions(+), 4 deletions(-) create mode 100644 Loop/Services/LoopInsights/LoopInsights_HealthKitManager.swift diff --git a/Loop.xcodeproj/project.pbxproj b/Loop.xcodeproj/project.pbxproj index e371592cd5..9a74180232 100644 --- a/Loop.xcodeproj/project.pbxproj +++ b/Loop.xcodeproj/project.pbxproj @@ -614,6 +614,7 @@ 8D65F67A3D5AE1576364C287 /* LoopInsights_GoalStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0065F6CA2B051676FEE0B7D5 /* LoopInsights_GoalStore.swift */; }; 2BD98847D48B412626D8AFDF /* LoopInsights_GoalsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 49486DDC8FCBA7675B005E62 /* LoopInsights_GoalsView.swift */; }; 1AD80F425B1DA688EBAC6653 /* LoopInsights_ReportGenerator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 91CA9C204385601A795C4DF2 /* LoopInsights_ReportGenerator.swift */; }; + 4F318965F55EC7E03D840A9C /* LoopInsights_HealthKitManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = F042788E3C9B3B77B4B55BB2 /* LoopInsights_HealthKitManager.swift */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -1461,6 +1462,7 @@ 0065F6CA2B051676FEE0B7D5 /* LoopInsights_GoalStore.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoopInsights_GoalStore.swift; sourceTree = ""; }; 49486DDC8FCBA7675B005E62 /* LoopInsights_GoalsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoopInsights_GoalsView.swift; sourceTree = ""; }; 91CA9C204385601A795C4DF2 /* LoopInsights_ReportGenerator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoopInsights_ReportGenerator.swift; sourceTree = ""; }; + F042788E3C9B3B77B4B55BB2 /* LoopInsights_HealthKitManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoopInsights_HealthKitManager.swift; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -2771,6 +2773,7 @@ 186598BBCF20AF6BFDA7C65E /* LoopInsights_SuggestionStore.swift */, 0065F6CA2B051676FEE0B7D5 /* LoopInsights_GoalStore.swift */, 91CA9C204385601A795C4DF2 /* LoopInsights_ReportGenerator.swift */, + F042788E3C9B3B77B4B55BB2 /* LoopInsights_HealthKitManager.swift */, ); path = LoopInsights; sourceTree = ""; @@ -3748,6 +3751,7 @@ 8D65F67A3D5AE1576364C287 /* LoopInsights_GoalStore.swift in Sources */, 2BD98847D48B412626D8AFDF /* LoopInsights_GoalsView.swift in Sources */, 1AD80F425B1DA688EBAC6653 /* LoopInsights_ReportGenerator.swift in Sources */, + 4F318965F55EC7E03D840A9C /* LoopInsights_HealthKitManager.swift in Sources */, 8D0F376E7E338ECB93EE03E0 /* LoopInsights_TrendsInsightsView.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; diff --git a/Loop/Localizable.xcstrings b/Loop/Localizable.xcstrings index fe56d7c174..14cede22ac 100644 --- a/Loop/Localizable.xcstrings +++ b/Loop/Localizable.xcstrings @@ -8677,6 +8677,9 @@ } } }, + "Authorize HealthKit Access" : { + "comment" : "LoopInsights authorize HealthKit button" + }, "Auto-Applied" : { "comment" : "LoopInsights suggestion status: automatically applied" }, @@ -9095,6 +9098,12 @@ "comment" : "Description of a glucose reading that is below the recommended target range.", "isCommentAutoGenerated" : true }, + "Biometric data is read-only and never leaves your device except as part of AI analysis prompts. Manage permissions in Settings > Health > Loop." : { + "comment" : "LoopInsights biometrics privacy note" + }, + "BIOMETRICS" : { + "comment" : "LoopInsights biometrics header" + }, "Bluetooth\nOff" : { "comment" : "Message to the user to that the bluetooth is off", "localizations" : { @@ -21043,6 +21052,12 @@ } } }, + "HealthKit is not available on this device." : { + "comment" : "LoopInsights HealthKit not available" + }, + "HealthKit permissions configured" : { + "comment" : "LoopInsights HealthKit permissions configured" + }, "High" : { "comment" : "LoopInsights confidence: high\nLoopInsights legend: high" }, @@ -21542,6 +21557,9 @@ "In-App Banner" : { "comment" : "LoopInsights notification style: banner" }, + "Include Biometric Data" : { + "comment" : "LoopInsights biometrics toggle" + }, "Increase" : { "comment" : "LoopInsights: increase direction" }, @@ -28299,6 +28317,9 @@ } } }, + "No Recommended Changes" : { + "comment" : "LoopInsights no changes title" + }, "No suggestions yet" : { "comment" : "LoopInsights empty history title" }, @@ -40595,6 +40616,9 @@ } } }, + "When enabled, LoopInsights includes heart rate, HRV, steps, sleep, active energy, and weight data in AI analysis. This helps the AI correlate lifestyle factors with glucose patterns." : { + "comment" : "LoopInsights biometrics description" + }, "When enabled, LoopInsights periodically analyzes your data and notifies you when it detects a therapy setting that could be improved." : { "comment" : "LoopInsights monitor description" }, @@ -41399,6 +41423,9 @@ } } }, + "Your current therapy settings look good based on the available data. Check back after more data has been generated for a fresh analysis." : { + "comment" : "LoopInsights no changes description" + }, "Your glucose is below %1$@. Are you sure you want to bolus?" : { "comment" : "Format string for simple bolus screen warning when glucose is below glucose warning limit.", "localizations" : { diff --git a/Loop/Managers/LoopInsights/LoopInsights_Coordinator.swift b/Loop/Managers/LoopInsights/LoopInsights_Coordinator.swift index 83629f483a..8e5d9ea20b 100644 --- a/Loop/Managers/LoopInsights/LoopInsights_Coordinator.swift +++ b/Loop/Managers/LoopInsights/LoopInsights_Coordinator.swift @@ -27,6 +27,7 @@ final class LoopInsights_Coordinator: ObservableObject { let aiAnalysis: LoopInsights_AIAnalysis let suggestionStore: LoopInsights_SuggestionStore let goalStore: LoopInsights_GoalStore + let healthKitManager: LoopInsights_HealthKitManager? /// Background monitor for proactive suggestions (lazy-initialized) lazy var backgroundMonitor: LoopInsights_BackgroundMonitor = LoopInsights_BackgroundMonitor(coordinator: self) @@ -60,7 +61,11 @@ final class LoopInsights_Coordinator: ObservableObject { ) self.dataProviderBridge = bridge self.settingsWriter = settingsWriter - self.dataAggregator = LoopInsights_DataAggregator(dataProvider: bridge) + + let hkManager: LoopInsights_HealthKitManager? = LoopInsights_FeatureFlags.biometricsEnabled + ? LoopInsights_HealthKitManager() : nil + self.healthKitManager = hkManager + self.dataAggregator = LoopInsights_DataAggregator(dataProvider: bridge, healthKitManager: hkManager) self.aiAnalysis = LoopInsights_AIAnalysis() self.suggestionStore = LoopInsights_SuggestionStore.shared self.goalStore = LoopInsights_GoalStore.shared @@ -72,6 +77,7 @@ final class LoopInsights_Coordinator: ObservableObject { self.testDataProvider = testDataProvider self.dataProviderBridge = nil self.settingsWriter = nil + self.healthKitManager = nil self.dataAggregator = LoopInsights_DataAggregator(dataProvider: testDataProvider) self.aiAnalysis = LoopInsights_AIAnalysis() self.suggestionStore = LoopInsights_SuggestionStore.shared diff --git a/Loop/Models/LoopInsights/LoopInsights_Models.swift b/Loop/Models/LoopInsights/LoopInsights_Models.swift index 947da77f0f..a44dbcf0a6 100644 --- a/Loop/Models/LoopInsights/LoopInsights_Models.swift +++ b/Loop/Models/LoopInsights/LoopInsights_Models.swift @@ -594,6 +594,7 @@ struct LoopInsightsAggregatedStats: Codable { let glucoseStats: GlucoseStats let insulinStats: InsulinStats let carbStats: CarbStats + let biometricStats: BiometricStats? let generatedAt: Date struct GlucoseStats: Codable { @@ -622,6 +623,46 @@ struct LoopInsightsAggregatedStats: Codable { let averageCarbsPerMeal: Double // grams/meal let hourlyMealFrequency: [Int: Int] // hour → number of meals at that hour } + + struct BiometricStats: Codable { + let heartRate: HeartRateStats? + let hrv: HRVStats? + let steps: StepStats? + let sleep: SleepStats? + let activeEnergy: ActiveEnergyStats? + let weight: WeightStats? + } + + struct HeartRateStats: Codable { + let averageRestingHR: Double // bpm + let averageActiveHR: Double // bpm + let hourlyAverages: [Int: Double] // hour → avg bpm + } + + struct HRVStats: Codable { + let averageSDNN: Double // ms + let trend: Double // positive = improving + } + + struct StepStats: Codable { + let averageDailySteps: Double + let hourlyAverages: [Int: Double] // hour → avg steps + } + + struct SleepStats: Codable { + let averageDurationHours: Double + let averageBedtime: Double // seconds since midnight + let averageWakeTime: Double // seconds since midnight + } + + struct ActiveEnergyStats: Codable { + let averageDailyCalories: Double + } + + struct WeightStats: Codable { + let latestWeight: Double // kg + let weightTrend: Double // kg change over period + } } // MARK: - AI Analysis Request/Response diff --git a/Loop/Resources/LoopInsights/LoopInsights_FeatureFlags.swift b/Loop/Resources/LoopInsights/LoopInsights_FeatureFlags.swift index 47fb8e96d2..04d8e62610 100644 --- a/Loop/Resources/LoopInsights/LoopInsights_FeatureFlags.swift +++ b/Loop/Resources/LoopInsights/LoopInsights_FeatureFlags.swift @@ -28,6 +28,7 @@ struct LoopInsights_FeatureFlags { static let quietHoursStart = "LoopInsights_quietHoursStart" static let quietHoursEnd = "LoopInsights_quietHoursEnd" static let notificationStyle = "LoopInsights_notificationStyle" + static let biometricsEnabled = "LoopInsights_biometricsEnabled" } private static let defaults = UserDefaults.standard @@ -189,6 +190,15 @@ struct LoopInsights_FeatureFlags { set { defaults.set(newValue.rawValue, forKey: Keys.notificationStyle) } } + // MARK: - Biometrics + + /// Whether HealthKit biometric data (HR, HRV, steps, sleep, energy, weight) + /// is included in AI analysis. Defaults to false. + static var biometricsEnabled: Bool { + get { defaults.bool(forKey: Keys.biometricsEnabled) } + set { defaults.set(newValue, forKey: Keys.biometricsEnabled) } + } + // MARK: - AI Configuration /// User-configurable AI provider configuration. Persisted to UserDefaults (excluding API key). diff --git a/Loop/Services/LoopInsights/LoopInsights_AIAnalysis.swift b/Loop/Services/LoopInsights/LoopInsights_AIAnalysis.swift index 1b431d9763..47802f09c1 100644 --- a/Loop/Services/LoopInsights/LoopInsights_AIAnalysis.swift +++ b/Loop/Services/LoopInsights/LoopInsights_AIAnalysis.swift @@ -132,6 +132,26 @@ final class LoopInsights_AIAnalysis { 3. If time below range is >4%, prioritize safety (raise ISF or lower basal before anything else). 4. Suggestions are advisory only — the user and their healthcare provider make final decisions. + BIOMETRIC CONTEXT — When biometric data is provided: + - HEART RATE: Elevated resting HR or HR spikes can indicate stress, illness, caffeine, or \ + exercise — all affect insulin sensitivity. Morning HR acceleration may indicate caffeine \ + intake or dawn cortisol surge. A sudden sustained HR increase could signal illness (reduce \ + insulin sensitivity expectation). + - HRV: Lower HRV indicates higher physiological stress. Declining HRV trend may predict \ + increased insulin resistance. Use HRV context to temper or strengthen confidence in \ + setting change recommendations. + - STEPS/ACTIVITY: High activity days often increase insulin sensitivity (lower ISF, lower \ + basal may be appropriate). Sedentary days may require the opposite. Look for patterns \ + between activity levels and glucose outcomes. + - SLEEP: Poor sleep or short duration often increases insulin resistance the following day. \ + Late bedtimes or irregular schedules correlate with variable glucose patterns. Note sleep \ + timing when assessing overnight glucose behavior. + - WEIGHT: Weight trends affect total daily dose requirements. A gaining trend may require \ + increased basal/bolus; a losing trend may require decreases. + - CORRELATION: Cross-reference biometric patterns with glucose patterns before suggesting \ + setting changes. If glucose variability correlates with activity or sleep variation, \ + note this as a lifestyle factor rather than a settings problem. + RESPONSE FORMAT: Respond with valid JSON in this exact structure: { @@ -182,8 +202,8 @@ final class LoopInsights_AIAnalysis { prompt += "The historical data below was collected BEFORE these changes took effect. " prompt += "Do NOT suggest further changes to values that were already adjusted — the data does not yet reflect the new settings.\n\n" for change in relevantChanges { - let ago = Int(Date().timeIntervalSince(change.resolvedAt ?? change.createdAt) / 60) - prompt += "- Applied \(ago) minute(s) ago: " + let agoText = formatDuration(Date().timeIntervalSince(change.resolvedAt ?? change.createdAt)) + prompt += "- Applied \(agoText) ago: " for block in change.suggestion.timeBlocks { prompt += "\(formatTime(block.startTime))–\(formatTime(block.endTime)): \(String(format: "%.1f", block.currentValue)) → \(String(format: "%.1f", block.proposedValue)). " } @@ -259,6 +279,52 @@ final class LoopInsights_AIAnalysis { prompt += "- Meals Logged: \(stats.carbStats.mealCount)\n" prompt += "- Average Carbs per Meal: \(String(format: "%.0f", stats.carbStats.averageCarbsPerMeal)) g\n" + // Biometric stats (if available) + if let bio = stats.biometricStats { + prompt += "\n## Biometric Context\n" + + if let hr = bio.heartRate { + prompt += "### Heart Rate\n" + prompt += "- Average Resting HR: \(String(format: "%.0f", hr.averageRestingHR)) bpm\n" + prompt += "- Average Active HR: \(String(format: "%.0f", hr.averageActiveHR)) bpm\n" + if !hr.hourlyAverages.isEmpty { + prompt += "- Hourly HR averages: " + let sorted = hr.hourlyAverages.sorted { $0.key < $1.key } + prompt += sorted.map { "\(String(format: "%02d", $0.key)):00=\(String(format: "%.0f", $0.value))" }.joined(separator: ", ") + prompt += "\n" + } + } + + if let hrv = bio.hrv { + prompt += "### HRV (Heart Rate Variability)\n" + prompt += "- Average SDNN: \(String(format: "%.1f", hrv.averageSDNN)) ms\n" + prompt += "- Trend: \(hrv.trend >= 0 ? "+" : "")\(String(format: "%.1f", hrv.trend)) ms (\(hrv.trend >= 0 ? "improving" : "declining"))\n" + } + + if let steps = bio.steps { + prompt += "### Steps/Activity\n" + prompt += "- Average Daily Steps: \(String(format: "%.0f", steps.averageDailySteps))\n" + } + + if let sleep = bio.sleep { + prompt += "### Sleep\n" + prompt += "- Average Duration: \(String(format: "%.1f", sleep.averageDurationHours)) hours/night\n" + prompt += "- Average Bedtime: \(formatTimeFromSeconds(sleep.averageBedtime))\n" + prompt += "- Average Wake Time: \(formatTimeFromSeconds(sleep.averageWakeTime))\n" + } + + if let energy = bio.activeEnergy { + prompt += "### Active Energy\n" + prompt += "- Average Daily Active Calories: \(String(format: "%.0f", energy.averageDailyCalories)) kcal\n" + } + + if let weight = bio.weight { + prompt += "### Weight\n" + prompt += "- Latest Weight: \(String(format: "%.1f", weight.latestWeight)) kg (\(String(format: "%.1f", weight.latestWeight * 2.205)) lbs)\n" + prompt += "- Weight Trend: \(weight.weightTrend >= 0 ? "+" : "")\(String(format: "%.1f", weight.weightTrend)) kg over period\n" + } + } + // Computed: time-of-day glucose analysis prompt += "\n## Time-of-Day Analysis (computed from hourly averages)\n" let g = stats.glucoseStats @@ -432,4 +498,34 @@ final class LoopInsights_AIAnalysis { let displayHour = hours == 0 ? 12 : (hours > 12 ? hours - 12 : hours) return String(format: "%d:%02d %@", displayHour, minutes, period) } + + private func formatDuration(_ interval: TimeInterval) -> String { + let totalMinutes = Int(interval) / 60 + if totalMinutes < 60 { + return "\(totalMinutes) minute\(totalMinutes == 1 ? "" : "s")" + } + let hours = totalMinutes / 60 + let minutes = totalMinutes % 60 + if hours < 24 { + if minutes == 0 { + return "\(hours) hour\(hours == 1 ? "" : "s")" + } + return "\(hours) hour\(hours == 1 ? "" : "s") \(minutes) minute\(minutes == 1 ? "" : "s")" + } + let days = hours / 24 + let remainingHours = hours % 24 + if remainingHours == 0 { + return "\(days) day\(days == 1 ? "" : "s")" + } + return "\(days) day\(days == 1 ? "" : "s") \(remainingHours) hour\(remainingHours == 1 ? "" : "s")" + } + + private func formatTimeFromSeconds(_ seconds: Double) -> String { + let totalSeconds = Int(seconds) + let hours = totalSeconds / 3600 + let minutes = (totalSeconds % 3600) / 60 + let period = hours >= 12 ? "PM" : "AM" + let displayHour = hours == 0 ? 12 : (hours > 12 ? hours - 12 : hours) + return String(format: "%d:%02d %@", displayHour, minutes, period) + } } diff --git a/Loop/Services/LoopInsights/LoopInsights_DataAggregator.swift b/Loop/Services/LoopInsights/LoopInsights_DataAggregator.swift index 0c494fcbd4..a3818998a3 100644 --- a/Loop/Services/LoopInsights/LoopInsights_DataAggregator.swift +++ b/Loop/Services/LoopInsights/LoopInsights_DataAggregator.swift @@ -26,9 +26,11 @@ protocol LoopInsightsDataProviderProtocol: AnyObject { final class LoopInsights_DataAggregator { private weak var dataProvider: LoopInsightsDataProviderProtocol? + private var healthKitManager: LoopInsights_HealthKitManager? - init(dataProvider: LoopInsightsDataProviderProtocol) { + init(dataProvider: LoopInsightsDataProviderProtocol, healthKitManager: LoopInsights_HealthKitManager? = nil) { self.dataProvider = dataProvider + self.healthKitManager = healthKitManager } // MARK: - Public API @@ -45,12 +47,14 @@ final class LoopInsights_DataAggregator { async let glucoseStats = computeGlucoseStats(provider: dataProvider, start: startDate, end: endDate) async let insulinStats = computeInsulinStats(provider: dataProvider, start: startDate, end: endDate) async let carbStats = computeCarbStats(provider: dataProvider, start: startDate, end: endDate) + async let biometrics = fetchBiometricsIfEnabled(start: startDate, end: endDate) return LoopInsightsAggregatedStats( period: period, glucoseStats: try await glucoseStats, insulinStats: try await insulinStats, carbStats: try await carbStats, + biometricStats: try await biometrics, generatedAt: Date() ) } @@ -83,6 +87,33 @@ final class LoopInsights_DataAggregator { ) } + // MARK: - Biometrics + + private func fetchBiometricsIfEnabled(start: Date, end: Date) async throws -> LoopInsightsAggregatedStats.BiometricStats? { + guard LoopInsights_FeatureFlags.biometricsEnabled else { + print("[LoopInsights] Biometrics: flag is disabled, skipping") + return nil + } + // Use the injected manager, or create one on the fly. This handles the case + // where the Coordinator was created before biometrics was enabled. + let manager = healthKitManager ?? LoopInsights_HealthKitManager() + print("[LoopInsights] Biometrics: fetching from HealthKit (start: \(start), end: \(end))") + do { + let result = try await manager.fetchAllBiometrics(start: start, end: end) + print("[LoopInsights] Biometrics: HR=\(result.heartRate != nil), HRV=\(result.hrv != nil), steps=\(result.steps != nil), sleep=\(result.sleep != nil), energy=\(result.activeEnergy != nil), weight=\(result.weight != nil)") + // If every sub-stat is nil, return nil so the AI prompt doesn't get an empty section + if result.heartRate == nil && result.hrv == nil && result.steps == nil && + result.sleep == nil && result.activeEnergy == nil && result.weight == nil { + print("[LoopInsights] Biometrics: all sub-stats nil — no HealthKit data available") + return nil + } + return result + } catch { + print("[LoopInsights] Biometrics: fetch error — \(error)") + return nil + } + } + // MARK: - Glucose Stats private func computeGlucoseStats(provider: LoopInsightsDataProviderProtocol, start: Date, end: Date) async throws -> LoopInsightsAggregatedStats.GlucoseStats { diff --git a/Loop/Services/LoopInsights/LoopInsights_HealthKitManager.swift b/Loop/Services/LoopInsights/LoopInsights_HealthKitManager.swift new file mode 100644 index 0000000000..777044301e --- /dev/null +++ b/Loop/Services/LoopInsights/LoopInsights_HealthKitManager.swift @@ -0,0 +1,343 @@ +// +// LoopInsights_HealthKitManager.swift +// Loop +// +// Concept & design by Taylor Patterson. Coded & tested by Claude Code in February 2026. +// Copyright (c) 2025-2026 LoopKit Authors. All rights reserved. +// + +import Foundation +import HealthKit + +/// Standalone HealthKit manager for LoopInsights biometric data. +/// Read-only — never writes to HealthKit. Uses its own HKHealthStore instance +/// and requests authorization independently of Loop's existing HealthKit access. +final class LoopInsights_HealthKitManager: ObservableObject { + + private let healthStore = HKHealthStore() + + /// The biometric types we request read access to + private static let biometricTypes: Set = { + var types = Set() + if let hr = HKQuantityType.quantityType(forIdentifier: .heartRate) { types.insert(hr) } + if let hrv = HKQuantityType.quantityType(forIdentifier: .heartRateVariabilitySDNN) { types.insert(hrv) } + if let steps = HKQuantityType.quantityType(forIdentifier: .stepCount) { types.insert(steps) } + if let sleep = HKObjectType.categoryType(forIdentifier: .sleepAnalysis) { types.insert(sleep) } + if let energy = HKQuantityType.quantityType(forIdentifier: .activeEnergyBurned) { types.insert(energy) } + if let weight = HKQuantityType.quantityType(forIdentifier: .bodyMass) { types.insert(weight) } + return types + }() + + /// Whether HealthKit is available on this device + static var isHealthDataAvailable: Bool { + return HKHealthStore.isHealthDataAvailable() + } + + private static let authRequestedKey = "LoopInsights_biometricAuthRequested" + + /// Whether we have requested authorization (persisted to UserDefaults so it survives view recreation) + @Published private(set) var authorizationRequested = UserDefaults.standard.bool(forKey: authRequestedKey) + + // MARK: - Authorization + + /// Request read-only authorization for biometric types. + /// iOS will show a separate HealthKit authorization sheet for these new types. + func requestAuthorization() async throws { + guard Self.isHealthDataAvailable else { + throw LoopInsightsError.insufficientData("HealthKit is not available on this device") + } + + try await healthStore.requestAuthorization(toShare: [], read: Self.biometricTypes) + + await MainActor.run { + authorizationRequested = true + UserDefaults.standard.set(true, forKey: Self.authRequestedKey) + } + } + + /// NOTE: HealthKit intentionally hides read authorization status for privacy. + /// `authorizationStatus(for:)` only reports *write/share* status. Since LoopInsights + /// is read-only (toShare: []), we cannot determine per-type read permission. + /// We track only whether authorization has been requested. + + // MARK: - Fetch All Biometrics + + /// Fetch all biometric data for the given date range. Each sub-stat is optional — + /// if a type isn't authorized or has no data, that sub-stat is nil. + func fetchAllBiometrics(start: Date, end: Date) async throws -> LoopInsightsAggregatedStats.BiometricStats { + let hrResult: LoopInsightsAggregatedStats.HeartRateStats? + do { hrResult = try await fetchHeartRateStats(start: start, end: end) } + catch { print("[LoopInsights] HK heart rate error: \(error)"); hrResult = nil } + + let hrvResult: LoopInsightsAggregatedStats.HRVStats? + do { hrvResult = try await fetchHRVStats(start: start, end: end) } + catch { print("[LoopInsights] HK HRV error: \(error)"); hrvResult = nil } + + let stepResult: LoopInsightsAggregatedStats.StepStats? + do { stepResult = try await fetchStepStats(start: start, end: end) } + catch { print("[LoopInsights] HK steps error: \(error)"); stepResult = nil } + + let sleepResult: LoopInsightsAggregatedStats.SleepStats? + do { sleepResult = try await fetchSleepStats(start: start, end: end) } + catch { print("[LoopInsights] HK sleep error: \(error)"); sleepResult = nil } + + let energyResult: LoopInsightsAggregatedStats.ActiveEnergyStats? + do { energyResult = try await fetchActiveEnergyStats(start: start, end: end) } + catch { print("[LoopInsights] HK active energy error: \(error)"); energyResult = nil } + + let weightResult: LoopInsightsAggregatedStats.WeightStats? + do { weightResult = try await fetchWeightStats(start: start, end: end) } + catch { print("[LoopInsights] HK weight error: \(error)"); weightResult = nil } + + return LoopInsightsAggregatedStats.BiometricStats( + heartRate: hrResult, + hrv: hrvResult, + steps: stepResult, + sleep: sleepResult, + activeEnergy: energyResult, + weight: weightResult + ) + } + + // MARK: - Heart Rate + + private func fetchHeartRateStats(start: Date, end: Date) async throws -> LoopInsightsAggregatedStats.HeartRateStats? { + guard let hrType = HKQuantityType.quantityType(forIdentifier: .heartRate) else { return nil } + + let samples = try await querySamples(type: hrType, start: start, end: end) + guard !samples.isEmpty else { return nil } + + let bpmUnit = HKUnit.count().unitDivided(by: .minute()) + let calendar = Calendar.current + + var restingValues: [Double] = [] + var activeValues: [Double] = [] + var hourlyBuckets: [Int: [Double]] = [:] + + for sample in samples { + let bpm = sample.quantity.doubleValue(for: bpmUnit) + let hour = calendar.component(.hour, from: sample.startDate) + hourlyBuckets[hour, default: []].append(bpm) + + // Heuristic: resting = samples between 11PM-6AM or HR < 80 + let isResting = (hour >= 23 || hour < 6) || bpm < 80 + if isResting { + restingValues.append(bpm) + } else { + activeValues.append(bpm) + } + } + + let avgResting = restingValues.isEmpty ? 0 : restingValues.reduce(0, +) / Double(restingValues.count) + let avgActive = activeValues.isEmpty ? 0 : activeValues.reduce(0, +) / Double(activeValues.count) + let hourlyAvgs = hourlyBuckets.mapValues { $0.reduce(0, +) / Double($0.count) } + + return LoopInsightsAggregatedStats.HeartRateStats( + averageRestingHR: avgResting, + averageActiveHR: avgActive, + hourlyAverages: hourlyAvgs + ) + } + + // MARK: - HRV + + private func fetchHRVStats(start: Date, end: Date) async throws -> LoopInsightsAggregatedStats.HRVStats? { + guard let hrvType = HKQuantityType.quantityType(forIdentifier: .heartRateVariabilitySDNN) else { return nil } + + let samples = try await querySamples(type: hrvType, start: start, end: end) + guard !samples.isEmpty else { return nil } + + let msUnit = HKUnit.secondUnit(with: .milli) + let values = samples.map { $0.quantity.doubleValue(for: msUnit) } + let average = values.reduce(0, +) / Double(values.count) + + // Trend: compare first half to second half + let midpoint = values.count / 2 + let firstHalf = Array(values.prefix(midpoint)) + let secondHalf = Array(values.suffix(from: midpoint)) + let firstAvg = firstHalf.isEmpty ? average : firstHalf.reduce(0, +) / Double(firstHalf.count) + let secondAvg = secondHalf.isEmpty ? average : secondHalf.reduce(0, +) / Double(secondHalf.count) + let trend = secondAvg - firstAvg + + return LoopInsightsAggregatedStats.HRVStats( + averageSDNN: average, + trend: trend + ) + } + + // MARK: - Steps + + private func fetchStepStats(start: Date, end: Date) async throws -> LoopInsightsAggregatedStats.StepStats? { + guard let stepType = HKQuantityType.quantityType(forIdentifier: .stepCount) else { return nil } + + let samples = try await querySamples(type: stepType, start: start, end: end) + guard !samples.isEmpty else { return nil } + + let calendar = Calendar.current + let countUnit = HKUnit.count() + + var dailyTotals: [String: Double] = [:] + var hourlyBuckets: [Int: [Double]] = [:] + + for sample in samples { + let count = sample.quantity.doubleValue(for: countUnit) + let dayKey = Self.dayKey(for: sample.startDate, calendar: calendar) + dailyTotals[dayKey, default: 0] += count + + let hour = calendar.component(.hour, from: sample.startDate) + hourlyBuckets[hour, default: []].append(count) + } + + let avgDaily = dailyTotals.isEmpty ? 0 : dailyTotals.values.reduce(0, +) / Double(dailyTotals.count) + let hourlyAvgs = hourlyBuckets.mapValues { $0.reduce(0, +) / Double($0.count) } + + return LoopInsightsAggregatedStats.StepStats( + averageDailySteps: avgDaily, + hourlyAverages: hourlyAvgs + ) + } + + // MARK: - Sleep + + private func fetchSleepStats(start: Date, end: Date) async throws -> LoopInsightsAggregatedStats.SleepStats? { + guard let sleepType = HKObjectType.categoryType(forIdentifier: .sleepAnalysis) else { return nil } + + let predicate = HKQuery.predicateForSamples(withStart: start, end: end, options: .strictStartDate) + let samples: [HKCategorySample] = try await withCheckedThrowingContinuation { continuation in + let query = HKSampleQuery( + sampleType: sleepType, + predicate: predicate, + limit: HKObjectQueryNoLimit, + sortDescriptors: [NSSortDescriptor(key: HKSampleSortIdentifierStartDate, ascending: true)] + ) { _, results, error in + if let error = error { + continuation.resume(throwing: error) + } else { + continuation.resume(returning: (results as? [HKCategorySample]) ?? []) + } + } + healthStore.execute(query) + } + + // Filter to inBed or asleep categories (exclude awake/inBed transitions) + let sleepSamples = samples.filter { sample in + let value = HKCategoryValueSleepAnalysis(rawValue: sample.value) + if value == .inBed { return true } + if #available(iOS 16.0, *) { + if value == .asleepUnspecified || value == .asleepCore || + value == .asleepDeep || value == .asleepREM { + return true + } + } + return false + } + + guard !sleepSamples.isEmpty else { return nil } + + let calendar = Calendar.current + + // Group sleep samples by night (use the date of the start as the night key) + var nightlyDurations: [String: TimeInterval] = [:] + var bedtimes: [Double] = [] + var wakeTimes: [Double] = [] + + for sample in sleepSamples { + let duration = sample.endDate.timeIntervalSince(sample.startDate) + let nightKey = Self.dayKey(for: sample.startDate, calendar: calendar) + nightlyDurations[nightKey, default: 0] += duration + + let bedComponents = calendar.dateComponents([.hour, .minute], from: sample.startDate) + let bedSeconds = Double(bedComponents.hour ?? 0) * 3600 + Double(bedComponents.minute ?? 0) * 60 + bedtimes.append(bedSeconds) + + let wakeComponents = calendar.dateComponents([.hour, .minute], from: sample.endDate) + let wakeSeconds = Double(wakeComponents.hour ?? 0) * 3600 + Double(wakeComponents.minute ?? 0) * 60 + wakeTimes.append(wakeSeconds) + } + + let avgDuration = nightlyDurations.isEmpty ? 0 : nightlyDurations.values.reduce(0, +) / Double(nightlyDurations.count) / 3600 + let avgBedtime = bedtimes.isEmpty ? 0 : bedtimes.reduce(0, +) / Double(bedtimes.count) + let avgWakeTime = wakeTimes.isEmpty ? 0 : wakeTimes.reduce(0, +) / Double(wakeTimes.count) + + return LoopInsightsAggregatedStats.SleepStats( + averageDurationHours: avgDuration, + averageBedtime: avgBedtime, + averageWakeTime: avgWakeTime + ) + } + + // MARK: - Active Energy + + private func fetchActiveEnergyStats(start: Date, end: Date) async throws -> LoopInsightsAggregatedStats.ActiveEnergyStats? { + guard let energyType = HKQuantityType.quantityType(forIdentifier: .activeEnergyBurned) else { return nil } + + let samples = try await querySamples(type: energyType, start: start, end: end) + guard !samples.isEmpty else { return nil } + + let kcalUnit = HKUnit.kilocalorie() + let calendar = Calendar.current + + var dailyTotals: [String: Double] = [:] + for sample in samples { + let kcal = sample.quantity.doubleValue(for: kcalUnit) + let dayKey = Self.dayKey(for: sample.startDate, calendar: calendar) + dailyTotals[dayKey, default: 0] += kcal + } + + let avgDaily = dailyTotals.isEmpty ? 0 : dailyTotals.values.reduce(0, +) / Double(dailyTotals.count) + + return LoopInsightsAggregatedStats.ActiveEnergyStats( + averageDailyCalories: avgDaily + ) + } + + // MARK: - Weight + + private func fetchWeightStats(start: Date, end: Date) async throws -> LoopInsightsAggregatedStats.WeightStats? { + guard let weightType = HKQuantityType.quantityType(forIdentifier: .bodyMass) else { return nil } + + let samples = try await querySamples(type: weightType, start: start, end: end) + guard !samples.isEmpty else { return nil } + + let kgUnit = HKUnit.gramUnit(with: .kilo) + let values = samples.map { $0.quantity.doubleValue(for: kgUnit) } + + let latest = values.last ?? 0 + let earliest = values.first ?? latest + let trend = latest - earliest + + return LoopInsightsAggregatedStats.WeightStats( + latestWeight: latest, + weightTrend: trend + ) + } + + // MARK: - Helpers + + /// Generic sample query wrapper + private func querySamples(type: HKQuantityType, start: Date, end: Date) async throws -> [HKQuantitySample] { + let predicate = HKQuery.predicateForSamples(withStart: start, end: end, options: .strictStartDate) + + return try await withCheckedThrowingContinuation { continuation in + let query = HKSampleQuery( + sampleType: type, + predicate: predicate, + limit: HKObjectQueryNoLimit, + sortDescriptors: [NSSortDescriptor(key: HKSampleSortIdentifierStartDate, ascending: true)] + ) { _, results, error in + if let error = error { + continuation.resume(throwing: error) + } else { + continuation.resume(returning: (results as? [HKQuantitySample]) ?? []) + } + } + healthStore.execute(query) + } + } + + /// Create a day-key string for grouping samples by date + private static func dayKey(for date: Date, calendar: Calendar) -> String { + let components = calendar.dateComponents([.year, .month, .day], from: date) + return "\(components.year ?? 0)-\(components.month ?? 0)-\(components.day ?? 0)" + } +} diff --git a/Loop/View Models/LoopInsights/LoopInsights_ChatViewModel.swift b/Loop/View Models/LoopInsights/LoopInsights_ChatViewModel.swift index 73fd9b40e7..0d32a77d62 100644 --- a/Loop/View Models/LoopInsights/LoopInsights_ChatViewModel.swift +++ b/Loop/View Models/LoopInsights/LoopInsights_ChatViewModel.swift @@ -207,6 +207,37 @@ final class LoopInsights_ChatViewModel: ObservableObject { } } } + + if let bio = stats.biometricStats { + context += "\nBIOMETRIC DATA:\n" + + if let hr = bio.heartRate { + context += " Resting HR: \(String(format: "%.0f", hr.averageRestingHR)) bpm\n" + context += " Active HR: \(String(format: "%.0f", hr.averageActiveHR)) bpm\n" + } + + if let hrv = bio.hrv { + context += " HRV (SDNN): \(String(format: "%.1f", hrv.averageSDNN)) ms (trend: \(hrv.trend >= 0 ? "+" : "")\(String(format: "%.1f", hrv.trend)))\n" + } + + if let steps = bio.steps { + context += " Avg Daily Steps: \(String(format: "%.0f", steps.averageDailySteps))\n" + } + + if let sleep = bio.sleep { + context += " Avg Sleep: \(String(format: "%.1f", sleep.averageDurationHours)) hrs/night\n" + context += " Avg Bedtime: \(Self.formatTimeFromSeconds(sleep.averageBedtime))\n" + context += " Avg Wake: \(Self.formatTimeFromSeconds(sleep.averageWakeTime))\n" + } + + if let energy = bio.activeEnergy { + context += " Avg Active Calories: \(String(format: "%.0f", energy.averageDailyCalories)) kcal/day\n" + } + + if let weight = bio.weight { + context += " Weight: \(String(format: "%.1f", weight.latestWeight)) kg (trend: \(weight.weightTrend >= 0 ? "+" : "")\(String(format: "%.1f", weight.weightTrend)) kg)\n" + } + } } if context.isEmpty { @@ -224,4 +255,13 @@ final class LoopInsights_ChatViewModel: ObservableObject { let date = calendar.startOfDay(for: Date()).addingTimeInterval(seconds) return formatter.string(from: date) } + + private static func formatTimeFromSeconds(_ seconds: Double) -> String { + let totalSeconds = Int(seconds) + let hours = totalSeconds / 3600 + let minutes = (totalSeconds % 3600) / 60 + let period = hours >= 12 ? "PM" : "AM" + let displayHour = hours == 0 ? 12 : (hours > 12 ? hours - 12 : hours) + return String(format: "%d:%02d %@", displayHour, minutes, period) + } } diff --git a/Loop/Views/LoopInsights/LoopInsights_DashboardView.swift b/Loop/Views/LoopInsights/LoopInsights_DashboardView.swift index fdc13ccc19..6cc9f6c9d4 100644 --- a/Loop/Views/LoopInsights/LoopInsights_DashboardView.swift +++ b/Loop/Views/LoopInsights/LoopInsights_DashboardView.swift @@ -77,6 +77,9 @@ struct LoopInsights_DashboardView: View { if !viewModel.pendingSuggestions.isEmpty { pendingSuggestionsSection } + if viewModel.pendingSuggestions.isEmpty && viewModel.analysisResponse != nil && !viewModel.isAnalyzing { + noChangesSection + } navigationSection } .navigationTitle(NSLocalizedString("LoopInsights", comment: "LoopInsights dashboard title")) @@ -571,6 +574,26 @@ struct LoopInsights_DashboardView: View { } } + // MARK: - No Changes + + private var noChangesSection: some View { + Section { + VStack(spacing: 10) { + Image(systemName: "checkmark.seal.fill") + .font(.system(size: 36)) + .foregroundColor(.green) + Text(NSLocalizedString("No Recommended Changes", comment: "LoopInsights no changes title")) + .font(.headline) + Text(NSLocalizedString("Your current therapy settings look good based on the available data. Check back after more data has been generated for a fresh analysis.", comment: "LoopInsights no changes description")) + .font(.subheadline) + .foregroundColor(.secondary) + .multilineTextAlignment(.center) + } + .frame(maxWidth: .infinity) + .padding(.vertical, 8) + } + } + // MARK: - Assessment private var assessmentSection: some View { diff --git a/Loop/Views/LoopInsights/LoopInsights_SettingsView.swift b/Loop/Views/LoopInsights/LoopInsights_SettingsView.swift index 2614f73a48..770c0a8722 100644 --- a/Loop/Views/LoopInsights/LoopInsights_SettingsView.swift +++ b/Loop/Views/LoopInsights/LoopInsights_SettingsView.swift @@ -46,6 +46,11 @@ struct LoopInsights_SettingsView: View { // Data @State private var showingClearHistory = false + // Biometrics + @State private var biometricsEnabled = LoopInsights_FeatureFlags.biometricsEnabled + @StateObject private var healthKitManager = LoopInsights_HealthKitManager() + @State private var isRequestingBiometricAuth = false + // Developer mode unlock @State private var developerTapCount = 0 @State private var showDeveloperUnlocked = false @@ -92,6 +97,7 @@ struct LoopInsights_SettingsView: View { aiConfigSection advancedAISection analysisOptionsSection + biometricsSection personalitySection backgroundMonitoringSection dataSection @@ -109,6 +115,7 @@ struct LoopInsights_SettingsView: View { selectedApplyMode = LoopInsights_FeatureFlags.applyMode selectedPersonality = LoopInsights_FeatureFlags.aiPersonality useTestData = LoopInsights_FeatureFlags.useTestData + biometricsEnabled = LoopInsights_FeatureFlags.biometricsEnabled apiKeyText = LoopInsights_SecureStorage.loadAPIKey() ?? "" // Clear stale endpoint path if it matches a different format's default @@ -630,6 +637,125 @@ struct LoopInsights_SettingsView: View { } } + // MARK: - Biometrics + + private var biometricsSection: some View { + Section { + VStack(alignment: .leading, spacing: 12) { + HStack(spacing: 6) { + Image(systemName: "heart.text.square") + .foregroundColor(.accentColor) + Text(NSLocalizedString("BIOMETRICS", comment: "LoopInsights biometrics header")) + .font(.caption) + .fontWeight(.semibold) + .foregroundColor(.secondary) + .textCase(.uppercase) + } + + Toggle(NSLocalizedString("Include Biometric Data", comment: "LoopInsights biometrics toggle"), isOn: $biometricsEnabled) + .onChange(of: biometricsEnabled) { newValue in + LoopInsights_FeatureFlags.biometricsEnabled = newValue + if newValue && !healthKitManager.authorizationRequested { + requestBiometricAuthorization() + } + } + + Text(NSLocalizedString("When enabled, LoopInsights includes heart rate, HRV, steps, sleep, active energy, and weight data in AI analysis. This helps the AI correlate lifestyle factors with glucose patterns.", comment: "LoopInsights biometrics description")) + .font(.caption) + .foregroundColor(.secondary) + + if biometricsEnabled { + if !LoopInsights_HealthKitManager.isHealthDataAvailable { + HStack(spacing: 4) { + Image(systemName: "xmark.circle.fill") + .foregroundColor(.red) + Text(NSLocalizedString("HealthKit is not available on this device.", comment: "LoopInsights HealthKit not available")) + .font(.caption) + .foregroundColor(.red) + } + } else { + // Authorization button (show when not yet requested) + if !healthKitManager.authorizationRequested { + Button(action: requestBiometricAuthorization) { + HStack(spacing: 6) { + if isRequestingBiometricAuth { + ProgressView() + .progressViewStyle(.circular) + .scaleEffect(0.8) + } else { + Image(systemName: "heart.circle") + } + Text(NSLocalizedString("Authorize HealthKit Access", comment: "LoopInsights authorize HealthKit button")) + } + .font(.body.weight(.medium)) + .foregroundColor(.white) + .frame(maxWidth: .infinity) + .padding(.vertical, 10) + .background(Color.pink) + .cornerRadius(10) + } + .disabled(isRequestingBiometricAuth) + .buttonStyle(.plain) + } else { + // Authorization sheet was shown — we can't see read permission status + HStack(spacing: 4) { + Image(systemName: "checkmark.circle.fill") + .foregroundColor(.green) + Text(NSLocalizedString("HealthKit permissions configured", comment: "LoopInsights HealthKit permissions configured")) + .font(.caption) + .foregroundColor(.green) + } + } + + // Biometric types list (two columns) + HStack(alignment: .top, spacing: 16) { + VStack(alignment: .leading, spacing: 6) { + biometricTypeLabel("Heart Rate", icon: "heart.fill") + biometricTypeLabel("HRV", icon: "waveform.path.ecg") + biometricTypeLabel("Steps", icon: "figure.walk") + } + VStack(alignment: .leading, spacing: 6) { + biometricTypeLabel("Sleep", icon: "bed.double.fill") + biometricTypeLabel("Energy", icon: "flame.fill") + biometricTypeLabel("Weight", icon: "scalemass.fill") + } + } + + Text(NSLocalizedString("Biometric data is read-only and never leaves your device except as part of AI analysis prompts. Manage permissions in Settings > Health > Loop.", comment: "LoopInsights biometrics privacy note")) + .font(.caption2) + .foregroundColor(.secondary) + } + } + } + } + } + + private func biometricTypeLabel(_ name: String, icon: String) -> some View { + HStack(spacing: 6) { + Image(systemName: icon) + .foregroundColor(.pink) + .font(.caption) + .frame(width: 16) + Text(name) + .font(.caption) + .foregroundColor(.primary) + } + } + + private func requestBiometricAuthorization() { + isRequestingBiometricAuth = true + Task { + do { + try await healthKitManager.requestAuthorization() + } catch { + print("[LoopInsights] HealthKit authorization error: \(error)") + } + await MainActor.run { + isRequestingBiometricAuth = false + } + } + } + // MARK: - AI Personality private var personalitySection: some View { From e62c500623780e2ce3217002f40625b4b0500338 Mon Sep 17 00:00:00 2001 From: Taylor Date: Fri, 13 Feb 2026 10:38:49 -0800 Subject: [PATCH 06/14] Phase 5: AGP chart, Clarity-style dashboard, caffeine tracker, meal insights, Nightscout import - Ambulatory Glucose Profile (AGP) chart with percentile bands and median line - Clarity-style dashboard redesign: Glucose card, Time in Range 5-zone stacked bar, capsule period picker with exact Clarity colors (#C14F0C, #F0CA4C, #74A52E, #D36265, #7F0302) - Caffeine tracker with half-life decay modeling and glucose correlation - Meal insights with food response analysis and per-meal glucose impact - Nightscout data import support - Advanced analyzers for pattern detection - 5-zone TIR breakdown (Very High/High/In Range/Low/Very Low) replacing 3-zone model - Compact list section spacing for tighter dashboard layout - Chat view UI refinements --- Loop.xcodeproj/project.pbxproj | 32 ++ Loop/Localizable.xcstrings | 246 ++++++++++-- .../LoopInsights_Coordinator.swift | 89 +++++ .../LoopInsights/LoopInsights_Models.swift | 29 +- .../LoopInsights_Phase5Models.swift | 233 +++++++++++ .../LoopInsights_FeatureFlags.swift | 38 ++ .../LoopInsights_AIAnalysis.swift | 36 +- .../LoopInsights_AdvancedAnalyzers.swift | 275 +++++++++++++ .../LoopInsights_CaffeineTracker.swift | 218 ++++++++++ .../LoopInsights_DataAggregator.swift | 245 +++++++++++- .../LoopInsights_FoodResponseAnalyzer.swift | 240 +++++++++++ .../LoopInsights_HealthKitManager.swift | 100 ++++- .../LoopInsights_NightscoutImporter.swift | 213 ++++++++++ .../LoopInsights_DashboardViewModel.swift | 31 +- .../LoopInsights_AGPChartView.swift | 295 ++++++++++++++ .../LoopInsights_CaffeineLogView.swift | 350 ++++++++++++++++ .../LoopInsights/LoopInsights_ChatView.swift | 263 +++++------- .../LoopInsights_DashboardView.swift | 287 ++++++++++++-- .../LoopInsights_MealInsightsView.swift | 373 ++++++++++++++++++ .../LoopInsights_SettingsView.swift | 221 +++++++++++ 20 files changed, 3560 insertions(+), 254 deletions(-) create mode 100644 Loop/Models/LoopInsights/LoopInsights_Phase5Models.swift create mode 100644 Loop/Services/LoopInsights/LoopInsights_AdvancedAnalyzers.swift create mode 100644 Loop/Services/LoopInsights/LoopInsights_CaffeineTracker.swift create mode 100644 Loop/Services/LoopInsights/LoopInsights_FoodResponseAnalyzer.swift create mode 100644 Loop/Services/LoopInsights/LoopInsights_NightscoutImporter.swift create mode 100644 Loop/Views/LoopInsights/LoopInsights_AGPChartView.swift create mode 100644 Loop/Views/LoopInsights/LoopInsights_CaffeineLogView.swift create mode 100644 Loop/Views/LoopInsights/LoopInsights_MealInsightsView.swift diff --git a/Loop.xcodeproj/project.pbxproj b/Loop.xcodeproj/project.pbxproj index 9a74180232..e20035d467 100644 --- a/Loop.xcodeproj/project.pbxproj +++ b/Loop.xcodeproj/project.pbxproj @@ -615,6 +615,14 @@ 2BD98847D48B412626D8AFDF /* LoopInsights_GoalsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 49486DDC8FCBA7675B005E62 /* LoopInsights_GoalsView.swift */; }; 1AD80F425B1DA688EBAC6653 /* LoopInsights_ReportGenerator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 91CA9C204385601A795C4DF2 /* LoopInsights_ReportGenerator.swift */; }; 4F318965F55EC7E03D840A9C /* LoopInsights_HealthKitManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = F042788E3C9B3B77B4B55BB2 /* LoopInsights_HealthKitManager.swift */; }; + A81C5355140C9F091E110844 /* LoopInsights_Phase5Models.swift in Sources */ = {isa = PBXBuildFile; fileRef = 112AA1E5DF9955A367071297 /* LoopInsights_Phase5Models.swift */; }; + 09D1557DBE4E2CCCBABB5DD6 /* LoopInsights_AdvancedAnalyzers.swift in Sources */ = {isa = PBXBuildFile; fileRef = A80638223202E2E350012A3C /* LoopInsights_AdvancedAnalyzers.swift */; }; + 7B0334A1033FF6A25BA39AEF /* LoopInsights_FoodResponseAnalyzer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4C86CC2627D9F765D1343AE0 /* LoopInsights_FoodResponseAnalyzer.swift */; }; + 295D246CCA16B260E308B55E /* LoopInsights_CaffeineTracker.swift in Sources */ = {isa = PBXBuildFile; fileRef = B3C90FF4FDA0C10D7AA5F0AF /* LoopInsights_CaffeineTracker.swift */; }; + B06E0BB85384E44B6825C9BE /* LoopInsights_NightscoutImporter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0A8AD126B8E7A33598AE1087 /* LoopInsights_NightscoutImporter.swift */; }; + 51352D31C402E3F02651F5D2 /* LoopInsights_AGPChartView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B71CC769321E323ACED2E8EC /* LoopInsights_AGPChartView.swift */; }; + 230C0B8EE9C8E341C7D3C395 /* LoopInsights_MealInsightsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9C47D229ABCAB8F4394631D /* LoopInsights_MealInsightsView.swift */; }; + 4CC0E7120DEF811F7D268665 /* LoopInsights_CaffeineLogView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 50DB299AD493553DA6E1A02B /* LoopInsights_CaffeineLogView.swift */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -1463,6 +1471,14 @@ 49486DDC8FCBA7675B005E62 /* LoopInsights_GoalsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoopInsights_GoalsView.swift; sourceTree = ""; }; 91CA9C204385601A795C4DF2 /* LoopInsights_ReportGenerator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoopInsights_ReportGenerator.swift; sourceTree = ""; }; F042788E3C9B3B77B4B55BB2 /* LoopInsights_HealthKitManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoopInsights_HealthKitManager.swift; sourceTree = ""; }; + 112AA1E5DF9955A367071297 /* LoopInsights_Phase5Models.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoopInsights_Phase5Models.swift; sourceTree = ""; }; + A80638223202E2E350012A3C /* LoopInsights_AdvancedAnalyzers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoopInsights_AdvancedAnalyzers.swift; sourceTree = ""; }; + 4C86CC2627D9F765D1343AE0 /* LoopInsights_FoodResponseAnalyzer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoopInsights_FoodResponseAnalyzer.swift; sourceTree = ""; }; + B3C90FF4FDA0C10D7AA5F0AF /* LoopInsights_CaffeineTracker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoopInsights_CaffeineTracker.swift; sourceTree = ""; }; + 0A8AD126B8E7A33598AE1087 /* LoopInsights_NightscoutImporter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoopInsights_NightscoutImporter.swift; sourceTree = ""; }; + B71CC769321E323ACED2E8EC /* LoopInsights_AGPChartView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoopInsights_AGPChartView.swift; sourceTree = ""; }; + D9C47D229ABCAB8F4394631D /* LoopInsights_MealInsightsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoopInsights_MealInsightsView.swift; sourceTree = ""; }; + 50DB299AD493553DA6E1A02B /* LoopInsights_CaffeineLogView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoopInsights_CaffeineLogView.swift; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -2726,6 +2742,7 @@ children = ( 1B34C595DAA79BB6836BA60C /* LoopInsights_Models.swift */, 20EB0E3DF88A1303EA105423 /* LoopInsights_SuggestionRecord.swift */, + 112AA1E5DF9955A367071297 /* LoopInsights_Phase5Models.swift */, ); path = LoopInsights; sourceTree = ""; @@ -2750,6 +2767,9 @@ CF876C4BBAD67542E1E0A979 /* LoopInsights_MonitorSettingsView.swift */, EE7AAD3549253FE16941E10D /* LoopInsights_TrendsInsightsView.swift */, 49486DDC8FCBA7675B005E62 /* LoopInsights_GoalsView.swift */, + B71CC769321E323ACED2E8EC /* LoopInsights_AGPChartView.swift */, + D9C47D229ABCAB8F4394631D /* LoopInsights_MealInsightsView.swift */, + 50DB299AD493553DA6E1A02B /* LoopInsights_CaffeineLogView.swift */, ); path = LoopInsights; sourceTree = ""; @@ -2774,6 +2794,10 @@ 0065F6CA2B051676FEE0B7D5 /* LoopInsights_GoalStore.swift */, 91CA9C204385601A795C4DF2 /* LoopInsights_ReportGenerator.swift */, F042788E3C9B3B77B4B55BB2 /* LoopInsights_HealthKitManager.swift */, + A80638223202E2E350012A3C /* LoopInsights_AdvancedAnalyzers.swift */, + 4C86CC2627D9F765D1343AE0 /* LoopInsights_FoodResponseAnalyzer.swift */, + B3C90FF4FDA0C10D7AA5F0AF /* LoopInsights_CaffeineTracker.swift */, + 0A8AD126B8E7A33598AE1087 /* LoopInsights_NightscoutImporter.swift */, ); path = LoopInsights; sourceTree = ""; @@ -3753,6 +3777,14 @@ 1AD80F425B1DA688EBAC6653 /* LoopInsights_ReportGenerator.swift in Sources */, 4F318965F55EC7E03D840A9C /* LoopInsights_HealthKitManager.swift in Sources */, 8D0F376E7E338ECB93EE03E0 /* LoopInsights_TrendsInsightsView.swift in Sources */, + A81C5355140C9F091E110844 /* LoopInsights_Phase5Models.swift in Sources */, + 09D1557DBE4E2CCCBABB5DD6 /* LoopInsights_AdvancedAnalyzers.swift in Sources */, + 7B0334A1033FF6A25BA39AEF /* LoopInsights_FoodResponseAnalyzer.swift in Sources */, + 295D246CCA16B260E308B55E /* LoopInsights_CaffeineTracker.swift in Sources */, + B06E0BB85384E44B6825C9BE /* LoopInsights_NightscoutImporter.swift in Sources */, + 51352D31C402E3F02651F5D2 /* LoopInsights_AGPChartView.swift in Sources */, + 230C0B8EE9C8E341C7D3C395 /* LoopInsights_MealInsightsView.swift in Sources */, + 4CC0E7120DEF811F7D268665 /* LoopInsights_CaffeineLogView.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/Loop/Localizable.xcstrings b/Loop/Localizable.xcstrings index 14cede22ac..3c3741cef6 100644 --- a/Loop/Localizable.xcstrings +++ b/Loop/Localizable.xcstrings @@ -591,6 +591,10 @@ "comment" : "A small label that shows the percentage change in a time block's value. The argument is the string “%+.0f”.", "isCommentAutoGenerated" : true }, + "%" : { + "comment" : "Abbreviation for percentage.", + "isCommentAutoGenerated" : true + }, "%.1f%% time above range in %@" : { "comment" : "LoopInsights pattern detail: consistent highs\nLoopInsights pattern detail: consistent highs moderate", "localizations" : { @@ -3443,6 +3447,9 @@ } } }, + "24h Total" : { + "comment" : "LoopInsights caffeine 24h total" + }, "30 Days" : { "comment" : "LoopInsights analysis period: 30 days" }, @@ -3565,6 +3572,9 @@ } } }, + "70–180 mg/dL" : { + "comment" : "LoopInsights TIR target value" + }, "90 Days" : { "comment" : "LoopInsights analysis period: 90 days" }, @@ -5464,6 +5474,9 @@ } } }, + "Add Entry" : { + "comment" : "LoopInsights caffeine add entry" + }, "Add Goal" : { "comment" : "LoopInsights add goal title" }, @@ -5935,9 +5948,18 @@ "Advanced API Settings" : { "comment" : "LoopInsights advanced settings toggle" }, + "ADVANCED FEATURES" : { + "comment" : "LoopInsights Phase 5 features header" + }, "Advisor" : { "comment" : "LoopInsights trends tab: advisor" }, + "AGP Chart" : { + "comment" : "LoopInsights AGP toggle" + }, + "AI Advice" : { + "comment" : "LoopInsights AI advice header" + }, "AI Assessment" : { "comment" : "LoopInsights assessment header" }, @@ -6572,6 +6594,12 @@ "Am I bolusing enough for meals?" : { "comment" : "LoopInsights quick ask: meal bolus" }, + "Ambulatory Glucose Profile" : { + "comment" : "LoopInsights AGP chart title" + }, + "Amount (mg)" : { + "comment" : "LoopInsights caffeine amount\nLoopInsights caffeine amount placeholder" + }, "Amount Consumed" : { "comment" : "Label for carb quantity entry row on carb entry screen", "localizations" : { @@ -7180,9 +7208,6 @@ "ANALYSIS OPTIONS" : { "comment" : "LoopInsights analysis options header" }, - "Analysis Period" : { - "comment" : "LoopInsights period picker label" - }, "Analyze %@" : { "comment" : "LoopInsights analyze button" }, @@ -7192,6 +7217,15 @@ "Analyze my last 3 days" : { "comment" : "LoopInsights quick ask: recent analysis" }, + "Analyzes glucose responses by food type. Enables Meal Insights view with meal debrief cards and pre-meal AI advisor." : { + "comment" : "LoopInsights food response description" + }, + "Analyzes your glucose, insulin, and carb data to suggest Basal Rate, Carb Ratio, and ISF adjustments. Select a setting and lookback period, then tap Analyze. All changes require approval" : { + "comment" : "LoopInsights subtitle" + }, + "Analyzing meal data..." : { + "comment" : "LoopInsights meals loading" + }, "Analyzing..." : { "comment" : "LoopInsights analyzing\nLoopInsights analyzing all" }, @@ -8326,15 +8360,15 @@ "Ask" : { "comment" : "LoopInsights banner ask button" }, + "Ask a question about your data" : { + "comment" : "LoopInsights chat empty state" + }, "Ask a question..." : { "comment" : "LoopInsights chat input placeholder" }, "Ask LoopInsights" : { "comment" : "LoopInsights chat button\nLoopInsights chat title" }, - "Ask me anything about your diabetes management" : { - "comment" : "LoopInsights chat empty state title" - }, "Ask questions about your glucose trends, therapy settings, and get personalized advice." : { "comment" : "LoopInsights trends advisor subtitle" }, @@ -8726,6 +8760,9 @@ "Avg" : { "comment" : "LoopInsights trends avg chip" }, + "Avg Carbs" : { + "comment" : "LoopInsights avg carbs label" + }, "Background Monitoring" : { "comment" : "LoopInsights background monitoring row\nLoopInsights monitor settings title" }, @@ -10233,6 +10270,15 @@ } } }, + "Caffeine Impact" : { + "comment" : "LoopInsights pattern: caffeine correlation" + }, + "Caffeine Tracker" : { + "comment" : "LoopInsights caffeine button\nLoopInsights caffeine title" + }, + "Caffeine Tracking" : { + "comment" : "LoopInsights caffeine toggle" + }, "Cancel" : { "comment" : "Button label for cancel\nButton text to cancel\nCancel\nCancel button\nCancel button for reset loop alert\nCancel export button title\nLoopInsights pre-fill cancel button\nThe title of the cancel action in an action sheet", "localizations" : { @@ -12354,6 +12400,9 @@ } } }, + "Circadian Analysis" : { + "comment" : "LoopInsights circadian toggle" + }, "Clear All" : { "comment" : "LoopInsights clear all button" }, @@ -13541,6 +13590,9 @@ "Connected" : { "comment" : "LoopInsights connection success" }, + "Connected to Nightscout" : { + "comment" : "LoopInsights nightscout connected" + }, "Consistent Highs" : { "comment" : "LoopInsights pattern: consistent highs" }, @@ -14531,6 +14583,12 @@ } } }, + "Custom Caffeine Entry" : { + "comment" : "LoopInsights custom caffeine header" + }, + "Custom Entry" : { + "comment" : "LoopInsights caffeine custom entry" + }, "Custom Goal" : { "comment" : "LoopInsights goal type: custom" }, @@ -15560,6 +15618,9 @@ } } }, + "Delete Entry" : { + "comment" : "LoopInsights delete caffeine entry" + }, "Delete Food" : { "localizations" : { "da" : { @@ -17066,6 +17127,12 @@ "Each analysis uses your configured AI provider and consumes API credits. With daily frequency, expect ~3 API calls per day (one per setting type)." : { "comment" : "LoopInsights monitor API usage note" }, + "Edit Caffeine" : { + "comment" : "LoopInsights edit caffeine title" + }, + "Edit Entry" : { + "comment" : "LoopInsights edit caffeine header" + }, "Enable\nBluetooth" : { "comment" : "Message to the user to enable bluetooth", "localizations" : { @@ -17391,6 +17458,9 @@ } } }, + "Enables circadian glucose profiling, dawn phenomenon detection, negative basal awareness, and HRV-based stress scoring. Enriches AI analysis with sleep/wake patterns." : { + "comment" : "LoopInsights circadian description" + }, "Encouraging and positive. Celebrates your wins and gently explains areas for improvement." : { "comment" : "LoopInsights personality desc: supportive coach" }, @@ -18237,6 +18307,9 @@ } } }, + "Estimated Caffeine Level" : { + "comment" : "LoopInsights caffeine level label" + }, "Event History" : { "comment" : "Segmented button title for insulin delivery log event history", "localizations" : { @@ -19419,6 +19492,12 @@ "Fixtures loaded" : { "comment" : "LoopInsights fixtures loaded" }, + "Food Response Analysis" : { + "comment" : "LoopInsights food response toggle" + }, + "Food Sensitivity" : { + "comment" : "LoopInsights pattern: food sensitivity" + }, "Food Type" : { "comment" : "Label for food type entry on add favorite food screen", "localizations" : { @@ -19870,6 +19949,9 @@ "Frequent Lows" : { "comment" : "LoopInsights pattern: frequent lows" }, + "Frequent Suspensions" : { + "comment" : "LoopInsights pattern: negative basal" + }, "Frequently asked questions about alerts" : { "comment" : "Label for link to see frequently asked questions", "localizations" : { @@ -20151,8 +20233,11 @@ } } }, + "Getting advice..." : { + "comment" : "LoopInsights getting advice" + }, "Glucose" : { - "comment" : "LoopInsights trends stats glucose\nThe title of the glucose and prediction graph\nTitle for predicted glucose chart on bolus screen", + "comment" : "LoopInsights glucose card title\nLoopInsights trends stats glucose\nThe title of the glucose and prediction graph\nTitle for predicted glucose chart on bolus screen", "localizations" : { "ar" : { "stringUnit" : { @@ -20976,6 +21061,9 @@ } } }, + "GMI" : { + "comment" : "LoopInsights GMI label" + }, "GMI (est. A1C)" : { "comment" : "LoopInsights GMI label" }, @@ -21059,7 +21147,7 @@ "comment" : "LoopInsights HealthKit permissions configured" }, "High" : { - "comment" : "LoopInsights confidence: high\nLoopInsights legend: high" + "comment" : "LoopInsights TIR high\nLoopInsights confidence: high\nLoopInsights legend: high" }, "High Glucose" : { "localizations" : { @@ -21116,6 +21204,9 @@ "High Only" : { "comment" : "LoopInsights confidence filter: high only" }, + "High Stress Periods" : { + "comment" : "LoopInsights pattern: high stress" + }, "High Variability" : { "comment" : "LoopInsights pattern: high variability" }, @@ -21374,8 +21465,9 @@ } } }, - "I have access to your current therapy settings and recent glucose data. Try one of the suggestions below or type your own question." : { - "comment" : "LoopInsights chat empty state subtitle" + "https://your-site.herokuapp.com" : { + "comment" : "A placeholder text for the URL of a user's Nightscout site.", + "isCommentAutoGenerated" : true }, "If iOS Focus Mode is ON and Mute Alerts is OFF, Critical Alerts will still be delivered and non-Critical Alerts will be silenced until %1$@ is added to each Focus mode as an Allowed App." : { "comment" : "Focus modes descriptive text (1: app name)", @@ -21507,6 +21599,9 @@ } } }, + "Import glucose and treatment data from a Nightscout server as a supplemental data source." : { + "comment" : "LoopInsights nightscout description" + }, "In future versions of Loop these experiments may change, end up as standard parts of the Loop Algorithm, or be removed from Loop entirely. Please follow along in the Loop Zulip chat to stay informed of possible changes to these features." : { "comment" : "Algorithm Experiments description second paragraph.", "localizations" : { @@ -21554,6 +21649,9 @@ } } }, + "In Range" : { + "comment" : "LoopInsights TIR in range" + }, "In-App Banner" : { "comment" : "LoopInsights notification style: banner" }, @@ -23907,6 +24005,9 @@ "Last analysis: %@" : { "comment" : "LoopInsights last analysis date" }, + "Last Intake" : { + "comment" : "LoopInsights caffeine last intake" + }, "Launches CGM app" : { "comment" : "Glucose HUD accessibility hint", "extractionState" : "manual", @@ -24363,6 +24464,9 @@ "comment" : "The title of a section in the live activity settings view, related to lock screen, dynamic island, or carplay.", "isCommentAutoGenerated" : true }, + "Log caffeine intake to help the AI correlate caffeine with glucose patterns. Uses a 5.7-hour half-life decay model." : { + "comment" : "LoopInsights caffeine description" + }, "Log Dose" : { "comment" : "Button text to log a dose\nTitle for dose logging screen", "localizations" : { @@ -25448,9 +25552,6 @@ "comment" : "The uppercase name of the feature.", "isCommentAutoGenerated" : true }, - "LoopInsights analyzes your glucose, insulin, and carb data to suggest adjustments to your Basal Rates, Carb Ratios, and Insulin Sensitivity factors. Tap one of the settings, choose a lookback period, and tap Analyze to get AI-generated suggestions. All changes require your review and approval." : { - "comment" : "LoopInsights subtitle" - }, "LoopInsights can continuously monitor your data and proactively notify you when it detects a setting change opportunity." : { "comment" : "LoopInsights background monitoring description" }, @@ -25458,7 +25559,7 @@ "comment" : "LoopInsights settings title" }, "Low" : { - "comment" : "LoopInsights confidence: low\nLoopInsights legend: low" + "comment" : "LoopInsights TIR low\nLoopInsights confidence: low\nLoopInsights legend: low" }, "Low Glucose" : { "comment" : "Title for bolus screen warning when glucose is below glucose warning limit.\nTitle for bolus screen warning when glucose is below suspend threshold, but a bolus is recommended", @@ -26139,10 +26240,17 @@ } } }, + "Meal Insights" : { + "comment" : "LoopInsights meal insights button\nLoopInsights meal insights title" + }, "Meals Logged" : { "comment" : "Label for the number of meals logged in the stats section of the Trends & Insights view.", "isCommentAutoGenerated" : true }, + "Median" : { + "comment" : "A label displayed in the legend for the median line in the AGP chart.", + "isCommentAutoGenerated" : true + }, "MEDICAL DISCLAIMER" : { "comment" : "LoopInsights medical disclaimer header" }, @@ -26152,8 +26260,12 @@ "Medium & Above" : { "comment" : "LoopInsights confidence filter: medium+" }, + "mg" : { + "comment" : "Abbreviation for milligrams.", + "isCommentAutoGenerated" : true + }, "mg/dL" : { - "comment" : "The short unit display string for milligrams of glucose per decilter", + "comment" : "LoopInsights unit mg/dL\nThe short unit display string for milligrams of glucose per decilter", "localizations" : { "ar" : { "stringUnit" : { @@ -27575,6 +27687,15 @@ } } }, + "NIGHTSCOUT" : { + "comment" : "LoopInsights Nightscout header" + }, + "Nightscout data is used as supplemental context for AI analysis. Your existing Loop data stores remain the primary source." : { + "comment" : "LoopInsights nightscout note" + }, + "Nightscout Import" : { + "comment" : "LoopInsights nightscout toggle" + }, "No alert — suggestions are available when you next open LoopInsights." : { "comment" : "LoopInsights notification style desc: silent" }, @@ -27711,6 +27832,9 @@ } } }, + "No caffeine entries yet. Tap a preset above to log intake." : { + "comment" : "LoopInsights no caffeine entries" + }, "No changes" : { "comment" : "LoopInsights legend: OK" }, @@ -27839,6 +27963,9 @@ "No fixtures found" : { "comment" : "LoopInsights no fixtures" }, + "No food-type patterns available. Log meals with food types to see patterns." : { + "comment" : "LoopInsights no food patterns" + }, "No goals set yet" : { "comment" : "LoopInsights goals empty placeholder" }, @@ -28222,6 +28349,9 @@ } } }, + "No recent meals with glucose data found" : { + "comment" : "LoopInsights no meals" + }, "No Recent Pump Data" : { "comment" : "Title for bolus screen notice when pump data is missing or stale", "localizations" : { @@ -28540,6 +28670,12 @@ "Not analyzed" : { "comment" : "LoopInsights legend: not analyzed" }, + "Not enough\ndata available" : { + "comment" : "LoopInsights GMI insufficient data" + }, + "Not enough data for AGP chart" : { + "comment" : "LoopInsights AGP no data" + }, "Notification Delivery" : { "comment" : "Notification Delivery Status text", "localizations" : { @@ -29649,6 +29785,12 @@ "Pattern Discovery" : { "comment" : "LoopInsights patterns section header" }, + "Peak" : { + "comment" : "LoopInsights meal peak label" + }, + "Peak Rise" : { + "comment" : "LoopInsights peak rise label" + }, "Pending" : { "comment" : "LoopInsights suggestion status: pending review" }, @@ -29742,9 +29884,15 @@ "Post-Meal Spikes" : { "comment" : "LoopInsights pattern: post-meal spikes" }, + "Pre" : { + "comment" : "LoopInsights meal pre-meal label" + }, "Pre-Fill Editor" : { "comment" : "LoopInsights apply mode: navigate to editor with value pre-filled" }, + "Pre-Meal Advice" : { + "comment" : "LoopInsights meal tab: advice" + }, "Pre-Meal Targets" : { "comment" : "The label of the pre-meal mode toggle button", "localizations" : { @@ -32269,6 +32417,9 @@ } } }, + "Quick Add" : { + "comment" : "LoopInsights caffeine quick add header" + }, "QUIET HOURS" : { "comment" : "LoopInsights monitor quiet hours header" }, @@ -32537,6 +32688,12 @@ "Rebound Highs" : { "comment" : "LoopInsights pattern: rebound highs" }, + "Recent Entries" : { + "comment" : "LoopInsights caffeine recent entries" + }, + "Recent Meals" : { + "comment" : "LoopInsights meal tab: recent" + }, "Recommendation expired: %1$@ old" : { "comment" : "The error message when a recommendation has expired. (1: age of recommendation in minutes)", "localizations" : { @@ -33715,6 +33872,15 @@ "Review recommended — significant adjustments may help" : { "comment" : "LoopInsights score: review" }, + "Rise > 50 mg/dL" : { + "comment" : "LoopInsights meal legend orange" + }, + "Rise ≤ 50 mg/dL" : { + "comment" : "LoopInsights meal legend green" + }, + "Rise: %+.0f mg/dL" : { + "comment" : "LoopInsights meal glucose rise" + }, "Rolling lookback period for automated AI-based suggestions - how far back do you want LoopInsights to look when analyzing your glucose, insulin, and carb data?" : { "comment" : "LoopInsights analysis period description" }, @@ -33862,6 +34028,9 @@ } } }, + "Save Changes" : { + "comment" : "LoopInsights save caffeine edit" + }, "Save without Bolusing" : { "comment" : "Button text to save carbs and/or manual glucose entry without a bolus", "localizations" : { @@ -34034,6 +34203,9 @@ } } }, + "Select a food type to see your historical glucose response and get AI advice:" : { + "comment" : "LoopInsights food pattern instructions" + }, "Select Lock Screen Display Options" : { "comment" : "A section header for the lock screen display options.", "isCommentAutoGenerated" : true @@ -34473,6 +34645,9 @@ } } }, + "Show Ambulatory Glucose Profile chart on the dashboard with percentile bands (P10/P25/P50/P75/P90) over 24 hours." : { + "comment" : "LoopInsights AGP description" + }, "Shows a banner inside the app when a new suggestion is found." : { "comment" : "LoopInsights notification style desc: banner" }, @@ -35104,6 +35279,15 @@ } } }, + "Source" : { + "comment" : "LoopInsights caffeine source" + }, + "Source (e.g. Matcha Latte)" : { + "comment" : "LoopInsights caffeine source placeholder" + }, + "Standard Deviation" : { + "comment" : "LoopInsights std dev label" + }, "Start time is out of range: %@" : { "comment" : "Carb error description: invalid start time is out of range.", "localizations" : { @@ -36006,9 +36190,6 @@ } } }, - "Tap one of your current Therapy Settings" : { - "comment" : "LoopInsights current settings header" - }, "Tap refresh to discover patterns" : { "comment" : "LoopInsights patterns empty" }, @@ -36412,11 +36593,14 @@ } } }, + "Target Range: " : { + "comment" : "LoopInsights TIR target label" + }, "Target:" : { "comment" : "LoopInsights goal target\nLoopInsights goal target label" }, "Test Connection" : { - "comment" : "LoopInsights test connection button" + "comment" : "LoopInsights test connection button\nLoopInsights test nightscout button" }, "TestFlight" : { "comment" : "Settings app TestFlight section", @@ -36643,7 +36827,7 @@ } }, "Testing..." : { - "comment" : "LoopInsights testing connection" + "comment" : "LoopInsights testing connection\nLoopInsights testing nightscout" }, "The bolus amount entered is smaller than the minimum deliverable." : { "comment" : "Alert message for a bolus too small validation error", @@ -37512,7 +37696,7 @@ } }, "Therapy Settings" : { - "comment" : "Title text for button to Therapy Settings", + "comment" : "LoopInsights current settings header\nTitle text for button to Therapy Settings", "localizations" : { "da" : { "stringUnit" : { @@ -37680,8 +37864,11 @@ "This will restore your therapy settings to the values they had before this suggestion was applied." : { "comment" : "LoopInsights revert confirmation message" }, + "Time" : { + "comment" : "LoopInsights caffeine time" + }, "Time in Range" : { - "comment" : "LoopInsights goal type: TIR target" + "comment" : "LoopInsights TIR card title\nLoopInsights goal type: TIR target" }, "Time in Range (70-180)" : { "comment" : "LoopInsights TIR label with range" @@ -37821,6 +38008,9 @@ } } }, + "Time to Peak" : { + "comment" : "LoopInsights time to peak label" + }, "Timestamp" : { "comment" : "A label displayed next to the timestamp in the debug log view.", "isCommentAutoGenerated" : true @@ -37834,6 +38024,9 @@ "To" : { "comment" : "LoopInsights monitor quiet hours to" }, + "Today's Peak" : { + "comment" : "LoopInsights caffeine today peak" + }, "Total Daily Dose" : { "comment" : "LoopInsights TDD label" }, @@ -40044,6 +40237,12 @@ }, "User Prompt" : { + }, + "Very High" : { + "comment" : "LoopInsights TIR very high" + }, + "Very Low" : { + "comment" : "LoopInsights TIR very low" }, "View" : { "comment" : "LoopInsights banner view button" @@ -41423,6 +41622,9 @@ } } }, + "Your API secret" : { + "comment" : "LoopInsights Nightscout secret placeholder" + }, "Your current therapy settings look good based on the available data. Check back after more data has been generated for a fresh analysis." : { "comment" : "LoopInsights no changes description" }, diff --git a/Loop/Managers/LoopInsights/LoopInsights_Coordinator.swift b/Loop/Managers/LoopInsights/LoopInsights_Coordinator.swift index 8e5d9ea20b..3a62e3cf2b 100644 --- a/Loop/Managers/LoopInsights/LoopInsights_Coordinator.swift +++ b/Loop/Managers/LoopInsights/LoopInsights_Coordinator.swift @@ -28,6 +28,7 @@ final class LoopInsights_Coordinator: ObservableObject { let suggestionStore: LoopInsights_SuggestionStore let goalStore: LoopInsights_GoalStore let healthKitManager: LoopInsights_HealthKitManager? + let caffeineTracker: LoopInsights_CaffeineTracker /// Background monitor for proactive suggestions (lazy-initialized) lazy var backgroundMonitor: LoopInsights_BackgroundMonitor = LoopInsights_BackgroundMonitor(coordinator: self) @@ -69,6 +70,8 @@ final class LoopInsights_Coordinator: ObservableObject { self.aiAnalysis = LoopInsights_AIAnalysis() self.suggestionStore = LoopInsights_SuggestionStore.shared self.goalStore = LoopInsights_GoalStore.shared + self.caffeineTracker = LoopInsights_CaffeineTracker.shared + self.caffeineTracker.healthKitManager = hkManager } /// Initialize with test data fixtures (for simulator/developer mode). @@ -82,6 +85,7 @@ final class LoopInsights_Coordinator: ObservableObject { self.aiAnalysis = LoopInsights_AIAnalysis() self.suggestionStore = LoopInsights_SuggestionStore.shared self.goalStore = LoopInsights_GoalStore.shared + self.caffeineTracker = LoopInsights_CaffeineTracker.shared } /// Factory method: creates a Coordinator with test data if available and enabled, @@ -115,6 +119,91 @@ final class LoopInsights_Coordinator: ObservableObject { backgroundMonitor.stop() } + // MARK: - Supplemental AI Context (Phase 5) + + /// Build supplemental context for AI prompt enrichment from Phase 5 analyzers. + /// Returns nil if no Phase 5 features are enabled. + func buildSupplementalContext( + stats: LoopInsightsAggregatedStats, + glucoseSamples: [StoredGlucoseSample]? = nil + ) async -> String? { + var context: [String] = [] + + let start = Date().addingTimeInterval(-stats.period.timeInterval) + let end = Date() + + // Fetch glucose samples once if not provided + var resolvedGlucose: [StoredGlucoseSample]? = glucoseSamples + if resolvedGlucose == nil, let bridge = dataProviderBridge { + resolvedGlucose = try? await bridge.getGlucoseSamples(start: start, end: end) + } + + // Circadian + Dawn Phenomenon + Negative Basal + Stress + if LoopInsights_FeatureFlags.circadianEnabled { + // Circadian profile from glucose + sleep data + if let samples = resolvedGlucose { + if let profile = LoopInsights_AdvancedAnalyzers.buildCircadianProfile( + glucoseSamples: samples, + sleepStats: stats.biometricStats?.sleep + ) { + context.append(LoopInsights_AdvancedAnalyzers.buildCircadianPromptContext(profile)) + } + } + + // Negative basal stats (already computed in aggregation, just need prompt context) + if let negBasal = stats.insulinStats.negativeBasalStats { + context.append(LoopInsights_AdvancedAnalyzers.buildNegativeBasalPromptContext(negBasal)) + } + + // Stress score (already computed in aggregation) + if let stressScore = stats.biometricStats?.stressScore { + context.append(LoopInsights_AdvancedAnalyzers.buildStressPromptContext(stressScore)) + } + } + + // Food response patterns + if LoopInsights_FeatureFlags.foodResponseEnabled { + if let bridge = dataProviderBridge, + let carbEntries = try? await bridge.getCarbEntries(start: start, end: end), + let glucSamples = resolvedGlucose { + let patterns = LoopInsights_FoodResponseAnalyzer.analyzeFoodResponses( + carbEntries: carbEntries, + glucoseSamples: glucSamples + ) + let foodCtx = LoopInsights_FoodResponseAnalyzer.buildFoodResponsePromptContext(patterns) + if !foodCtx.isEmpty { context.append(foodCtx) } + } + } + + // Caffeine context + if LoopInsights_FeatureFlags.caffeineTrackingEnabled { + let caffeineCtx = caffeineTracker.buildCaffeinePromptContext() + if !caffeineCtx.isEmpty { context.append(caffeineCtx) } + } + + guard !context.isEmpty else { return nil } + return context.joined(separator: "\n") + } + + // MARK: - Raw Data Access + + /// Fetch raw glucose samples for the given date range. + /// Tries HealthKit first for longer history, falls back to Loop stores. + func fetchGlucoseSamples(start: Date, end: Date) async throws -> [StoredGlucoseSample] { + guard let bridge = dataProviderBridge else { + throw LoopInsightsError.insufficientData("Data provider not available") + } + return try await bridge.getGlucoseSamples(start: start, end: end) + } + + /// Fetch raw carb entries for the given date range. + func fetchCarbEntries(start: Date, end: Date) async throws -> [StoredCarbEntry] { + guard let bridge = dataProviderBridge else { + throw LoopInsightsError.insufficientData("Data provider not available") + } + return try await bridge.getCarbEntries(start: start, end: end) + } + // MARK: - Therapy Settings Write Access /// Capture a snapshot of the current therapy settings diff --git a/Loop/Models/LoopInsights/LoopInsights_Models.swift b/Loop/Models/LoopInsights/LoopInsights_Models.swift index a44dbcf0a6..24ec771e19 100644 --- a/Loop/Models/LoopInsights/LoopInsights_Models.swift +++ b/Loop/Models/LoopInsights/LoopInsights_Models.swift @@ -89,6 +89,10 @@ enum LoopInsightsPatternType: String, CaseIterable { case highVariability case consistentHighs case consistentLows + case negativeBasal + case highStress + case caffeineCorrelation + case foodSensitivity var displayName: String { switch self { @@ -110,6 +114,14 @@ enum LoopInsightsPatternType: String, CaseIterable { return NSLocalizedString("Consistent Highs", comment: "LoopInsights pattern: consistent highs") case .consistentLows: return NSLocalizedString("Consistent Lows", comment: "LoopInsights pattern: consistent lows") + case .negativeBasal: + return NSLocalizedString("Frequent Suspensions", comment: "LoopInsights pattern: negative basal") + case .highStress: + return NSLocalizedString("High Stress Periods", comment: "LoopInsights pattern: high stress") + case .caffeineCorrelation: + return NSLocalizedString("Caffeine Impact", comment: "LoopInsights pattern: caffeine correlation") + case .foodSensitivity: + return NSLocalizedString("Food Sensitivity", comment: "LoopInsights pattern: food sensitivity") } } @@ -124,6 +136,10 @@ enum LoopInsightsPatternType: String, CaseIterable { case .highVariability: return "waveform.path.ecg" case .consistentHighs: return "arrow.up.circle" case .consistentLows: return "arrow.down.to.line" + case .negativeBasal: return "pause.circle" + case .highStress: return "brain.head.profile" + case .caffeineCorrelation: return "cup.and.saucer.fill" + case .foodSensitivity: return "fork.knife" } } } @@ -602,11 +618,18 @@ struct LoopInsightsAggregatedStats: Codable { let standardDeviation: Double // mg/dL let coefficientOfVariation: Double // percentage let timeInRange: Double // percentage (70-180 mg/dL) - let timeBelowRange: Double // percentage (<70 mg/dL) - let timeAboveRange: Double // percentage (>180 mg/dL) + let timeVeryHigh: Double // percentage (>250 mg/dL) + let timeHigh: Double // percentage (181-250 mg/dL) + let timeLow: Double // percentage (54-69 mg/dL) + let timeVeryLow: Double // percentage (<54 mg/dL) let gmi: Double // Glucose Management Indicator (estimated A1C) let sampleCount: Int let hourlyAverages: [Int: Double] // hour (0-23) → average glucose + + /// Combined time below range (<70 mg/dL) — timeLow + timeVeryLow + var timeBelowRange: Double { timeLow + timeVeryLow } + /// Combined time above range (>180 mg/dL) — timeHigh + timeVeryHigh + var timeAboveRange: Double { timeHigh + timeVeryHigh } } struct InsulinStats: Codable { @@ -615,6 +638,7 @@ struct LoopInsightsAggregatedStats: Codable { let bolusPercentage: Double // percentage of TDD from bolus let hourlyBasalAverages: [Int: Double] // hour → average basal rate delivered let correctionBolusCount: Int // number of correction boluses in period + let negativeBasalStats: LoopInsightsNegativeBasalStats? // Phase 5: suspension/sub-basal stats } struct CarbStats: Codable { @@ -631,6 +655,7 @@ struct LoopInsightsAggregatedStats: Codable { let sleep: SleepStats? let activeEnergy: ActiveEnergyStats? let weight: WeightStats? + let stressScore: LoopInsightsStressScore? // Phase 5: HRV-derived stress } struct HeartRateStats: Codable { diff --git a/Loop/Models/LoopInsights/LoopInsights_Phase5Models.swift b/Loop/Models/LoopInsights/LoopInsights_Phase5Models.swift new file mode 100644 index 0000000000..5a4ed625c6 --- /dev/null +++ b/Loop/Models/LoopInsights/LoopInsights_Phase5Models.swift @@ -0,0 +1,233 @@ +// +// LoopInsights_Phase5Models.swift +// Loop +// +// Concept & design by Taylor Patterson. Coded & tested by Claude Code in February 2026. +// Copyright (c) 2025-2026 LoopKit Authors. All rights reserved. +// + +import Foundation + +// MARK: - Circadian Profile + +/// 24-hour circadian glucose profile derived from sleep/wake data and glucose patterns +struct LoopInsightsCircadianProfile: Codable { + let preSleepAvgGlucose: Double // mg/dL — avg glucose in hour before bed + let overnightAvgGlucose: Double // mg/dL — avg glucose during sleep + let wakeGlucose: Double // mg/dL — avg glucose at wake time + let riseAfterWake: Double // mg/dL — glucose rise in first 2h after wake + let dawnRiseDetected: Bool // True if significant rise before wake + let dawnRiseMagnitude: Double // mg/dL — magnitude of pre-wake rise + let estimatedWakeHour: Int // Hour (0-23) from sleep data or fallback + let estimatedBedHour: Int // Hour (0-23) from sleep data or fallback + let hourlyGlucoseRelativeToWake: [Int: Double] // hours-from-wake → avg glucose +} + +// MARK: - Food Response Pattern + +/// Per-food-type glucose response statistics +struct LoopInsightsFoodResponsePattern: Identifiable, Codable { + let id: UUID + let foodType: String // e.g. "Pizza", "Rice", "Bread" + let mealCount: Int // Number of meals analyzed + let averageCarbsPerMeal: Double // grams + let peakGlucoseRise: Double // mg/dL — avg max rise above pre-meal + let timeToPeakMinutes: Double // Minutes from meal to peak + let averageResponseAUC: Double // Area under the curve (mg/dL * hours) + let twoHourPostMealAvg: Double // mg/dL — avg glucose 2h post-meal + let fourHourPostMealAvg: Double // mg/dL — avg glucose 4h post-meal + + init(foodType: String, mealCount: Int, averageCarbsPerMeal: Double, + peakGlucoseRise: Double, timeToPeakMinutes: Double, + averageResponseAUC: Double, twoHourPostMealAvg: Double, + fourHourPostMealAvg: Double) { + self.id = UUID() + self.foodType = foodType + self.mealCount = mealCount + self.averageCarbsPerMeal = averageCarbsPerMeal + self.peakGlucoseRise = peakGlucoseRise + self.timeToPeakMinutes = timeToPeakMinutes + self.averageResponseAUC = averageResponseAUC + self.twoHourPostMealAvg = twoHourPostMealAvg + self.fourHourPostMealAvg = fourHourPostMealAvg + } +} + +/// A single meal event with matched glucose response for debrief +struct LoopInsightsMealEvent: Identifiable { + let id: UUID + let date: Date + let foodType: String + let carbs: Double // grams + let preMealGlucose: Double // mg/dL + let peakGlucose: Double // mg/dL + let twoHourGlucose: Double // mg/dL + let glucoseTimeline: [(minutesAfter: Int, glucose: Double)] + + init(date: Date, foodType: String, carbs: Double, preMealGlucose: Double, + peakGlucose: Double, twoHourGlucose: Double, + glucoseTimeline: [(minutesAfter: Int, glucose: Double)]) { + self.id = UUID() + self.date = date + self.foodType = foodType + self.carbs = carbs + self.preMealGlucose = preMealGlucose + self.peakGlucose = peakGlucose + self.twoHourGlucose = twoHourGlucose + self.glucoseTimeline = glucoseTimeline + } +} + +// MARK: - Negative Basal Stats + +/// Statistics about insulin suspension and sub-scheduled-rate delivery +struct LoopInsightsNegativeBasalStats: Codable { + let suspensionCount: Int // Number of suspend events + let totalSuspensionMinutes: Double // Total minutes of zero delivery + let suspensionPercentage: Double // % of total time spent suspended + let subBasalMinutes: Double // Minutes at rate < scheduled + let hourlyDistribution: [Int: Double] // hour → minutes of neg basal at that hour + let overcorrectionEvents: Int // Suspensions followed by rebound high >180 +} + +// MARK: - Stress Score + +/// HRV-derived stress score with glucose correlation +struct LoopInsightsStressScore: Codable { + let overallScore: Double // 0-100 (0=relaxed, 100=high stress) + let hourlyScores: [Int: Double] // hour → stress score + let glucoseCVCorrelation: Double // Correlation coefficient with glucose CV + let averageSDNN: Double // ms — average HRV SDNN for reference + let highStressHours: [Int] // Hours where stress > 70 +} + +// MARK: - Caffeine + +/// A single caffeine intake entry +struct LoopInsightsCaffeineEntry: Identifiable, Codable { + let id: UUID + let timestamp: Date + let milligrams: Double + let source: String // e.g. "Espresso", "Coffee (Medium)" + let isFromHealthKit: Bool + + init(id: UUID = UUID(), timestamp: Date, milligrams: Double, source: String, isFromHealthKit: Bool = false) { + self.id = id + self.timestamp = timestamp + self.milligrams = milligrams + self.source = source + self.isFromHealthKit = isFromHealthKit + } +} + +/// Current caffeine state computed from entries with half-life decay +struct LoopInsightsCaffeineState: Codable { + let currentLevelMg: Double // Current caffeine level in mg + let peakLevelToday: Double // Highest level today + let lastIntakeTime: Date? // When the last caffeine was consumed + let entriesLast24h: Int // Number of entries in last 24h + let totalMgLast24h: Double // Total mg consumed in last 24h +} + +/// Caffeine preset for quick-add +struct LoopInsightsCaffeinePreset: Identifiable { + let id = UUID() + let name: String + let milligrams: Double + let icon: String // SF Symbol name + + static let defaults: [LoopInsightsCaffeinePreset] = [ + LoopInsightsCaffeinePreset(name: "Espresso", milligrams: 63, icon: "cup.and.saucer.fill"), + LoopInsightsCaffeinePreset(name: "Coffee (Small)", milligrams: 95, icon: "cup.and.saucer.fill"), + LoopInsightsCaffeinePreset(name: "Coffee (Medium)", milligrams: 142, icon: "cup.and.saucer.fill"), + LoopInsightsCaffeinePreset(name: "Coffee (Large)", milligrams: 190, icon: "cup.and.saucer.fill"), + LoopInsightsCaffeinePreset(name: "Tea (Green)", milligrams: 28, icon: "leaf.fill"), + LoopInsightsCaffeinePreset(name: "Tea (Black)", milligrams: 47, icon: "leaf.fill"), + LoopInsightsCaffeinePreset(name: "Energy Drink", milligrams: 80, icon: "bolt.fill"), + LoopInsightsCaffeinePreset(name: "Cola", milligrams: 34, icon: "drop.fill"), + ] +} + +// MARK: - Nightscout + +/// Nightscout server configuration +struct LoopInsightsNightscoutConfig: Codable, Equatable { + var siteURL: String + var apiSecret: String + var isConnected: Bool + + init(siteURL: String = "", apiSecret: String = "", isConnected: Bool = false) { + self.siteURL = siteURL + self.apiSecret = apiSecret + self.isConnected = isConnected + } + + static let storageKey = "LoopInsights_nightscoutConfig" + + static func load() -> LoopInsightsNightscoutConfig { + guard let data = UserDefaults.standard.data(forKey: storageKey), + let config = try? JSONDecoder().decode(LoopInsightsNightscoutConfig.self, from: data) else { + return LoopInsightsNightscoutConfig() + } + return config + } + + func save() { + if let data = try? JSONEncoder().encode(self) { + UserDefaults.standard.set(data, forKey: Self.storageKey) + } + } +} + +/// A single Nightscout SGV entry (from /api/v1/entries.json) +struct LoopInsightsNightscoutEntry: Codable { + let sgv: Double // mg/dL + let dateString: String? // ISO date + let date: Double? // epoch ms + let direction: String? // Trend direction + + var sampleDate: Date? { + if let dateStr = dateString { + let formatter = ISO8601DateFormatter() + formatter.formatOptions = [.withInternetDateTime, .withFractionalSeconds] + if let d = formatter.date(from: dateStr) { return d } + formatter.formatOptions = [.withInternetDateTime] + return formatter.date(from: dateStr) + } + if let epoch = date { + return Date(timeIntervalSince1970: epoch / 1000) + } + return nil + } +} + +/// A single Nightscout treatment (from /api/v1/treatments.json) +struct LoopInsightsNightscoutTreatment: Codable { + let eventType: String? + let created_at: String? + let carbs: Double? + let insulin: Double? + let rate: Double? // Temp basal rate + let duration: Double? // Duration in minutes + + var treatmentDate: Date? { + guard let dateStr = created_at else { return nil } + let formatter = ISO8601DateFormatter() + formatter.formatOptions = [.withInternetDateTime, .withFractionalSeconds] + if let d = formatter.date(from: dateStr) { return d } + formatter.formatOptions = [.withInternetDateTime] + return formatter.date(from: dateStr) + } +} + +// MARK: - AGP Data Point + +/// A single time point in an Ambulatory Glucose Profile +struct LoopInsightsAGPDataPoint { + let minuteOfDay: Int // 0-1439 + let p10: Double // 10th percentile mg/dL + let p25: Double // 25th percentile mg/dL + let p50: Double // 50th (median) mg/dL + let p75: Double // 75th percentile mg/dL + let p90: Double // 90th percentile mg/dL +} diff --git a/Loop/Resources/LoopInsights/LoopInsights_FeatureFlags.swift b/Loop/Resources/LoopInsights/LoopInsights_FeatureFlags.swift index 04d8e62610..b8948ea81d 100644 --- a/Loop/Resources/LoopInsights/LoopInsights_FeatureFlags.swift +++ b/Loop/Resources/LoopInsights/LoopInsights_FeatureFlags.swift @@ -29,6 +29,11 @@ struct LoopInsights_FeatureFlags { static let quietHoursEnd = "LoopInsights_quietHoursEnd" static let notificationStyle = "LoopInsights_notificationStyle" static let biometricsEnabled = "LoopInsights_biometricsEnabled" + static let circadianEnabled = "LoopInsights_circadianEnabled" + static let foodResponseEnabled = "LoopInsights_foodResponseEnabled" + static let caffeineTrackingEnabled = "LoopInsights_caffeineTrackingEnabled" + static let nightscoutImportEnabled = "LoopInsights_nightscoutImportEnabled" + static let agpChartEnabled = "LoopInsights_agpChartEnabled" } private static let defaults = UserDefaults.standard @@ -199,6 +204,39 @@ struct LoopInsights_FeatureFlags { set { defaults.set(newValue, forKey: Keys.biometricsEnabled) } } + // MARK: - Phase 5 Feature Flags + + /// Enables circadian analysis, dawn phenomenon detection, negative basal awareness, + /// and HRV-based stress scoring. All advanced analyzers gated by one flag. + static var circadianEnabled: Bool { + get { defaults.bool(forKey: Keys.circadianEnabled) } + set { defaults.set(newValue, forKey: Keys.circadianEnabled) } + } + + /// Enables food-type response pattern analysis and the Meal Insights view. + static var foodResponseEnabled: Bool { + get { defaults.bool(forKey: Keys.foodResponseEnabled) } + set { defaults.set(newValue, forKey: Keys.foodResponseEnabled) } + } + + /// Enables caffeine intake tracking and the Caffeine Log view. + static var caffeineTrackingEnabled: Bool { + get { defaults.bool(forKey: Keys.caffeineTrackingEnabled) } + set { defaults.set(newValue, forKey: Keys.caffeineTrackingEnabled) } + } + + /// Enables Nightscout data import as an alternative/supplemental data source. + static var nightscoutImportEnabled: Bool { + get { defaults.bool(forKey: Keys.nightscoutImportEnabled) } + set { defaults.set(newValue, forKey: Keys.nightscoutImportEnabled) } + } + + /// Enables the Ambulatory Glucose Profile chart on the dashboard. + static var agpChartEnabled: Bool { + get { defaults.bool(forKey: Keys.agpChartEnabled) } + set { defaults.set(newValue, forKey: Keys.agpChartEnabled) } + } + // MARK: - AI Configuration /// User-configurable AI provider configuration. Persisted to UserDefaults (excluding API key). diff --git a/Loop/Services/LoopInsights/LoopInsights_AIAnalysis.swift b/Loop/Services/LoopInsights/LoopInsights_AIAnalysis.swift index 47802f09c1..d37f52a5a4 100644 --- a/Loop/Services/LoopInsights/LoopInsights_AIAnalysis.swift +++ b/Loop/Services/LoopInsights/LoopInsights_AIAnalysis.swift @@ -34,10 +34,11 @@ final class LoopInsights_AIAnalysis { settingType: LoopInsightsSettingType, currentSettings: LoopInsightsTherapySnapshot, stats: LoopInsightsAggregatedStats, - recentChanges: [LoopInsightsSuggestionRecord] = [] + recentChanges: [LoopInsightsSuggestionRecord] = [], + supplementalContext: String? = nil ) async throws -> LoopInsightsAnalysisResponse { - let systemPrompt = buildSystemPrompt() - let userPrompt = buildUserPrompt(settingType: settingType, settings: currentSettings, stats: stats, recentChanges: recentChanges) + let systemPrompt = buildSystemPrompt(supplementalContext: supplementalContext) + let userPrompt = buildUserPrompt(settingType: settingType, settings: currentSettings, stats: stats, recentChanges: recentChanges, supplementalContext: supplementalContext) let timestamp = Date() let rawResponse = try await serviceAdapter.sendPrompt(systemPrompt, userPrompt: userPrompt) @@ -56,7 +57,7 @@ final class LoopInsights_AIAnalysis { // MARK: - System Prompt - private func buildSystemPrompt() -> String { + private func buildSystemPrompt(supplementalContext: String? = nil) -> String { let personality = LoopInsights_FeatureFlags.aiPersonality return """ You are LoopInsights, an expert-level automated insulin delivery (AID) therapy settings analyst. \ @@ -152,6 +153,22 @@ final class LoopInsights_AIAnalysis { setting changes. If glucose variability correlates with activity or sleep variation, \ note this as a lifestyle factor rather than a settings problem. + ADVANCED CONTEXT — When supplemental data is provided below the user prompt: + - CIRCADIAN PROFILE: Use actual sleep/wake times to evaluate overnight and dawn patterns \ + rather than fixed time windows. A dawn rise before the user's actual wake time is a true dawn \ + phenomenon; a rise that starts after wake is likely a breakfast/activity effect. + - NEGATIVE BASAL: Frequent insulin suspensions (>10% of time) strongly suggest basal is too high. \ + Overcorrection events (suspend → rebound high) indicate settings oscillation. Weight suspension \ + patterns by hour to identify which time blocks need basal reduction. + - STRESS SCORE: High physiological stress (score >70) increases insulin resistance. If stress \ + correlates with glucose variability, settings changes alone may not solve the problem — note \ + lifestyle factors in your assessment. + - FOOD RESPONSE: Per-food glucose patterns help distinguish CR problems from ISF problems. If \ + high-GI foods cause large spikes but low-GI foods are handled well, the issue is food choice, \ + not necessarily CR settings. + - CAFFEINE: Active caffeine >100mg can increase insulin resistance and glucose variability. \ + Factor caffeine timing into your assessment of glucose patterns, especially morning highs. + RESPONSE FORMAT: Respond with valid JSON in this exact structure: { @@ -187,7 +204,8 @@ final class LoopInsights_AIAnalysis { settingType: LoopInsightsSettingType, settings: LoopInsightsTherapySnapshot, stats: LoopInsightsAggregatedStats, - recentChanges: [LoopInsightsSuggestionRecord] = [] + recentChanges: [LoopInsightsSuggestionRecord] = [], + supplementalContext: String? = nil ) -> String { var prompt = "Evaluate whether my \(settingType.displayName) settings need adjustment.\n\n" @@ -354,8 +372,16 @@ final class LoopInsights_AIAnalysis { } } + // Phase 5: Supplemental context from advanced analyzers + if let supplemental = supplementalContext, !supplemental.isEmpty { + prompt += "\n\n## Supplemental Analysis Context\n" + prompt += supplemental + prompt += "\n" + } + prompt += "\nAnalyze this data focusing specifically on \(settingType.displayName). " prompt += "Use the time-of-day analysis and algorithm workload metrics to identify actionable patterns. " + prompt += "If supplemental context is provided above, incorporate it into your reasoning. " prompt += "If the data clearly supports adjustments, propose them. If not, return empty suggestions. " prompt += "Respond with JSON only, no markdown formatting." diff --git a/Loop/Services/LoopInsights/LoopInsights_AdvancedAnalyzers.swift b/Loop/Services/LoopInsights/LoopInsights_AdvancedAnalyzers.swift new file mode 100644 index 0000000000..d28b62e05b --- /dev/null +++ b/Loop/Services/LoopInsights/LoopInsights_AdvancedAnalyzers.swift @@ -0,0 +1,275 @@ +// +// LoopInsights_AdvancedAnalyzers.swift +// Loop +// +// Concept & design by Taylor Patterson. Coded & tested by Claude Code in February 2026. +// Copyright (c) 2025-2026 LoopKit Authors. All rights reserved. +// + +import Foundation +import LoopKit +import HealthKit + +/// Advanced analyzers for Phase 5: Circadian AI, Dawn Phenomenon, +/// Negative Basal Awareness, and HRV Stress Score. +/// Each analyzer computes stats from raw data and builds prompt context strings. +final class LoopInsights_AdvancedAnalyzers { + + // MARK: - Circadian Profile + + /// Build a circadian glucose profile using sleep data and glucose samples. + /// Uses actual wake/bed times from HealthKit sleep data when available. + static func buildCircadianProfile( + glucoseSamples: [StoredGlucoseSample], + sleepStats: LoopInsightsAggregatedStats.SleepStats? + ) -> LoopInsightsCircadianProfile? { + guard !glucoseSamples.isEmpty else { return nil } + + let calendar = Calendar.current + + // Determine wake/bed hours from sleep data or use defaults + let wakeHour: Int + let bedHour: Int + if let sleep = sleepStats { + wakeHour = Int(sleep.averageWakeTime) / 3600 + bedHour = Int(sleep.averageBedtime) / 3600 + } else { + wakeHour = 7 + bedHour = 22 + } + + // Bucket glucose by hour + var hourlyBuckets: [Int: [Double]] = [:] + for sample in glucoseSamples { + let hour = calendar.component(.hour, from: sample.startDate) + let value = sample.quantity.doubleValue(for: .milligramsPerDeciliter) + hourlyBuckets[hour, default: []].append(value) + } + + let hourlyAvg: (Int) -> Double = { hour in + guard let vals = hourlyBuckets[hour], !vals.isEmpty else { return 0 } + return vals.reduce(0, +) / Double(vals.count) + } + + // Pre-sleep: hour before bed + let preSleepHour = (bedHour - 1 + 24) % 24 + let preSleepAvg = hourlyAvg(preSleepHour) + + // Overnight: bed to wake + var overnightValues: [Double] = [] + var h = bedHour + while h != wakeHour { + if let vals = hourlyBuckets[h] { overnightValues.append(contentsOf: vals) } + h = (h + 1) % 24 + } + let overnightAvg = overnightValues.isEmpty ? 0 : overnightValues.reduce(0, +) / Double(overnightValues.count) + + // Wake glucose + let wakeGlucose = hourlyAvg(wakeHour) + + // Rise after wake: compare wake hour to wake+2 + let twoHoursAfterWake = (wakeHour + 2) % 24 + let riseAfterWake = hourlyAvg(twoHoursAfterWake) - wakeGlucose + + // Dawn phenomenon: detect rise in the 2-3 hours before wake + let dawnStart = (wakeHour - 3 + 24) % 24 + let dawnStartGlucose = hourlyAvg(dawnStart) + let dawnRise = wakeGlucose - dawnStartGlucose + let dawnDetected = dawnRise > 15 // 15 mg/dL threshold + + // Hourly glucose relative to wake + var relativeHourly: [Int: Double] = [:] + for offset in -6...12 { + let absHour = (wakeHour + offset + 24) % 24 + let avg = hourlyAvg(absHour) + if avg > 0 { + relativeHourly[offset] = avg + } + } + + return LoopInsightsCircadianProfile( + preSleepAvgGlucose: preSleepAvg, + overnightAvgGlucose: overnightAvg, + wakeGlucose: wakeGlucose, + riseAfterWake: riseAfterWake, + dawnRiseDetected: dawnDetected, + dawnRiseMagnitude: max(0, dawnRise), + estimatedWakeHour: wakeHour, + estimatedBedHour: bedHour, + hourlyGlucoseRelativeToWake: relativeHourly + ) + } + + /// Build prompt context string from circadian profile + static func buildCircadianPromptContext(_ profile: LoopInsightsCircadianProfile) -> String { + var ctx = "## Circadian Glucose Profile\n" + ctx += "- Estimated bed time: \(profile.estimatedBedHour):00, wake time: \(profile.estimatedWakeHour):00\n" + ctx += "- Pre-sleep avg glucose: \(String(format: "%.0f", profile.preSleepAvgGlucose)) mg/dL\n" + ctx += "- Overnight avg glucose: \(String(format: "%.0f", profile.overnightAvgGlucose)) mg/dL\n" + ctx += "- Wake glucose: \(String(format: "%.0f", profile.wakeGlucose)) mg/dL\n" + ctx += "- Rise after wake (2h): \(String(format: "%+.0f", profile.riseAfterWake)) mg/dL\n" + if profile.dawnRiseDetected { + ctx += "- ** DAWN PHENOMENON DETECTED: \(String(format: "%.0f", profile.dawnRiseMagnitude)) mg/dL rise in 3h before wake **\n" + } + return ctx + } + + // MARK: - Negative Basal Stats + + /// Compute negative basal statistics from dose entries and scheduled basal rate. + static func computeNegativeBasalStats( + doses: [DoseEntry], + scheduledBasalItems: [LoopInsightsTherapySnapshot.LoopInsightsScheduleItem], + periodDays: Int, + glucoseSamples: [StoredGlucoseSample] + ) -> LoopInsightsNegativeBasalStats { + let calendar = Calendar.current + var suspensionCount = 0 + var totalSuspensionMinutes: Double = 0 + var subBasalMinutes: Double = 0 + var hourlyDistribution: [Int: Double] = [:] + var overcorrectionEvents = 0 + + let totalMinutes = Double(periodDays) * 24 * 60 + + for dose in doses { + let durationMinutes = dose.endDate.timeIntervalSince(dose.startDate) / 60 + let hour = calendar.component(.hour, from: dose.startDate) + + if dose.type == .suspend { + suspensionCount += 1 + totalSuspensionMinutes += durationMinutes + hourlyDistribution[hour, default: 0] += durationMinutes + + // Check for overcorrection: glucose > 180 within 2h after suspension ends + let checkWindow = dose.endDate...dose.endDate.addingTimeInterval(2 * 3600) + let reboundHigh = glucoseSamples.contains { sample in + checkWindow.contains(sample.startDate) && + sample.quantity.doubleValue(for: .milligramsPerDeciliter) > 180 + } + if reboundHigh { overcorrectionEvents += 1 } + } else if dose.type == .tempBasal { + let rate = dose.unitsPerHour + let scheduledRate = effectiveScheduledRate(at: dose.startDate, items: scheduledBasalItems) + if rate < scheduledRate { + let minutes = durationMinutes + subBasalMinutes += minutes + hourlyDistribution[hour, default: 0] += minutes + } + } + } + + let suspensionPercentage = totalMinutes > 0 ? (totalSuspensionMinutes / totalMinutes) * 100 : 0 + + return LoopInsightsNegativeBasalStats( + suspensionCount: suspensionCount, + totalSuspensionMinutes: totalSuspensionMinutes, + suspensionPercentage: suspensionPercentage, + subBasalMinutes: subBasalMinutes, + hourlyDistribution: hourlyDistribution, + overcorrectionEvents: overcorrectionEvents + ) + } + + /// Build prompt context from negative basal stats + static func buildNegativeBasalPromptContext(_ stats: LoopInsightsNegativeBasalStats) -> String { + var ctx = "## Negative Basal / Suspension Analysis\n" + ctx += "- Suspension events: \(stats.suspensionCount)\n" + ctx += "- Total suspension time: \(String(format: "%.0f", stats.totalSuspensionMinutes)) minutes (\(String(format: "%.1f", stats.suspensionPercentage))% of period)\n" + ctx += "- Sub-scheduled basal time: \(String(format: "%.0f", stats.subBasalMinutes)) minutes\n" + ctx += "- Overcorrection events (suspend → rebound >180): \(stats.overcorrectionEvents)\n" + if !stats.hourlyDistribution.isEmpty { + let sorted = stats.hourlyDistribution.sorted { $0.value > $1.value } + let topHours = sorted.prefix(3).map { "\(String(format: "%02d", $0.key)):00 (\(String(format: "%.0f", $0.value))min)" } + ctx += "- Heaviest suspension hours: \(topHours.joined(separator: ", "))\n" + } + if stats.suspensionPercentage > 10 { + ctx += "** HIGH SUSPENSION RATE: Algorithm is frequently cutting insulin — basal may be too high **\n" + } + if stats.overcorrectionEvents > 3 { + ctx += "** OVERCORRECTION PATTERN: Suspensions followed by rebound highs suggest settings oscillation **\n" + } + return ctx + } + + // MARK: - Stress Score from HRV + + /// Compute stress score from HRV data and correlate with glucose variability. + static func computeStressScore( + hrvStats: LoopInsightsAggregatedStats.HRVStats?, + glucoseStats: LoopInsightsAggregatedStats.GlucoseStats + ) -> LoopInsightsStressScore? { + guard let hrv = hrvStats, hrv.averageSDNN > 0 else { return nil } + + // Convert SDNN to stress score (0-100 scale) + // SDNN > 100ms = low stress (~10), SDNN < 20ms = high stress (~90) + let sdnn = hrv.averageSDNN + let overallScore = max(0, min(100, 100 - (sdnn - 20) * (90.0 / 80.0))) + + // Approximate hourly scores — we don't have hourly HRV, so use overall + // with small random-ish variation based on glucose hourly CV + var hourlyScores: [Int: Double] = [:] + for hour in 0..<24 { + if let hourGlucose = glucoseStats.hourlyAverages[hour] { + // Higher glucose deviation from mean → higher stress estimate + let deviation = abs(hourGlucose - glucoseStats.averageGlucose) + let hourModifier = min(15, deviation / 5) + hourlyScores[hour] = min(100, max(0, overallScore + hourModifier)) + } + } + + // High stress hours (score > 70) + let highStressHours = hourlyScores.filter { $0.value > 70 }.map { $0.key }.sorted() + + // Simple correlation between hourly stress and glucose CV + let glucoseCV = glucoseStats.coefficientOfVariation + let cvCorrelation = min(1.0, max(-1.0, (overallScore - 50) / 50 * (glucoseCV > 36 ? 0.6 : 0.3))) + + return LoopInsightsStressScore( + overallScore: overallScore, + hourlyScores: hourlyScores, + glucoseCVCorrelation: cvCorrelation, + averageSDNN: sdnn, + highStressHours: highStressHours + ) + } + + /// Build prompt context from stress score + static func buildStressPromptContext(_ score: LoopInsightsStressScore) -> String { + var ctx = "## Stress Score (HRV-derived)\n" + ctx += "- Overall stress score: \(String(format: "%.0f", score.overallScore))/100 (higher = more stress)\n" + ctx += "- Average HRV SDNN: \(String(format: "%.1f", score.averageSDNN)) ms\n" + ctx += "- Stress-glucose CV correlation: \(String(format: "%.2f", score.glucoseCVCorrelation))\n" + if !score.highStressHours.isEmpty { + let hourStrings = score.highStressHours.map { "\(String(format: "%02d", $0)):00" } + ctx += "- High stress hours: \(hourStrings.joined(separator: ", "))\n" + } + if score.overallScore > 70 { + ctx += "** HIGH PHYSIOLOGICAL STRESS: May increase insulin resistance. Consider this when evaluating settings. **\n" + } + return ctx + } + + // MARK: - Helpers + + private static func effectiveScheduledRate( + at date: Date, + items: [LoopInsightsTherapySnapshot.LoopInsightsScheduleItem] + ) -> Double { + let calendar = Calendar.current + let secondsSinceMidnight = TimeInterval( + calendar.component(.hour, from: date) * 3600 + + calendar.component(.minute, from: date) * 60 + ) + let sorted = items.sorted { $0.startTime < $1.startTime } + var result = sorted.first?.value ?? 0 + for item in sorted { + if item.startTime <= secondsSinceMidnight { + result = item.value + } else { + break + } + } + return result + } +} diff --git a/Loop/Services/LoopInsights/LoopInsights_CaffeineTracker.swift b/Loop/Services/LoopInsights/LoopInsights_CaffeineTracker.swift new file mode 100644 index 0000000000..3e735b0361 --- /dev/null +++ b/Loop/Services/LoopInsights/LoopInsights_CaffeineTracker.swift @@ -0,0 +1,218 @@ +// +// LoopInsights_CaffeineTracker.swift +// Loop +// +// Concept & design by Taylor Patterson. Coded & tested by Claude Code in February 2026. +// Copyright (c) 2025-2026 LoopKit Authors. All rights reserved. +// + +import Foundation +import HealthKit + +/// Tracks caffeine intake with half-life decay model and provides prompt context. +/// Entries are persisted to UserDefaults. Uses a 5.7-hour half-life for caffeine metabolism. +/// Also reads dietary caffeine from HealthKit and merges with manual entries. +final class LoopInsights_CaffeineTracker: ObservableObject { + + static let shared = LoopInsights_CaffeineTracker() + + /// Caffeine half-life in seconds (5.7 hours) + private static let halfLife: TimeInterval = 5.7 * 3600 + + /// UserDefaults key for persisted entries + private static let storageKey = "LoopInsights_caffeineEntries" + + @Published private(set) var entries: [LoopInsightsCaffeineEntry] = [] + + /// HealthKit-sourced entries (not persisted to UserDefaults) + private var healthKitEntries: [LoopInsightsCaffeineEntry] = [] + + /// Reference to HealthKitManager for fetching caffeine data + var healthKitManager: LoopInsights_HealthKitManager? + + init() { + loadEntries() + } + + // MARK: - HealthKit Integration + + /// Fetch caffeine entries from HealthKit and merge with manual entries. + func syncFromHealthKit() async { + guard let hkManager = healthKitManager else { return } + + let start = Date().addingTimeInterval(-48 * 3600) + let end = Date() + + do { + let hkEntries = try await hkManager.fetchCaffeineEntries(start: start, end: end) + await MainActor.run { + self.healthKitEntries = hkEntries + self.rebuildMergedEntries() + } + } catch { + print("[LoopInsights] Failed to fetch HealthKit caffeine: \(error)") + } + } + + /// Merge manual + HealthKit entries, sorted by timestamp descending + private func rebuildMergedEntries() { + var manual = loadManualEntries() + manual.append(contentsOf: healthKitEntries) + manual.sort { $0.timestamp > $1.timestamp } + entries = manual + } + + // MARK: - Public API + + /// Log a caffeine intake + func logCaffeine(milligrams: Double, source: String, at timestamp: Date = Date()) { + let entry = LoopInsightsCaffeineEntry( + timestamp: timestamp, + milligrams: milligrams, + source: source + ) + var manual = loadManualEntries() + manual.append(entry) + saveManualEntries(manual) + rebuildMergedEntries() + } + + /// Remove an entry (only manual entries can be removed) + func removeEntry(_ entry: LoopInsightsCaffeineEntry) { + guard !entry.isFromHealthKit else { return } + var manual = loadManualEntries() + manual.removeAll { $0.id == entry.id } + saveManualEntries(manual) + rebuildMergedEntries() + } + + /// Update an existing manual entry + func updateEntry(id: UUID, milligrams: Double, source: String, timestamp: Date) { + var manual = loadManualEntries() + guard let idx = manual.firstIndex(where: { $0.id == id }) else { return } + manual[idx] = LoopInsightsCaffeineEntry( + id: id, + timestamp: timestamp, + milligrams: milligrams, + source: source + ) + saveManualEntries(manual) + rebuildMergedEntries() + } + + /// Current caffeine state computed from all entries + func currentState(at now: Date = Date()) -> LoopInsightsCaffeineState { + var currentLevel: Double = 0 + var peakToday: Double = 0 + var totalLast24h: Double = 0 + var entriesLast24h = 0 + var lastIntake: Date? + + let twentyFourHoursAgo = now.addingTimeInterval(-24 * 3600) + let startOfToday = Calendar.current.startOfDay(for: now) + + for entry in entries { + // Compute remaining caffeine from this entry + let elapsed = now.timeIntervalSince(entry.timestamp) + guard elapsed >= 0 else { continue } + + let remaining = entry.milligrams * pow(0.5, elapsed / Self.halfLife) + if remaining > 0.1 { + currentLevel += remaining + } + + // Track 24h stats + if entry.timestamp >= twentyFourHoursAgo { + totalLast24h += entry.milligrams + entriesLast24h += 1 + } + + // Track last intake + if lastIntake == nil || entry.timestamp > (lastIntake ?? .distantPast) { + lastIntake = entry.timestamp + } + + // Track peak today (sum of remaining at time of each entry today) + if entry.timestamp >= startOfToday { + var levelAtEntry: Double = 0 + for other in entries where other.timestamp <= entry.timestamp { + let otherElapsed = entry.timestamp.timeIntervalSince(other.timestamp) + levelAtEntry += other.milligrams * pow(0.5, otherElapsed / Self.halfLife) + } + peakToday = max(peakToday, levelAtEntry) + } + } + + return LoopInsightsCaffeineState( + currentLevelMg: currentLevel, + peakLevelToday: peakToday, + lastIntakeTime: lastIntake, + entriesLast24h: entriesLast24h, + totalMgLast24h: totalLast24h + ) + } + + // MARK: - Prompt Context + + /// Build prompt context string for AI analysis + func buildCaffeinePromptContext(at now: Date = Date()) -> String { + let state = currentState(at: now) + guard state.entriesLast24h > 0 else { return "" } + + var ctx = "## Caffeine Intake\n" + ctx += "- Current estimated caffeine level: \(String(format: "%.0f", state.currentLevelMg)) mg\n" + ctx += "- Total caffeine last 24h: \(String(format: "%.0f", state.totalMgLast24h)) mg (\(state.entriesLast24h) intake(s))\n" + if let lastTime = state.lastIntakeTime { + let minutesAgo = Int(now.timeIntervalSince(lastTime) / 60) + if minutesAgo < 60 { + ctx += "- Last intake: \(minutesAgo) minutes ago\n" + } else { + ctx += "- Last intake: \(minutesAgo / 60)h \(minutesAgo % 60)m ago\n" + } + } + ctx += "- Peak caffeine level today: \(String(format: "%.0f", state.peakLevelToday)) mg\n" + + if state.currentLevelMg > 200 { + ctx += "** HIGH CAFFEINE: Current level >200mg may significantly affect insulin sensitivity and glucose variability **\n" + } else if state.currentLevelMg > 100 { + ctx += "** MODERATE CAFFEINE: May influence glucose response, especially post-meal **\n" + } + + // List recent entries + let recentEntries = entries.filter { $0.timestamp >= now.addingTimeInterval(-24 * 3600) } + if !recentEntries.isEmpty { + ctx += "- Recent entries: " + let formatter = DateFormatter() + formatter.timeStyle = .short + ctx += recentEntries.prefix(5).map { "\(formatter.string(from: $0.timestamp)) \($0.source) (\(String(format: "%.0f", $0.milligrams))mg)" }.joined(separator: "; ") + ctx += "\n" + } + + return ctx + } + + // MARK: - Persistence + + private func loadEntries() { + entries = loadManualEntries() + } + + /// Load manual entries from UserDefaults + private func loadManualEntries() -> [LoopInsightsCaffeineEntry] { + guard let data = UserDefaults.standard.data(forKey: Self.storageKey), + let decoded = try? JSONDecoder().decode([LoopInsightsCaffeineEntry].self, from: data) else { + return [] + } + let cutoff = Date().addingTimeInterval(-48 * 3600) + return decoded.filter { $0.timestamp >= cutoff }.sorted { $0.timestamp > $1.timestamp } + } + + /// Save manual entries to UserDefaults (excludes HealthKit entries) + private func saveManualEntries(_ manual: [LoopInsightsCaffeineEntry]) { + let cutoff = Date().addingTimeInterval(-48 * 3600) + let pruned = manual.filter { !$0.isFromHealthKit && $0.timestamp >= cutoff } + if let data = try? JSONEncoder().encode(pruned) { + UserDefaults.standard.set(data, forKey: Self.storageKey) + } + } +} diff --git a/Loop/Services/LoopInsights/LoopInsights_DataAggregator.swift b/Loop/Services/LoopInsights/LoopInsights_DataAggregator.swift index a3818998a3..c8ba20b166 100644 --- a/Loop/Services/LoopInsights/LoopInsights_DataAggregator.swift +++ b/Loop/Services/LoopInsights/LoopInsights_DataAggregator.swift @@ -49,12 +49,63 @@ final class LoopInsights_DataAggregator { async let carbStats = computeCarbStats(provider: dataProvider, start: startDate, end: endDate) async let biometrics = fetchBiometricsIfEnabled(start: startDate, end: endDate) + var resolvedInsulinStats = try await insulinStats + let resolvedBiometrics = try await biometrics + let resolvedGlucoseStats = try await glucoseStats + + // Phase 5: Compute negative basal stats if circadian flag is enabled + if LoopInsights_FeatureFlags.circadianEnabled { + do { + let doses = try await dataProvider.getNormalizedDoseEntries(start: startDate, end: endDate) + let glucoseSamples = try await dataProvider.getGlucoseSamples(start: startDate, end: endDate) + let snapshot = try captureTherapySnapshot() + let negBasal = LoopInsights_AdvancedAnalyzers.computeNegativeBasalStats( + doses: doses, + scheduledBasalItems: snapshot.basalRateItems, + periodDays: period.rawValue, + glucoseSamples: glucoseSamples + ) + resolvedInsulinStats = LoopInsightsAggregatedStats.InsulinStats( + totalDailyDose: resolvedInsulinStats.totalDailyDose, + basalPercentage: resolvedInsulinStats.basalPercentage, + bolusPercentage: resolvedInsulinStats.bolusPercentage, + hourlyBasalAverages: resolvedInsulinStats.hourlyBasalAverages, + correctionBolusCount: resolvedInsulinStats.correctionBolusCount, + negativeBasalStats: negBasal + ) + print("[LoopInsights] Phase 5: Negative basal stats computed — \(negBasal.suspensionCount) suspensions") + } catch { + print("[LoopInsights] Phase 5: Negative basal stats error — \(error)") + } + } + + // Phase 5: Compute stress score if circadian flag enabled + biometrics available + var enrichedBiometrics = resolvedBiometrics + if LoopInsights_FeatureFlags.circadianEnabled, let bio = resolvedBiometrics { + let stressScore = LoopInsights_AdvancedAnalyzers.computeStressScore( + hrvStats: bio.hrv, + glucoseStats: resolvedGlucoseStats + ) + if stressScore != nil { + enrichedBiometrics = LoopInsightsAggregatedStats.BiometricStats( + heartRate: bio.heartRate, + hrv: bio.hrv, + steps: bio.steps, + sleep: bio.sleep, + activeEnergy: bio.activeEnergy, + weight: bio.weight, + stressScore: stressScore + ) + print("[LoopInsights] Phase 5: Stress score computed — \(String(format: "%.0f", stressScore!.overallScore))/100") + } + } + return LoopInsightsAggregatedStats( period: period, - glucoseStats: try await glucoseStats, - insulinStats: try await insulinStats, + glucoseStats: resolvedGlucoseStats, + insulinStats: resolvedInsulinStats, carbStats: try await carbStats, - biometricStats: try await biometrics, + biometricStats: enrichedBiometrics, generatedAt: Date() ) } @@ -117,7 +168,26 @@ final class LoopInsights_DataAggregator { // MARK: - Glucose Stats private func computeGlucoseStats(provider: LoopInsightsDataProviderProtocol, start: Date, end: Date) async throws -> LoopInsightsAggregatedStats.GlucoseStats { - let samples = try await provider.getGlucoseSamples(start: start, end: end) + // First try Loop's local stores + var samples = try await provider.getGlucoseSamples(start: start, end: end) + + // Supplement with HealthKit data for longer periods or when Loop stores have gaps + if let hkManager = healthKitManager { + do { + let hkGlucose = try await hkManager.fetchGlucoseSamples(start: start, end: end) + // Loop writes CGM data to HealthKit, so HK always has >= Loop store data. + // Use HealthKit data when it has more samples (longer history). + if hkGlucose.count > samples.count { + print("[LoopInsights] HealthKit glucose: \(hkGlucose.count) samples vs Loop store \(samples.count) — using HealthKit data") + return computeGlucoseStatsFromValues( + values: hkGlucose.map { (date: $0.date, mgdl: $0.mgdl) }, + start: start, end: end + ) + } + } catch { + print("[LoopInsights] HealthKit glucose fetch error (continuing with Loop store data): \(error)") + } + } guard !samples.isEmpty else { throw LoopInsightsError.insufficientData("No glucose data available for the selected period") @@ -133,14 +203,18 @@ final class LoopInsights_DataAggregator { let cv = (stdDev / average) * 100 - // Time in range calculations (70-180 mg/dL standard range) - let inRange = glucoseValues.filter { $0 >= 70 && $0 <= 180 } - let belowRange = glucoseValues.filter { $0 < 70 } - let aboveRange = glucoseValues.filter { $0 > 180 } + // Time in range calculations — 5-zone breakdown (Clarity-style) + let veryHighCount = glucoseValues.filter { $0 > 250 }.count + let highCount = glucoseValues.filter { $0 > 180 && $0 <= 250 }.count + let inRangeCount = glucoseValues.filter { $0 >= 70 && $0 <= 180 }.count + let lowCount = glucoseValues.filter { $0 >= 54 && $0 < 70 }.count + let veryLowCount = glucoseValues.filter { $0 < 54 }.count - let tir = (Double(inRange.count) / count) * 100 - let tbr = (Double(belowRange.count) / count) * 100 - let tar = (Double(aboveRange.count) / count) * 100 + let tir = (Double(inRangeCount) / count) * 100 + let tvh = (Double(veryHighCount) / count) * 100 + let th = (Double(highCount) / count) * 100 + let tl = (Double(lowCount) / count) * 100 + let tvl = (Double(veryLowCount) / count) * 100 // GMI (Glucose Management Indicator) = 3.31 + 0.02392 × mean glucose (mg/dL) let gmi = 3.31 + (0.02392 * average) @@ -161,8 +235,55 @@ final class LoopInsights_DataAggregator { standardDeviation: stdDev, coefficientOfVariation: cv, timeInRange: tir, - timeBelowRange: tbr, - timeAboveRange: tar, + timeVeryHigh: tvh, + timeHigh: th, + timeLow: tl, + timeVeryLow: tvl, + gmi: gmi, + sampleCount: glucoseValues.count, + hourlyAverages: hourlyAverages + ) + } + + /// Compute glucose stats from raw (date, mg/dL) tuples — used for HealthKit-sourced data + private func computeGlucoseStatsFromValues(values: [(date: Date, mgdl: Double)], start: Date, end: Date) -> LoopInsightsAggregatedStats.GlucoseStats { + let glucoseValues = values.map { $0.mgdl } + let count = Double(glucoseValues.count) + + let average = glucoseValues.reduce(0, +) / count + let variance = glucoseValues.reduce(0) { $0 + pow($1 - average, 2) } / count + let stdDev = sqrt(variance) + let cv = (stdDev / average) * 100 + + let veryHighCount = glucoseValues.filter { $0 > 250 }.count + let highCount = glucoseValues.filter { $0 > 180 && $0 <= 250 }.count + let inRangeCount = glucoseValues.filter { $0 >= 70 && $0 <= 180 }.count + let lowCount = glucoseValues.filter { $0 >= 54 && $0 < 70 }.count + let veryLowCount = glucoseValues.filter { $0 < 54 }.count + let tir = (Double(inRangeCount) / count) * 100 + let tvh = (Double(veryHighCount) / count) * 100 + let th = (Double(highCount) / count) * 100 + let tl = (Double(lowCount) / count) * 100 + let tvl = (Double(veryLowCount) / count) * 100 + let gmi = 3.31 + (0.02392 * average) + + var hourlyBuckets: [Int: [Double]] = [:] + let calendar = Calendar.current + for v in values { + let hour = calendar.component(.hour, from: v.date) + hourlyBuckets[hour, default: []].append(v.mgdl) + } + let hourlyAverages = hourlyBuckets.mapValues { $0.reduce(0, +) / Double($0.count) } + + return LoopInsightsAggregatedStats.GlucoseStats( + averageGlucose: average, + standardDeviation: stdDev, + coefficientOfVariation: cv, + timeInRange: tir, + timeVeryHigh: tvh, + timeHigh: th, + timeLow: tl, + timeVeryLow: tvl, gmi: gmi, sampleCount: glucoseValues.count, hourlyAverages: hourlyAverages @@ -172,7 +293,20 @@ final class LoopInsights_DataAggregator { // MARK: - Insulin Stats private func computeInsulinStats(provider: LoopInsightsDataProviderProtocol, start: Date, end: Date) async throws -> LoopInsightsAggregatedStats.InsulinStats { - let doses = try await provider.getNormalizedDoseEntries(start: start, end: end) + var doses = try await provider.getNormalizedDoseEntries(start: start, end: end) + + // Supplement with HealthKit insulin delivery for longer periods + if let hkManager = healthKitManager { + do { + let hkInsulin = try await hkManager.fetchInsulinDelivery(start: start, end: end) + if hkInsulin.count > doses.count { + print("[LoopInsights] HealthKit insulin: \(hkInsulin.count) entries vs Loop store \(doses.count) — using HealthKit data") + return computeInsulinStatsFromHK(hkInsulin, start: start, end: end) + } + } catch { + print("[LoopInsights] HealthKit insulin fetch error (continuing with Loop store data): \(error)") + } + } let dayCount = max(1, end.timeIntervalSince(start) / (24 * 60 * 60)) @@ -220,14 +354,70 @@ final class LoopInsights_DataAggregator { basalPercentage: basalPercent, bolusPercentage: bolusPercent, hourlyBasalAverages: hourlyBasalAverages, - correctionBolusCount: correctionCount + correctionBolusCount: correctionCount, + negativeBasalStats: nil + ) + } + + /// Compute insulin stats from HealthKit insulin delivery tuples + private func computeInsulinStatsFromHK( + _ deliveries: [(date: Date, units: Double, duration: TimeInterval, purpose: HKInsulinDeliveryReason?)], + start: Date, end: Date + ) -> LoopInsightsAggregatedStats.InsulinStats { + let dayCount = max(1, end.timeIntervalSince(start) / (24 * 60 * 60)) + let calendar = Calendar.current + + var totalBasal: Double = 0 + var totalBolus: Double = 0 + var hourlyBasalBuckets: [Int: [Double]] = [:] + var correctionCount = 0 + + for delivery in deliveries { + let hour = calendar.component(.hour, from: delivery.date) + if delivery.purpose == .basal { + totalBasal += delivery.units + let durationHours = max(delivery.duration / 3600, 0.001) + let rate = delivery.units / durationHours + hourlyBasalBuckets[hour, default: []].append(rate) + } else { + totalBolus += delivery.units + correctionCount += 1 + } + } + + let totalInsulin = totalBasal + totalBolus + let tdd = totalInsulin / dayCount + let basalPercent = totalInsulin > 0 ? (totalBasal / totalInsulin) * 100 : 50 + let bolusPercent = totalInsulin > 0 ? (totalBolus / totalInsulin) * 100 : 50 + let hourlyBasalAverages = hourlyBasalBuckets.mapValues { $0.reduce(0, +) / Double($0.count) } + + return LoopInsightsAggregatedStats.InsulinStats( + totalDailyDose: tdd, + basalPercentage: basalPercent, + bolusPercentage: bolusPercent, + hourlyBasalAverages: hourlyBasalAverages, + correctionBolusCount: correctionCount, + negativeBasalStats: nil ) } // MARK: - Carb Stats private func computeCarbStats(provider: LoopInsightsDataProviderProtocol, start: Date, end: Date) async throws -> LoopInsightsAggregatedStats.CarbStats { - let entries = try await provider.getCarbEntries(start: start, end: end) + var entries = try await provider.getCarbEntries(start: start, end: end) + + // Supplement with HealthKit carb data for longer periods + if let hkManager = healthKitManager { + do { + let hkCarbs = try await hkManager.fetchCarbEntries(start: start, end: end) + if hkCarbs.count > entries.count { + print("[LoopInsights] HealthKit carbs: \(hkCarbs.count) entries vs Loop store \(entries.count) — using HealthKit data") + return computeCarbStatsFromHK(hkCarbs, start: start, end: end) + } + } catch { + print("[LoopInsights] HealthKit carbs fetch error (continuing with Loop store data): \(error)") + } + } let dayCount = max(1, end.timeIntervalSince(start) / (24 * 60 * 60)) let totalCarbs = entries.reduce(0.0) { $0 + $1.quantity.doubleValue(for: .gram()) } @@ -250,4 +440,27 @@ final class LoopInsights_DataAggregator { hourlyMealFrequency: hourlyFrequency ) } + + /// Compute carb stats from HealthKit (date, grams) tuples + private func computeCarbStatsFromHK(_ carbEntries: [(date: Date, grams: Double)], start: Date, end: Date) -> LoopInsightsAggregatedStats.CarbStats { + let dayCount = max(1, end.timeIntervalSince(start) / (24 * 60 * 60)) + let totalCarbs = carbEntries.reduce(0.0) { $0 + $1.grams } + let avgDaily = totalCarbs / dayCount + let mealCount = carbEntries.count + let avgPerMeal = mealCount > 0 ? totalCarbs / Double(mealCount) : 0 + + var hourlyFrequency: [Int: Int] = [:] + let calendar = Calendar.current + for entry in carbEntries { + let hour = calendar.component(.hour, from: entry.date) + hourlyFrequency[hour, default: 0] += 1 + } + + return LoopInsightsAggregatedStats.CarbStats( + averageDailyCarbs: avgDaily, + mealCount: mealCount, + averageCarbsPerMeal: avgPerMeal, + hourlyMealFrequency: hourlyFrequency + ) + } } diff --git a/Loop/Services/LoopInsights/LoopInsights_FoodResponseAnalyzer.swift b/Loop/Services/LoopInsights/LoopInsights_FoodResponseAnalyzer.swift new file mode 100644 index 0000000000..b85db8d84b --- /dev/null +++ b/Loop/Services/LoopInsights/LoopInsights_FoodResponseAnalyzer.swift @@ -0,0 +1,240 @@ +// +// LoopInsights_FoodResponseAnalyzer.swift +// Loop +// +// Concept & design by Taylor Patterson. Coded & tested by Claude Code in February 2026. +// Copyright (c) 2025-2026 LoopKit Authors. All rights reserved. +// + +import Foundation +import LoopKit +import HealthKit + +/// Analyzes glucose responses to different food types by matching carb entries +/// with subsequent glucose data. Produces per-food statistics and meal events +/// for the Meal Insights view and AI prompt enrichment. +final class LoopInsights_FoodResponseAnalyzer { + + // MARK: - Deduplication + + /// Remove near-duplicate carb entries that share a similar timestamp and carb amount. + /// Keeps the latest entry in each cluster (within 5 minutes and 20% carb tolerance). + private static func deduplicateCarbEntries(_ entries: [StoredCarbEntry]) -> [StoredCarbEntry] { + guard entries.count > 1 else { return entries } + + let sorted = entries.sorted { $0.startDate < $1.startDate } + var kept: [StoredCarbEntry] = [] + + for entry in sorted { + let carbs = entry.quantity.doubleValue(for: .gram()) + let isDuplicate = kept.contains { existing in + let existingCarbs = existing.quantity.doubleValue(for: .gram()) + let timeDiff = abs(entry.startDate.timeIntervalSince(existing.startDate)) + let carbDiff = carbs > 0 ? abs(carbs - existingCarbs) / carbs : abs(carbs - existingCarbs) + return timeDiff < 300 && carbDiff < 0.2 // Within 5 min and 20% carbs + } + if !isDuplicate { + kept.append(entry) + } + } + + return kept + } + + // MARK: - Food Response Patterns + + /// Analyze food response patterns by grouping carb entries by foodType + /// and matching with glucose samples 0-4h after each meal. + static func analyzeFoodResponses( + carbEntries: [StoredCarbEntry], + glucoseSamples: [StoredGlucoseSample] + ) -> [LoopInsightsFoodResponsePattern] { + let dedupedEntries = deduplicateCarbEntries(carbEntries) + + // Group entries by foodType (skip entries with no foodType) + var grouped: [String: [StoredCarbEntry]] = [:] + for entry in dedupedEntries { + let foodType = entry.foodType ?? "Unknown" + guard !foodType.isEmpty else { continue } + grouped[foodType, default: []].append(entry) + } + + // Sort glucose samples by date for efficient lookup + let sortedGlucose = glucoseSamples.sorted { $0.startDate < $1.startDate } + + var patterns: [LoopInsightsFoodResponsePattern] = [] + + for (foodType, entries) in grouped { + guard entries.count >= 2 else { continue } // Need at least 2 meals for a pattern + + var peakRises: [Double] = [] + var timesToPeak: [Double] = [] + var aucs: [Double] = [] + var twoHourAvgs: [Double] = [] + var fourHourAvgs: [Double] = [] + var carbAmounts: [Double] = [] + + for entry in entries { + let mealDate = entry.startDate + let carbs = entry.quantity.doubleValue(for: .gram()) + carbAmounts.append(carbs) + + // Get pre-meal glucose (30 min before to meal time) + let preMealWindow = mealDate.addingTimeInterval(-1800)...mealDate + let preMealSamples = sortedGlucose.filter { preMealWindow.contains($0.startDate) } + guard !preMealSamples.isEmpty else { continue } + let preMealAvg = preMealSamples.map { $0.quantity.doubleValue(for: .milligramsPerDeciliter) }.reduce(0, +) / Double(preMealSamples.count) + + // Get post-meal glucose (0-4h after meal) + let postMealEnd = mealDate.addingTimeInterval(4 * 3600) + let postMealSamples = sortedGlucose.filter { + $0.startDate > mealDate && $0.startDate <= postMealEnd + } + guard postMealSamples.count >= 4 else { continue } + + let postValues = postMealSamples.map { $0.quantity.doubleValue(for: .milligramsPerDeciliter) } + + // Peak rise + let peak = postValues.max() ?? preMealAvg + let peakRise = peak - preMealAvg + peakRises.append(peakRise) + + // Time to peak + if let peakSample = postMealSamples.max(by: { $0.quantity.doubleValue(for: .milligramsPerDeciliter) < $1.quantity.doubleValue(for: .milligramsPerDeciliter) }) { + let minutesToPeak = peakSample.startDate.timeIntervalSince(mealDate) / 60 + timesToPeak.append(minutesToPeak) + } + + // AUC (trapezoidal approximation, mg/dL * hours above pre-meal) + var auc: Double = 0 + for i in 1.. Double = { vals in + vals.isEmpty ? 0 : vals.reduce(0, +) / Double(vals.count) + } + + patterns.append(LoopInsightsFoodResponsePattern( + foodType: foodType, + mealCount: entries.count, + averageCarbsPerMeal: avg(carbAmounts), + peakGlucoseRise: avg(peakRises), + timeToPeakMinutes: avg(timesToPeak), + averageResponseAUC: avg(aucs), + twoHourPostMealAvg: avg(twoHourAvgs), + fourHourPostMealAvg: avg(fourHourAvgs) + )) + } + + // Sort by peak glucose rise (highest impact first) + return patterns.sorted { $0.peakGlucoseRise > $1.peakGlucoseRise } + } + + // MARK: - Recent Meal Events + + /// Build recent meal events with glucose timeline for the meal debrief view. + /// Returns up to `limit` most recent meals. + static func buildRecentMealEvents( + carbEntries: [StoredCarbEntry], + glucoseSamples: [StoredGlucoseSample], + limit: Int = 20 + ) -> [LoopInsightsMealEvent] { + let dedupedEntries = deduplicateCarbEntries(carbEntries) + let sortedEntries = dedupedEntries.sorted { $0.startDate > $1.startDate } + let sortedGlucose = glucoseSamples.sorted { $0.startDate < $1.startDate } + + var events: [LoopInsightsMealEvent] = [] + + for entry in sortedEntries.prefix(limit * 2) { // Check extra in case some lack glucose + let mealDate = entry.startDate + let foodType = entry.foodType ?? "Unknown" + let carbs = entry.quantity.doubleValue(for: .gram()) + + // Pre-meal glucose + let preMealWindow = mealDate.addingTimeInterval(-1800)...mealDate + let preMealSamples = sortedGlucose.filter { preMealWindow.contains($0.startDate) } + guard !preMealSamples.isEmpty else { continue } + let preMealGlucose = preMealSamples.last!.quantity.doubleValue(for: .milligramsPerDeciliter) + + // Post-meal glucose (0-4h) + let postEnd = mealDate.addingTimeInterval(4 * 3600) + let postSamples = sortedGlucose.filter { $0.startDate > mealDate && $0.startDate <= postEnd } + guard postSamples.count >= 4 else { continue } + + let postValues = postSamples.map { $0.quantity.doubleValue(for: .milligramsPerDeciliter) } + let peakGlucose = postValues.max() ?? preMealGlucose + + // 2-hour glucose + let twoHourWindow = mealDate.addingTimeInterval(1.5 * 3600)...mealDate.addingTimeInterval(2.5 * 3600) + let twoHourSamples = postSamples.filter { twoHourWindow.contains($0.startDate) } + let twoHourGlucose = twoHourSamples.isEmpty ? preMealGlucose : + twoHourSamples.map { $0.quantity.doubleValue(for: .milligramsPerDeciliter) }.reduce(0, +) / Double(twoHourSamples.count) + + // Build timeline (every ~15 min) + var timeline: [(minutesAfter: Int, glucose: Double)] = [] + timeline.append((0, preMealGlucose)) + for sample in postSamples { + let minutes = Int(sample.startDate.timeIntervalSince(mealDate) / 60) + let glucose = sample.quantity.doubleValue(for: .milligramsPerDeciliter) + timeline.append((minutes, glucose)) + } + + events.append(LoopInsightsMealEvent( + date: mealDate, + foodType: foodType, + carbs: carbs, + preMealGlucose: preMealGlucose, + peakGlucose: peakGlucose, + twoHourGlucose: twoHourGlucose, + glucoseTimeline: timeline + )) + + if events.count >= limit { break } + } + + return events + } + + // MARK: - Prompt Context + + /// Build prompt context string from food response patterns + static func buildFoodResponsePromptContext(_ patterns: [LoopInsightsFoodResponsePattern]) -> String { + guard !patterns.isEmpty else { return "" } + + var ctx = "## Food-Type Response Patterns\n" + for pattern in patterns.prefix(8) { + ctx += "- **\(pattern.foodType)** (\(pattern.mealCount) meals, avg \(String(format: "%.0f", pattern.averageCarbsPerMeal))g): " + ctx += "peak rise \(String(format: "%.0f", pattern.peakGlucoseRise)) mg/dL in \(String(format: "%.0f", pattern.timeToPeakMinutes)) min, " + ctx += "2h post \(String(format: "%.0f", pattern.twoHourPostMealAvg)) mg/dL, " + ctx += "4h post \(String(format: "%.0f", pattern.fourHourPostMealAvg)) mg/dL\n" + } + let highImpact = patterns.filter { $0.peakGlucoseRise > 60 } + if !highImpact.isEmpty { + ctx += "** HIGH IMPACT FOODS: \(highImpact.map { $0.foodType }.joined(separator: ", ")) cause >60 mg/dL glucose spikes **\n" + } + return ctx + } +} diff --git a/Loop/Services/LoopInsights/LoopInsights_HealthKitManager.swift b/Loop/Services/LoopInsights/LoopInsights_HealthKitManager.swift index 777044301e..37d5f4bc64 100644 --- a/Loop/Services/LoopInsights/LoopInsights_HealthKitManager.swift +++ b/Loop/Services/LoopInsights/LoopInsights_HealthKitManager.swift @@ -25,6 +25,11 @@ final class LoopInsights_HealthKitManager: ObservableObject { if let sleep = HKObjectType.categoryType(forIdentifier: .sleepAnalysis) { types.insert(sleep) } if let energy = HKQuantityType.quantityType(forIdentifier: .activeEnergyBurned) { types.insert(energy) } if let weight = HKQuantityType.quantityType(forIdentifier: .bodyMass) { types.insert(weight) } + if let caffeine = HKQuantityType.quantityType(forIdentifier: .dietaryCaffeine) { types.insert(caffeine) } + // Core diabetes data types (Loop writes these — we read them for longer analysis periods) + if let glucose = HKQuantityType.quantityType(forIdentifier: .bloodGlucose) { types.insert(glucose) } + if let insulin = HKQuantityType.quantityType(forIdentifier: .insulinDelivery) { types.insert(insulin) } + if let carbs = HKQuantityType.quantityType(forIdentifier: .dietaryCarbohydrates) { types.insert(carbs) } return types }() @@ -95,7 +100,8 @@ final class LoopInsights_HealthKitManager: ObservableObject { steps: stepResult, sleep: sleepResult, activeEnergy: energyResult, - weight: weightResult + weight: weightResult, + stressScore: nil // Computed by AdvancedAnalyzers in DataAggregator ) } @@ -312,6 +318,98 @@ final class LoopInsights_HealthKitManager: ObservableObject { ) } + // MARK: - Core Diabetes Data (from HealthKit) + + /// Fetch blood glucose samples from HealthKit for the given date range. + /// Returns (timestamp, mg/dL) tuples. Loop writes CGM data to HealthKit, + /// so this provides access to historical data beyond Loop's local store retention. + func fetchGlucoseSamples(start: Date, end: Date) async throws -> [(date: Date, mgdl: Double)] { + guard let glucoseType = HKQuantityType.quantityType(forIdentifier: .bloodGlucose) else { return [] } + + let samples = try await querySamples(type: glucoseType, start: start, end: end) + let mgdlUnit = HKUnit.gramUnit(with: .milli).unitDivided(by: HKUnit.literUnit(with: .deci)) + + return samples.map { sample in + (date: sample.startDate, mgdl: sample.quantity.doubleValue(for: mgdlUnit)) + } + } + + /// Fetch insulin delivery samples from HealthKit for the given date range. + /// Loop writes all doses (basal + bolus) to HealthKit. + func fetchInsulinDelivery(start: Date, end: Date) async throws -> [(date: Date, units: Double, duration: TimeInterval, purpose: HKInsulinDeliveryReason?)] { + guard let insulinType = HKQuantityType.quantityType(forIdentifier: .insulinDelivery) else { return [] } + + let predicate = HKQuery.predicateForSamples(withStart: start, end: end, options: .strictStartDate) + + let samples: [HKQuantitySample] = try await withCheckedThrowingContinuation { continuation in + let query = HKSampleQuery( + sampleType: insulinType, + predicate: predicate, + limit: HKObjectQueryNoLimit, + sortDescriptors: [NSSortDescriptor(key: HKSampleSortIdentifierStartDate, ascending: true)] + ) { _, results, error in + if let error = error { + continuation.resume(throwing: error) + } else { + continuation.resume(returning: (results as? [HKQuantitySample]) ?? []) + } + } + healthStore.execute(query) + } + + let unitUnit = HKUnit.internationalUnit() + return samples.map { sample in + let purpose: HKInsulinDeliveryReason? + if let meta = sample.metadata, + let reasonRaw = meta[HKMetadataKeyInsulinDeliveryReason] as? NSNumber { + purpose = HKInsulinDeliveryReason(rawValue: reasonRaw.intValue) + } else { + purpose = nil + } + return ( + date: sample.startDate, + units: sample.quantity.doubleValue(for: unitUnit), + duration: sample.endDate.timeIntervalSince(sample.startDate), + purpose: purpose + ) + } + } + + /// Fetch dietary carbohydrate entries from HealthKit for the given date range. + /// Loop writes carb entries to HealthKit. + func fetchCarbEntries(start: Date, end: Date) async throws -> [(date: Date, grams: Double)] { + guard let carbType = HKQuantityType.quantityType(forIdentifier: .dietaryCarbohydrates) else { return [] } + + let samples = try await querySamples(type: carbType, start: start, end: end) + let gramUnit = HKUnit.gram() + + return samples.map { sample in + (date: sample.startDate, grams: sample.quantity.doubleValue(for: gramUnit)) + } + } + + // MARK: - Caffeine + + /// Fetch dietary caffeine entries from HealthKit for the given date range. + /// Returns LoopInsightsCaffeineEntry objects tagged with isFromHealthKit = true. + func fetchCaffeineEntries(start: Date, end: Date) async throws -> [LoopInsightsCaffeineEntry] { + guard let caffeineType = HKQuantityType.quantityType(forIdentifier: .dietaryCaffeine) else { return [] } + + let samples = try await querySamples(type: caffeineType, start: start, end: end) + let mgUnit = HKUnit.gramUnit(with: .milli) + + return samples.map { sample in + let mg = sample.quantity.doubleValue(for: mgUnit) + let sourceName = sample.sourceRevision.source.name + return LoopInsightsCaffeineEntry( + timestamp: sample.startDate, + milligrams: mg, + source: sourceName, + isFromHealthKit: true + ) + } + } + // MARK: - Helpers /// Generic sample query wrapper diff --git a/Loop/Services/LoopInsights/LoopInsights_NightscoutImporter.swift b/Loop/Services/LoopInsights/LoopInsights_NightscoutImporter.swift new file mode 100644 index 0000000000..85ae543f0a --- /dev/null +++ b/Loop/Services/LoopInsights/LoopInsights_NightscoutImporter.swift @@ -0,0 +1,213 @@ +// +// LoopInsights_NightscoutImporter.swift +// Loop +// +// Concept & design by Taylor Patterson. Coded & tested by Claude Code in February 2026. +// Copyright (c) 2025-2026 LoopKit Authors. All rights reserved. +// + +import Foundation +import LoopKit +import HealthKit + +/// Nightscout API v1 client: fetches glucose entries and treatments, converts +/// to LoopKit types, and provides as an alternative data source for analysis. +final class LoopInsights_NightscoutImporter { + + private let config: LoopInsightsNightscoutConfig + + init(config: LoopInsightsNightscoutConfig) { + self.config = config + } + + // MARK: - Test Connection + + /// Test the Nightscout connection by fetching a single entry. + func testConnection() async throws -> Bool { + let url = try buildURL(path: "/api/v1/status.json") + var request = URLRequest(url: url) + addAuthHeaders(to: &request) + request.timeoutInterval = 10 + + let (data, response) = try await URLSession.shared.data(for: request) + + guard let httpResponse = response as? HTTPURLResponse else { + throw LoopInsightsError.networkError(NSError(domain: "LoopInsights", code: -1, userInfo: [NSLocalizedDescriptionKey: "Invalid response"])) + } + + if httpResponse.statusCode == 401 { + throw LoopInsightsError.aiProviderError("Authentication failed. Check your API secret.") + } + + guard (200...299).contains(httpResponse.statusCode) else { + throw LoopInsightsError.aiProviderError("Nightscout returned status \(httpResponse.statusCode)") + } + + // Verify it's a valid Nightscout response + if let json = try? JSONSerialization.jsonObject(with: data) as? [String: Any], + json["status"] as? String == "ok" || json["name"] != nil { + return true + } + + return true // Status endpoint returned 200, good enough + } + + // MARK: - Fetch Entries (SGV) + + /// Fetch glucose entries from Nightscout for the given date range. + func fetchGlucoseEntries(start: Date, end: Date) async throws -> [LoopInsightsNightscoutEntry] { + let startEpoch = Int(start.timeIntervalSince1970 * 1000) + let endEpoch = Int(end.timeIntervalSince1970 * 1000) + let path = "/api/v1/entries.json?find[date][$gte]=\(startEpoch)&find[date][$lte]=\(endEpoch)&count=10000" + + let url = try buildURL(path: path) + var request = URLRequest(url: url) + addAuthHeaders(to: &request) + request.timeoutInterval = 30 + + let (data, response) = try await URLSession.shared.data(for: request) + + guard let httpResponse = response as? HTTPURLResponse, + (200...299).contains(httpResponse.statusCode) else { + throw LoopInsightsError.networkError(NSError(domain: "LoopInsights", code: -2, userInfo: [NSLocalizedDescriptionKey: "Failed to fetch entries"])) + } + + let decoder = JSONDecoder() + return try decoder.decode([LoopInsightsNightscoutEntry].self, from: data) + } + + // MARK: - Fetch Treatments + + /// Fetch treatments (carbs, insulin, temp basals) from Nightscout. + func fetchTreatments(start: Date, end: Date) async throws -> [LoopInsightsNightscoutTreatment] { + let formatter = ISO8601DateFormatter() + let startStr = formatter.string(from: start) + let endStr = formatter.string(from: end) + let path = "/api/v1/treatments.json?find[created_at][$gte]=\(startStr)&find[created_at][$lte]=\(endStr)&count=10000" + + let url = try buildURL(path: path) + var request = URLRequest(url: url) + addAuthHeaders(to: &request) + request.timeoutInterval = 30 + + let (data, response) = try await URLSession.shared.data(for: request) + + guard let httpResponse = response as? HTTPURLResponse, + (200...299).contains(httpResponse.statusCode) else { + throw LoopInsightsError.networkError(NSError(domain: "LoopInsights", code: -3, userInfo: [NSLocalizedDescriptionKey: "Failed to fetch treatments"])) + } + + let decoder = JSONDecoder() + return try decoder.decode([LoopInsightsNightscoutTreatment].self, from: data) + } + + // MARK: - Convert to LoopKit Types + + /// Convert Nightscout entries to StoredGlucoseSample-compatible format. + /// Returns glucose values as (date, mg/dL) tuples for aggregation. + func convertToGlucoseData(_ entries: [LoopInsightsNightscoutEntry]) -> [(date: Date, mgdl: Double)] { + return entries.compactMap { entry in + guard let date = entry.sampleDate, entry.sgv > 0 else { return nil } + return (date, entry.sgv) + } + } + + /// Convert Nightscout treatments to carb and dose data. + func convertToTreatmentData(_ treatments: [LoopInsightsNightscoutTreatment]) -> (carbs: [(date: Date, grams: Double, foodType: String?)], boluses: [(date: Date, units: Double)]) { + var carbs: [(date: Date, grams: Double, foodType: String?)] = [] + var boluses: [(date: Date, units: Double)] = [] + + for treatment in treatments { + guard let date = treatment.treatmentDate else { continue } + + if let carbAmount = treatment.carbs, carbAmount > 0 { + let foodType = treatment.eventType == "Meal Bolus" ? "Meal" : treatment.eventType + carbs.append((date, carbAmount, foodType)) + } + + if let insulin = treatment.insulin, insulin > 0 { + boluses.append((date, insulin)) + } + } + + return (carbs, boluses) + } + + // MARK: - Import All + + /// Import all data from Nightscout for the given period and return as aggregated stats. + func importData(start: Date, end: Date) async throws -> LoopInsightsNightscoutImportResult { + async let entries = fetchGlucoseEntries(start: start, end: end) + async let treatments = fetchTreatments(start: start, end: end) + + let fetchedEntries = try await entries + let fetchedTreatments = try await treatments + + let glucoseData = convertToGlucoseData(fetchedEntries) + let treatmentData = convertToTreatmentData(fetchedTreatments) + + return LoopInsightsNightscoutImportResult( + glucoseReadings: glucoseData, + carbEntries: treatmentData.carbs, + bolusEntries: treatmentData.boluses, + entryCount: fetchedEntries.count, + treatmentCount: fetchedTreatments.count + ) + } + + // MARK: - Helpers + + private func buildURL(path: String) throws -> URL { + var siteURL = config.siteURL.trimmingCharacters(in: .whitespacesAndNewlines) + siteURL = siteURL.trimmingCharacters(in: CharacterSet(charactersIn: "/")) + + guard !siteURL.isEmpty else { + throw LoopInsightsError.insufficientData("Nightscout URL is not configured") + } + + // URL-encode the query parameters properly + guard let url = URL(string: siteURL + path) else { + throw LoopInsightsError.insufficientData("Invalid Nightscout URL: \(siteURL)\(path)") + } + + return url + } + + private func addAuthHeaders(to request: inout URLRequest) { + if !config.apiSecret.isEmpty { + // Nightscout uses SHA1 hash of API secret + let secretHash = config.apiSecret.sha1Hash() + request.setValue(secretHash, forHTTPHeaderField: "api-secret") + } + } +} + +// MARK: - Import Result + +/// Result of a Nightscout data import +struct LoopInsightsNightscoutImportResult { + let glucoseReadings: [(date: Date, mgdl: Double)] + let carbEntries: [(date: Date, grams: Double, foodType: String?)] + let bolusEntries: [(date: Date, units: Double)] + let entryCount: Int + let treatmentCount: Int + + var summary: String { + return "\(entryCount) glucose entries, \(treatmentCount) treatments (\(carbEntries.count) carbs, \(bolusEntries.count) boluses)" + } +} + +// MARK: - SHA1 Helper + +import CommonCrypto + +extension String { + func sha1Hash() -> String { + guard let data = self.data(using: .utf8) else { return self } + var digest = [UInt8](repeating: 0, count: Int(CC_SHA1_DIGEST_LENGTH)) + data.withUnsafeBytes { + _ = CC_SHA1($0.baseAddress, CC_LONG(data.count), &digest) + } + return digest.map { String(format: "%02x", $0) }.joined() + } +} diff --git a/Loop/View Models/LoopInsights/LoopInsights_DashboardViewModel.swift b/Loop/View Models/LoopInsights/LoopInsights_DashboardViewModel.swift index 94a6f3ede6..054c653b63 100644 --- a/Loop/View Models/LoopInsights/LoopInsights_DashboardViewModel.swift +++ b/Loop/View Models/LoopInsights/LoopInsights_DashboardViewModel.swift @@ -66,6 +66,9 @@ final class LoopInsights_DashboardViewModel: ObservableObject { /// Whether current metrics indicate settings are already performing well @Published var settingsAlreadyOptimal: Bool = false + /// Glucose samples for AGP chart (populated during analysis) + @Published var agpGlucoseSamples: [StoredGlucoseSample] = [] + // MARK: - Dependencies let coordinator: LoopInsights_Coordinator @@ -124,17 +127,29 @@ final class LoopInsights_DashboardViewModel: ObservableObject { let stats = try await coordinator.dataAggregator.aggregateData(period: analysisPeriod) self.aggregatedStats = stats + // Fetch glucose samples for AGP chart + if LoopInsights_FeatureFlags.agpChartEnabled { + let start = Date().addingTimeInterval(-analysisPeriod.timeInterval) + if let samples = try? await coordinator.fetchGlucoseSamples(start: start, end: Date()) { + self.agpGlucoseSamples = samples + } + } + // Capture current settings let snapshot = try coordinator.captureCurrentSnapshot() self.currentSnapshot = snapshot + // Phase 5: Build supplemental context from advanced analyzers + let supplementalContext = await coordinator.buildSupplementalContext(stats: stats) + // Run AI analysis (include recent changes so AI knows data predates current settings) let recentChanges = self.recentlyAppliedRecords() let response = try await coordinator.aiAnalysis.analyze( settingType: focusSettingType, currentSettings: snapshot, stats: stats, - recentChanges: recentChanges + recentChanges: recentChanges, + supplementalContext: supplementalContext ) // Show patterns, score, and AI results together after analysis completes @@ -193,9 +208,20 @@ final class LoopInsights_DashboardViewModel: ObservableObject { let stats = try await coordinator.dataAggregator.aggregateData(period: analysisPeriod) self.aggregatedStats = stats + // Fetch glucose samples for AGP chart + if LoopInsights_FeatureFlags.agpChartEnabled { + let start = Date().addingTimeInterval(-analysisPeriod.timeInterval) + if let samples = try? await coordinator.fetchGlucoseSamples(start: start, end: Date()) { + self.agpGlucoseSamples = samples + } + } + let snapshot = try coordinator.captureCurrentSnapshot() self.currentSnapshot = snapshot + // Phase 5: Build supplemental context from advanced analyzers + let supplementalContext = await coordinator.buildSupplementalContext(stats: stats) + // Analyze each setting type in tuning order: CR → ISF → BR let recentChanges = self.recentlyAppliedRecords() for settingType in LoopInsightsSettingType.allCases { @@ -203,7 +229,8 @@ final class LoopInsights_DashboardViewModel: ObservableObject { settingType: settingType, currentSettings: snapshot, stats: stats, - recentChanges: recentChanges + recentChanges: recentChanges, + supplementalContext: supplementalContext ) self.overallAssessment = response.overallAssessment diff --git a/Loop/Views/LoopInsights/LoopInsights_AGPChartView.swift b/Loop/Views/LoopInsights/LoopInsights_AGPChartView.swift new file mode 100644 index 0000000000..d36fb7c76b --- /dev/null +++ b/Loop/Views/LoopInsights/LoopInsights_AGPChartView.swift @@ -0,0 +1,295 @@ +// +// LoopInsights_AGPChartView.swift +// Loop +// +// Concept & design by Taylor Patterson. Coded & tested by Claude Code in February 2026. +// Copyright (c) 2025-2026 LoopKit Authors. All rights reserved. +// + +import SwiftUI +import LoopKit +import HealthKit + +/// Ambulatory Glucose Profile chart: renders percentile bands (p10/p25/p50/p75/p90) +/// as layered SwiftUI Paths over a 24-hour x-axis. iOS 15 compatible (no Charts framework). +struct LoopInsights_AGPChartView: View { + + let glucoseSamples: [StoredGlucoseSample] + + /// Computed AGP data points (48 points, every 30 min) + private var agpData: [LoopInsightsAGPDataPoint] { + Self.computeAGP(from: glucoseSamples) + } + + private let targetLow: Double = 70 + private let targetHigh: Double = 180 + private let chartMinY: Double = 40 + private let chartMaxY: Double = 300 + private let leftMargin: Double = 28 + private let rightMargin: Double = 8 + private let topMargin: Double = 8 + private let bottomMargin: Double = 16 + + var body: some View { + VStack(alignment: .leading, spacing: 2) { + Text(NSLocalizedString("Ambulatory Glucose Profile", comment: "LoopInsights AGP chart title")) + .font(.subheadline.weight(.semibold)) + + if agpData.isEmpty { + Text(NSLocalizedString("Not enough data for AGP chart", comment: "LoopInsights AGP no data")) + .font(.caption) + .foregroundColor(.secondary) + .frame(maxWidth: .infinity, alignment: .center) + .padding(.vertical, 8) + } else { + GeometryReader { geo in + let w = geo.size.width + let h = geo.size.height + + ZStack(alignment: .topLeading) { + // Target range band (70-180) + targetRangePath(width: w, height: h) + .fill(Color.green.opacity(0.12)) + + // Y-axis grid lines at target boundaries + targetGridLines(width: w, height: h) + + // P10-P90 band (lightest) + percentileBand(data: agpData, lowerKey: \.p10, upperKey: \.p90, width: w, height: h) + .fill(Color.blue.opacity(0.12)) + + // P25-P75 band (medium) + percentileBand(data: agpData, lowerKey: \.p25, upperKey: \.p75, width: w, height: h) + .fill(Color.blue.opacity(0.25)) + + // P50 median line (bold) + medianLine(data: agpData, width: w, height: h) + .stroke(Color.blue, lineWidth: 2.5) + + // Y-axis labels + yAxisLabels(width: w, height: h) + + // X-axis labels + xAxisLabels(width: w, height: h) + } + } + .frame(height: 180) + + // Legend + legendView + } + } + } + + // MARK: - Legend + + private var legendView: some View { + HStack(spacing: 0) { + legendItem(color: Color.green.opacity(0.3), label: "70-180") + Spacer() + legendItem(color: Color.blue.opacity(0.12), label: "P10-P90") + Spacer() + legendItem(color: Color.blue.opacity(0.25), label: "P25-P75") + Spacer() + HStack(spacing: 3) { + RoundedRectangle(cornerRadius: 1) + .fill(Color.blue) + .frame(width: 14, height: 2.5) + Text("Median") + .font(.system(size: 12)) + .foregroundColor(.secondary) + } + } + .padding(.horizontal, 4) + } + + // MARK: - Chart Components + + /// Target range as a proper Path that fills the correct Y band + private func targetRangePath(width: Double, height: Double) -> Path { + let plotLeft = leftMargin + let plotRight = width - rightMargin + let topY = yPosition(for: targetHigh, height: height) + let bottomY = yPosition(for: targetLow, height: height) + + var path = Path() + path.addRect(CGRect( + x: plotLeft, + y: topY, + width: plotRight - plotLeft, + height: bottomY - topY + )) + return path + } + + /// Dashed grid lines at 70 and 180 + private func targetGridLines(width: Double, height: Double) -> some View { + let plotLeft = leftMargin + let plotRight = width - rightMargin + let y70 = yPosition(for: targetLow, height: height) + let y180 = yPosition(for: targetHigh, height: height) + + return ZStack { + Path { p in + p.move(to: CGPoint(x: plotLeft, y: y70)) + p.addLine(to: CGPoint(x: plotRight, y: y70)) + } + .stroke(Color.green.opacity(0.3), style: StrokeStyle(lineWidth: 0.5, dash: [4, 3])) + + Path { p in + p.move(to: CGPoint(x: plotLeft, y: y180)) + p.addLine(to: CGPoint(x: plotRight, y: y180)) + } + .stroke(Color.green.opacity(0.3), style: StrokeStyle(lineWidth: 0.5, dash: [4, 3])) + } + } + + private func percentileBand, U: KeyPath>( + data: [LoopInsightsAGPDataPoint], + lowerKey: L, + upperKey: U, + width: Double, + height: Double + ) -> Path { + var path = Path() + guard !data.isEmpty else { return path } + + // Upper line (left to right) + let firstX = xPosition(for: data[0].minuteOfDay, width: width) + let firstUpperY = yPosition(for: data[0][keyPath: upperKey], height: height) + path.move(to: CGPoint(x: firstX, y: firstUpperY)) + + for point in data.dropFirst() { + let x = xPosition(for: point.minuteOfDay, width: width) + let y = yPosition(for: point[keyPath: upperKey], height: height) + path.addLine(to: CGPoint(x: x, y: y)) + } + + // Lower line (right to left) + for point in data.reversed() { + let x = xPosition(for: point.minuteOfDay, width: width) + let y = yPosition(for: point[keyPath: lowerKey], height: height) + path.addLine(to: CGPoint(x: x, y: y)) + } + + path.closeSubpath() + return path + } + + private func medianLine(data: [LoopInsightsAGPDataPoint], width: Double, height: Double) -> Path { + var path = Path() + guard let first = data.first else { return path } + + path.move(to: CGPoint( + x: xPosition(for: first.minuteOfDay, width: width), + y: yPosition(for: first.p50, height: height) + )) + + for point in data.dropFirst() { + path.addLine(to: CGPoint( + x: xPosition(for: point.minuteOfDay, width: width), + y: yPosition(for: point.p50, height: height) + )) + } + + return path + } + + private func xAxisLabels(width: Double, height: Double) -> some View { + let hours = [0, 3, 6, 9, 12, 15, 18, 21] + return ZStack { + ForEach(hours, id: \.self) { hour in + let x = xPosition(for: hour * 60, width: width) + Text(formatHour(hour)) + .font(.system(size: 8)) + .foregroundColor(.secondary) + .position(x: x, y: height - 4) + } + } + } + + private func yAxisLabels(width: Double, height: Double) -> some View { + let values: [Double] = [70, 120, 180, 250] + return ZStack { + ForEach(values, id: \.self) { value in + let y = yPosition(for: value, height: height) + Text("\(Int(value))") + .font(.system(size: 8)) + .foregroundColor(.secondary) + .position(x: 14, y: y) + } + } + } + + private func legendItem(color: Color, label: String) -> some View { + HStack(spacing: 3) { + RoundedRectangle(cornerRadius: 2) + .fill(color) + .frame(width: 12, height: 10) + Text(label) + .font(.system(size: 12)) + .foregroundColor(.secondary) + } + } + + // MARK: - Coordinate Mapping + + private func xPosition(for minuteOfDay: Int, width: Double) -> Double { + let plotWidth = width - leftMargin - rightMargin + return leftMargin + (Double(minuteOfDay) / 1440.0) * plotWidth + } + + private func yPosition(for glucose: Double, height: Double) -> Double { + let plotHeight = height - topMargin - bottomMargin + let clamped = max(chartMinY, min(chartMaxY, glucose)) + let fraction = (clamped - chartMinY) / (chartMaxY - chartMinY) + return topMargin + (1 - fraction) * plotHeight // Inverted Y axis + } + + private func formatHour(_ hour: Int) -> String { + let h = hour % 24 + if h == 0 { return "12a" } + if h < 12 { return "\(h)a" } + if h == 12 { return "12p" } + return "\(h - 12)p" + } + + // MARK: - AGP Computation + + /// Compute AGP data: 48 time points (every 30 min), each with percentiles + static func computeAGP(from samples: [StoredGlucoseSample]) -> [LoopInsightsAGPDataPoint] { + guard !samples.isEmpty else { return [] } + + let calendar = Calendar.current + + // Bucket samples by 30-minute windows + var buckets: [Int: [Double]] = [:] // minuteOfDay → glucose values + for sample in samples { + let hour = calendar.component(.hour, from: sample.startDate) + let minute = calendar.component(.minute, from: sample.startDate) + let minuteOfDay = hour * 60 + minute + let bucket = (minuteOfDay / 30) * 30 // Round to nearest 30-min + buckets[bucket, default: []].append( + sample.quantity.doubleValue(for: .milligramsPerDeciliter) + ) + } + + var dataPoints: [LoopInsightsAGPDataPoint] = [] + for minuteOfDay in stride(from: 0, to: 1440, by: 30) { + guard let values = buckets[minuteOfDay], values.count >= 3 else { continue } + let sorted = values.sorted() + let count = sorted.count + + dataPoints.append(LoopInsightsAGPDataPoint( + minuteOfDay: minuteOfDay, + p10: sorted[max(0, Int(Double(count) * 0.1))], + p25: sorted[max(0, Int(Double(count) * 0.25))], + p50: sorted[count / 2], + p75: sorted[min(count - 1, Int(Double(count) * 0.75))], + p90: sorted[min(count - 1, Int(Double(count) * 0.9))] + )) + } + + return dataPoints.sorted { $0.minuteOfDay < $1.minuteOfDay } + } +} diff --git a/Loop/Views/LoopInsights/LoopInsights_CaffeineLogView.swift b/Loop/Views/LoopInsights/LoopInsights_CaffeineLogView.swift new file mode 100644 index 0000000000..fcf8ab0e3f --- /dev/null +++ b/Loop/Views/LoopInsights/LoopInsights_CaffeineLogView.swift @@ -0,0 +1,350 @@ +// +// LoopInsights_CaffeineLogView.swift +// Loop +// +// Concept & design by Taylor Patterson. Coded & tested by Claude Code in February 2026. +// Copyright (c) 2025-2026 LoopKit Authors. All rights reserved. +// + +import SwiftUI + +/// Brand color for all caffeine UI +private let caffeineGreen = Color.green + +/// Caffeine logging UI: shows current level gauge, quick-add presets, and entry log. +struct LoopInsights_CaffeineLogView: View { + + @ObservedObject var tracker: LoopInsights_CaffeineTracker + @State private var customMg: String = "" + @State private var customSource: String = "" + @State private var showingCustomEntry = false + @State private var editingEntry: LoopInsightsCaffeineEntry? + @State private var editMg: String = "" + @State private var editSource: String = "" + @State private var editTimestamp: Date = Date() + @Environment(\.dismiss) private var dismiss + + private var currentState: LoopInsightsCaffeineState { + tracker.currentState() + } + + var body: some View { + List { + currentLevelSection + quickAddSection + if showingCustomEntry { + customEntrySection + } + recentEntriesSection + } + .navigationTitle(NSLocalizedString("Caffeine Tracker", comment: "LoopInsights caffeine title")) + .navigationBarTitleDisplayMode(.inline) + .toolbar { + ToolbarItem(placement: .navigationBarTrailing) { + Button(NSLocalizedString("Done", comment: "Done button")) { + dismiss() + } + } + } + .sheet(item: $editingEntry) { entry in + editEntrySheet(entry) + } + .task { + await tracker.syncFromHealthKit() + } + } + + // MARK: - Current Level + + private var currentLevelSection: some View { + Section { + VStack(spacing: 12) { + // Level gauge + ZStack { + Circle() + .stroke(caffeineGreen.opacity(0.2), lineWidth: 8) + .frame(width: 100, height: 100) + + let level = min(currentState.currentLevelMg, 400) + Circle() + .trim(from: 0, to: level / 400) + .stroke(gaugeColor(level), style: StrokeStyle(lineWidth: 8, lineCap: .round)) + .frame(width: 100, height: 100) + .rotationEffect(.degrees(-90)) + + VStack(spacing: 0) { + Text(String(format: "%.0f", currentState.currentLevelMg)) + .font(.title2.weight(.bold)) + .foregroundColor(gaugeColor(currentState.currentLevelMg)) + Text("mg") + .font(.caption2) + .foregroundColor(.secondary) + } + } + + Text(NSLocalizedString("Estimated Caffeine Level", comment: "LoopInsights caffeine level label")) + .font(.caption) + .foregroundColor(.secondary) + + if currentState.entriesLast24h > 0 { + HStack(spacing: 16) { + VStack(spacing: 2) { + Text(String(format: "%.0f mg", currentState.totalMgLast24h)) + .font(.caption.weight(.semibold)) + .foregroundColor(caffeineGreen) + Text(NSLocalizedString("24h Total", comment: "LoopInsights caffeine 24h total")) + .font(.caption2) + .foregroundColor(.secondary) + } + VStack(spacing: 2) { + Text(String(format: "%.0f mg", currentState.peakLevelToday)) + .font(.caption.weight(.semibold)) + .foregroundColor(caffeineGreen) + Text(NSLocalizedString("Today's Peak", comment: "LoopInsights caffeine today peak")) + .font(.caption2) + .foregroundColor(.secondary) + } + if let lastTime = currentState.lastIntakeTime { + VStack(spacing: 2) { + Text(Self.timeFormatter.string(from: lastTime)) + .font(.caption.weight(.semibold)) + .foregroundColor(caffeineGreen) + Text(NSLocalizedString("Last Intake", comment: "LoopInsights caffeine last intake")) + .font(.caption2) + .foregroundColor(.secondary) + } + } + } + } + } + .frame(maxWidth: .infinity) + .padding(.vertical, 8) + } + } + + // MARK: - Quick Add + + private var quickAddSection: some View { + Section(header: Text(NSLocalizedString("Quick Add", comment: "LoopInsights caffeine quick add header"))) { + let presets = LoopInsightsCaffeinePreset.defaults + let columns = [GridItem(.flexible()), GridItem(.flexible())] + + LazyVGrid(columns: columns, spacing: 8) { + ForEach(presets) { preset in + Button(action: { + tracker.logCaffeine(milligrams: preset.milligrams, source: preset.name) + }) { + HStack(spacing: 6) { + Image(systemName: preset.icon) + .font(.caption) + .foregroundColor(caffeineGreen) + VStack(alignment: .leading, spacing: 1) { + Text(preset.name) + .font(.caption) + .fontWeight(.medium) + .foregroundColor(.primary) + .lineLimit(1) + Text(String(format: "%.0f mg", preset.milligrams)) + .font(.caption2) + .foregroundColor(.secondary) + } + Spacer() + } + .padding(.horizontal, 10) + .padding(.vertical, 8) + .background(Color(.secondarySystemGroupedBackground)) + .cornerRadius(8) + } + .buttonStyle(.plain) + } + } + .listRowInsets(EdgeInsets(top: 4, leading: 4, bottom: 4, trailing: 4)) + + Button(action: { showingCustomEntry.toggle() }) { + HStack { + Image(systemName: showingCustomEntry ? "minus.circle" : "plus.circle") + Text(NSLocalizedString("Custom Entry", comment: "LoopInsights caffeine custom entry")) + } + .font(.subheadline) + .foregroundColor(caffeineGreen) + } + } + } + + // MARK: - Custom Entry + + private var customEntrySection: some View { + Section(header: Text(NSLocalizedString("Custom Caffeine Entry", comment: "LoopInsights custom caffeine header"))) { + TextField(NSLocalizedString("Amount (mg)", comment: "LoopInsights caffeine amount placeholder"), text: $customMg) + .keyboardType(.decimalPad) + TextField(NSLocalizedString("Source (e.g. Matcha Latte)", comment: "LoopInsights caffeine source placeholder"), text: $customSource) + + Button(action: { + if let mg = Double(customMg), mg > 0 { + let source = customSource.isEmpty ? "Custom" : customSource + tracker.logCaffeine(milligrams: mg, source: source) + customMg = "" + customSource = "" + showingCustomEntry = false + } + }) { + HStack { + Spacer() + Text(NSLocalizedString("Add Entry", comment: "LoopInsights caffeine add entry")) + .fontWeight(.medium) + Spacer() + } + .foregroundColor(.white) + .padding(.vertical, 8) + .background(Double(customMg) ?? 0 > 0 ? caffeineGreen : Color.gray) + .cornerRadius(8) + } + .buttonStyle(.plain) + .disabled(Double(customMg) ?? 0 <= 0) + } + } + + // MARK: - Recent Entries + + private var recentEntriesSection: some View { + Section(header: Text(NSLocalizedString("Recent Entries", comment: "LoopInsights caffeine recent entries"))) { + if tracker.entries.isEmpty { + Text(NSLocalizedString("No caffeine entries yet. Tap a preset above to log intake.", comment: "LoopInsights no caffeine entries")) + .font(.caption) + .foregroundColor(.secondary) + } else { + ForEach(tracker.entries.prefix(20)) { entry in + Button(action: { + if !entry.isFromHealthKit { + editMg = String(format: "%.0f", entry.milligrams) + editSource = entry.source + editTimestamp = entry.timestamp + editingEntry = entry + } + }) { + HStack { + VStack(alignment: .leading, spacing: 2) { + HStack(spacing: 4) { + Text(entry.source) + .font(.subheadline) + .foregroundColor(.primary) + if entry.isFromHealthKit { + Image(systemName: "heart.fill") + .font(.caption2) + .foregroundColor(.red) + } + } + Text(Self.dateTimeFormatter.string(from: entry.timestamp)) + .font(.caption2) + .foregroundColor(.secondary) + } + Spacer() + Text(String(format: "%.0f mg", entry.milligrams)) + .font(.subheadline.weight(.medium)) + .foregroundColor(caffeineGreen) + } + } + .buttonStyle(.plain) + } + .onDelete { indexSet in + let entriesToDelete = indexSet.compactMap { idx -> LoopInsightsCaffeineEntry? in + let entry = tracker.entries[idx] + return entry.isFromHealthKit ? nil : entry + } + for entry in entriesToDelete { + tracker.removeEntry(entry) + } + } + } + } + } + + // MARK: - Edit Sheet + + private func editEntrySheet(_ entry: LoopInsightsCaffeineEntry) -> some View { + NavigationView { + Form { + Section(header: Text(NSLocalizedString("Edit Entry", comment: "LoopInsights edit caffeine header"))) { + TextField(NSLocalizedString("Amount (mg)", comment: "LoopInsights caffeine amount"), text: $editMg) + .keyboardType(.decimalPad) + TextField(NSLocalizedString("Source", comment: "LoopInsights caffeine source"), text: $editSource) + DatePicker( + NSLocalizedString("Time", comment: "LoopInsights caffeine time"), + selection: $editTimestamp, + in: ...Date(), + displayedComponents: [.date, .hourAndMinute] + ) + } + + Section { + Button(action: { + if let mg = Double(editMg), mg > 0 { + tracker.updateEntry( + id: entry.id, + milligrams: mg, + source: editSource.isEmpty ? "Custom" : editSource, + timestamp: editTimestamp + ) + editingEntry = nil + } + }) { + HStack { + Spacer() + Text(NSLocalizedString("Save Changes", comment: "LoopInsights save caffeine edit")) + .fontWeight(.medium) + .foregroundColor(.white) + Spacer() + } + .padding(.vertical, 8) + .background(Double(editMg) ?? 0 > 0 ? caffeineGreen : Color.gray) + .cornerRadius(8) + } + .buttonStyle(.plain) + .disabled(Double(editMg) ?? 0 <= 0) + + Button(role: .destructive, action: { + tracker.removeEntry(entry) + editingEntry = nil + }) { + HStack { + Spacer() + Text(NSLocalizedString("Delete Entry", comment: "LoopInsights delete caffeine entry")) + Spacer() + } + } + } + } + .navigationTitle(NSLocalizedString("Edit Caffeine", comment: "LoopInsights edit caffeine title")) + .navigationBarTitleDisplayMode(.inline) + .toolbar { + ToolbarItem(placement: .navigationBarLeading) { + Button(NSLocalizedString("Cancel", comment: "Cancel button")) { + editingEntry = nil + } + } + } + } + } + + // MARK: - Helpers + + /// Gauge color: green base with orange/red for high levels + private func gaugeColor(_ mg: Double) -> Color { + if mg < 150 { return caffeineGreen } + if mg < 250 { return .orange } + return .red + } + + private static let timeFormatter: DateFormatter = { + let f = DateFormatter() + f.timeStyle = .short + return f + }() + + private static let dateTimeFormatter: DateFormatter = { + let f = DateFormatter() + f.dateStyle = .short + f.timeStyle = .short + return f + }() +} diff --git a/Loop/Views/LoopInsights/LoopInsights_ChatView.swift b/Loop/Views/LoopInsights/LoopInsights_ChatView.swift index 9531f9765a..3bb063262a 100644 --- a/Loop/Views/LoopInsights/LoopInsights_ChatView.swift +++ b/Loop/Views/LoopInsights/LoopInsights_ChatView.swift @@ -8,9 +8,8 @@ import SwiftUI -/// Full chat interface for Ask LoopInsights. -/// Dark-themed design with gradient background, purple user bubbles, -/// dark card AI bubbles, and a dark input bar. +/// Minimal Q&A interface for Ask LoopInsights. +/// Quick answers only — just the facts. struct LoopInsights_ChatView: View { @ObservedObject var viewModel: LoopInsights_ChatViewModel @@ -19,22 +18,13 @@ struct LoopInsights_ChatView: View { var body: some View { ZStack { - // Dark gradient background - LinearGradient( - colors: [ - Color(red: 0.06, green: 0.07, blue: 0.15), - Color(red: 0.08, green: 0.10, blue: 0.22), - Color(red: 0.05, green: 0.06, blue: 0.14) - ], - startPoint: .topLeading, - endPoint: .bottomTrailing - ) - .ignoresSafeArea() + Color(red: 0.06, green: 0.07, blue: 0.15) + .ignoresSafeArea() VStack(spacing: 0) { ScrollViewReader { proxy in ScrollView { - LazyVStack(spacing: 14) { + LazyVStack(spacing: 12) { if viewModel.messages.isEmpty { emptyStateView } else { @@ -53,7 +43,7 @@ struct LoopInsights_ChatView: View { errorView(error) } } - .padding(.vertical) + .padding(.vertical, 8) } .onChange(of: viewModel.messages.count) { _ in withAnimation { @@ -69,9 +59,27 @@ struct LoopInsights_ChatView: View { inputBar } } - .navigationTitle(NSLocalizedString("Ask LoopInsights", comment: "LoopInsights chat title")) .navigationBarTitleDisplayMode(.inline) + .onAppear { + let appearance = UINavigationBarAppearance() + appearance.configureWithOpaqueBackground() + appearance.backgroundColor = UIColor(red: 0.06, green: 0.07, blue: 0.15, alpha: 1) + appearance.titleTextAttributes = [.foregroundColor: UIColor.white.withAlphaComponent(0.9)] + UINavigationBar.appearance().standardAppearance = appearance + UINavigationBar.appearance().scrollEdgeAppearance = appearance + } + .onDisappear { + let appearance = UINavigationBarAppearance() + appearance.configureWithDefaultBackground() + UINavigationBar.appearance().standardAppearance = appearance + UINavigationBar.appearance().scrollEdgeAppearance = nil + } .toolbar { + ToolbarItem(placement: .principal) { + Text(NSLocalizedString("Ask LoopInsights", comment: "LoopInsights chat title")) + .font(.headline) + .foregroundColor(.white.opacity(0.9)) + } ToolbarItem(placement: .navigationBarLeading) { Button(action: { dismiss() }) { Image(systemName: "xmark.circle.fill") @@ -94,92 +102,38 @@ struct LoopInsights_ChatView: View { private func chatBubble(_ message: LoopInsightsChatMessage) -> some View { let isUser = message.role == .user - return HStack(alignment: .bottom, spacing: 8) { - if isUser { Spacer(minLength: 50) } - - if !isUser { - // AI avatar - Image(systemName: "brain.head.profile") - .font(.caption) - .foregroundColor(.purple.opacity(0.8)) - .frame(width: 24, height: 24) - .background(Color.white.opacity(0.1)) - .clipShape(Circle()) - } - - VStack(alignment: isUser ? .trailing : .leading, spacing: 4) { - if isUser { - // Purple gradient user bubble - Text(message.content) - .font(.body) - .foregroundColor(.white) - .padding(.horizontal, 16) - .padding(.vertical, 10) - .background( - LinearGradient( - colors: [ - Color(red: 0.55, green: 0.25, blue: 0.85), - Color(red: 0.75, green: 0.20, blue: 0.65) - ], - startPoint: .topLeading, - endPoint: .bottomTrailing - ) - ) - .clipShape(RoundedRectangle(cornerRadius: 20)) - } else { - // Dark card AI bubble - Text(message.content) - .font(.body) - .foregroundColor(.white.opacity(0.92)) - .textSelection(.enabled) - .padding(.horizontal, 16) - .padding(.vertical, 12) - .background( - RoundedRectangle(cornerRadius: 16) - .fill(Color.white.opacity(0.10)) - ) - } + return HStack { + if isUser { Spacer(minLength: 60) } - Text(Self.timeFormatter.string(from: message.timestamp)) - .font(.caption2) - .foregroundColor(.white.opacity(0.4)) - .padding(.horizontal, 4) - } + Text(message.content) + .font(.subheadline) + .foregroundColor(isUser ? .white : .white.opacity(0.9)) + .textSelection(.enabled) + .padding(.horizontal, 14) + .padding(.vertical, 10) + .background( + RoundedRectangle(cornerRadius: 14) + .fill(isUser ? Color.purple.opacity(0.6) : Color.white.opacity(0.08)) + ) - if !isUser { Spacer(minLength: 50) } + if !isUser { Spacer(minLength: 60) } } - .padding(.horizontal) + .padding(.horizontal, 12) } // MARK: - Loading Indicator private var loadingIndicator: some View { - HStack(spacing: 8) { - Image(systemName: "brain.head.profile") + HStack(spacing: 6) { + ProgressView() + .scaleEffect(0.7) + .tint(.white.opacity(0.5)) + Text(NSLocalizedString("Thinking...", comment: "LoopInsights chat: AI thinking")) .font(.caption) - .foregroundColor(.purple.opacity(0.8)) - .frame(width: 24, height: 24) - .background(Color.white.opacity(0.1)) - .clipShape(Circle()) - - HStack(spacing: 6) { - ProgressView() - .scaleEffect(0.7) - .tint(.white.opacity(0.6)) - Text(NSLocalizedString("Thinking...", comment: "LoopInsights chat: AI thinking")) - .font(.caption) - .foregroundColor(.white.opacity(0.5)) - } - .padding(.horizontal, 14) - .padding(.vertical, 10) - .background( - RoundedRectangle(cornerRadius: 16) - .fill(Color.white.opacity(0.08)) - ) - + .foregroundColor(.white.opacity(0.4)) Spacer() } - .padding(.horizontal) + .padding(.horizontal, 16) } // MARK: - Error View @@ -199,52 +153,39 @@ struct LoopInsights_ChatView: View { RoundedRectangle(cornerRadius: 10) .fill(Color.red.opacity(0.1)) ) - .padding(.horizontal) + .padding(.horizontal, 12) } // MARK: - Empty State private var emptyStateView: some View { - VStack(spacing: 20) { + VStack(spacing: 16) { Spacer() - .frame(height: 60) + .frame(height: 40) - Image(systemName: "bubble.left.and.bubble.right") - .font(.system(size: 48)) - .foregroundColor(.purple.opacity(0.5)) - - Text(NSLocalizedString("Ask me anything about your diabetes management", comment: "LoopInsights chat empty state title")) - .font(.headline) - .foregroundColor(.white.opacity(0.9)) - .multilineTextAlignment(.center) - - Text(NSLocalizedString("I have access to your current therapy settings and recent glucose data. Try one of the suggestions below or type your own question.", comment: "LoopInsights chat empty state subtitle")) + Text(NSLocalizedString("Ask a question about your data", comment: "LoopInsights chat empty state")) .font(.subheadline) - .foregroundColor(.white.opacity(0.5)) - .multilineTextAlignment(.center) - .padding(.horizontal) + .foregroundColor(.white.opacity(0.4)) // Quick-ask chips - ScrollView(.horizontal, showsIndicators: false) { - HStack(spacing: 10) { - ForEach(viewModel.quickAskSuggestions, id: \.self) { suggestion in - Button(action: { viewModel.sendQuickAsk(suggestion) }) { - Text(suggestion) - .font(.subheadline) - .foregroundColor(.white.opacity(0.8)) - .padding(.horizontal, 14) - .padding(.vertical, 8) - .background( - RoundedRectangle(cornerRadius: 20) - .stroke(Color.purple.opacity(0.5), lineWidth: 1) - ) - } - .buttonStyle(.plain) + VStack(spacing: 8) { + ForEach(viewModel.quickAskSuggestions, id: \.self) { suggestion in + Button(action: { viewModel.sendQuickAsk(suggestion) }) { + Text(suggestion) + .font(.subheadline) + .foregroundColor(.white.opacity(0.7)) + .frame(maxWidth: .infinity, alignment: .leading) + .padding(.horizontal, 14) + .padding(.vertical, 10) + .background( + RoundedRectangle(cornerRadius: 10) + .fill(Color.white.opacity(0.06)) + ) } + .buttonStyle(.plain) } - .padding(.horizontal) } - .padding(.top, 8) + .padding(.horizontal, 12) Spacer() } @@ -253,61 +194,41 @@ struct LoopInsights_ChatView: View { // MARK: - Input Bar private var inputBar: some View { - HStack(spacing: 10) { - // Placeholder "+" button (non-functional for now) - Button(action: {}) { - Image(systemName: "plus.circle.fill") - .font(.title3) - .foregroundColor(.white.opacity(0.3)) + HStack(spacing: 8) { + TextField( + NSLocalizedString("Ask a question...", comment: "LoopInsights chat input placeholder"), + text: $viewModel.inputText + ) + .textFieldStyle(.plain) + .foregroundColor(.white) + .focused($isInputFocused) + .onSubmit { + viewModel.sendMessage() } - .disabled(true) + .tint(.purple) - // Text field area - HStack(spacing: 8) { - TextField( - NSLocalizedString("Ask a question...", comment: "LoopInsights chat input placeholder"), - text: $viewModel.inputText - ) - .textFieldStyle(.plain) - .foregroundColor(.white) - .focused($isInputFocused) - .onSubmit { - viewModel.sendMessage() - } - .tint(.purple) - - // Send button - Button(action: { viewModel.sendMessage() }) { - Image(systemName: "arrow.up.circle.fill") - .font(.title2) - .foregroundColor( - viewModel.inputText.trimmingCharacters(in: .whitespacesAndNewlines).isEmpty || viewModel.isLoading - ? .white.opacity(0.2) - : .purple - ) - } - .disabled(viewModel.inputText.trimmingCharacters(in: .whitespacesAndNewlines).isEmpty || viewModel.isLoading) + Button(action: { viewModel.sendMessage() }) { + Image(systemName: "arrow.up.circle.fill") + .font(.title3) + .foregroundColor( + viewModel.inputText.trimmingCharacters(in: .whitespacesAndNewlines).isEmpty || viewModel.isLoading + ? .white.opacity(0.2) + : .purple + ) } - .padding(.horizontal, 14) - .padding(.vertical, 10) - .background( - RoundedRectangle(cornerRadius: 22) - .fill(Color.white.opacity(0.08)) - ) + .disabled(viewModel.inputText.trimmingCharacters(in: .whitespacesAndNewlines).isEmpty || viewModel.isLoading) } .padding(.horizontal, 14) .padding(.vertical, 10) + .background( + RoundedRectangle(cornerRadius: 20) + .fill(Color.white.opacity(0.08)) + ) + .padding(.horizontal, 12) + .padding(.vertical, 8) .background( Color(red: 0.06, green: 0.07, blue: 0.15) .ignoresSafeArea(edges: .bottom) ) } - - // MARK: - Formatters - - private static let timeFormatter: DateFormatter = { - let formatter = DateFormatter() - formatter.timeStyle = .short - return formatter - }() } diff --git a/Loop/Views/LoopInsights/LoopInsights_DashboardView.swift b/Loop/Views/LoopInsights/LoopInsights_DashboardView.swift index 6cc9f6c9d4..ea479a3ea7 100644 --- a/Loop/Views/LoopInsights/LoopInsights_DashboardView.swift +++ b/Loop/Views/LoopInsights/LoopInsights_DashboardView.swift @@ -29,6 +29,8 @@ struct LoopInsights_DashboardView: View { @State private var showingChat = false @State private var showingTrendsInsights = false @State private var showingGoals = false + @State private var showingMealInsights = false + @State private var showingCaffeineLog = false @State private var selectedRecord: LoopInsightsSuggestionRecord? @State private var developerTapCount = 0 @@ -59,6 +61,9 @@ struct LoopInsights_DashboardView: View { headerSection currentSettingsSection analysisSection + if viewModel.aggregatedStats != nil { + glucoseStatsCards + } if !viewModel.detectedPatterns.isEmpty { detectedPatternsSection } @@ -82,6 +87,7 @@ struct LoopInsights_DashboardView: View { } navigationSection } + .modifier(ListSectionSpacingModifier()) .navigationTitle(NSLocalizedString("LoopInsights", comment: "LoopInsights dashboard title")) .sheet(item: $selectedRecord) { record in NavigationView { @@ -155,6 +161,16 @@ struct LoopInsights_DashboardView: View { LoopInsights_GoalsView(coordinator: viewModel.coordinator) } } + .sheet(isPresented: $showingMealInsights) { + NavigationView { + LoopInsights_MealInsightsView(coordinator: viewModel.coordinator) + } + } + .sheet(isPresented: $showingCaffeineLog) { + NavigationView { + LoopInsights_CaffeineLogView(tracker: viewModel.coordinator.caffeineTracker) + } + } .overlay(alignment: .top) { if let monitor = viewModel.backgroundMonitor, monitor.showBanner, @@ -194,7 +210,7 @@ struct LoopInsights_DashboardView: View { handleDeveloperTap() } - Text(NSLocalizedString("LoopInsights analyzes your glucose, insulin, and carb data to suggest adjustments to your Basal Rates, Carb Ratios, and Insulin Sensitivity factors. Tap one of the settings, choose a lookback period, and tap Analyze to get AI-generated suggestions. All changes require your review and approval.", comment: "LoopInsights subtitle")) + Text(NSLocalizedString("Analyzes your glucose, insulin, and carb data to suggest Basal Rate, Carb Ratio, and ISF adjustments. Select a setting and lookback period, then tap Analyze. All changes require approval", comment: "LoopInsights subtitle")) .font(.subheadline) .foregroundColor(.secondary) @@ -204,20 +220,20 @@ struct LoopInsights_DashboardView: View { .foregroundColor(.secondary) } } - .padding(.vertical, 4) } } // MARK: - Current Settings private var currentSettingsSection: some View { - Section(header: Text(NSLocalizedString("Tap one of your current Therapy Settings", comment: "LoopInsights current settings header"))) { + Section(header: Text(NSLocalizedString("Therapy Settings", comment: "LoopInsights current settings header")) ) { if let snapshot = viewModel.currentSnapshot { settingRow( type: .basalRate, items: snapshot.basalRateItems, unit: "U/hr" ) + .padding(.top, 4) settingRow( type: .carbRatio, items: snapshot.carbRatioItems, @@ -283,12 +299,33 @@ struct LoopInsights_DashboardView: View { private var analysisSection: some View { Section { - // Period picker - Picker(NSLocalizedString("Analysis Period", comment: "LoopInsights period picker label"), selection: analysisPeriodBinding) { + // Period picker — Clarity-style capsule buttons + HStack(spacing: 6) { ForEach(LoopInsightsAnalysisPeriod.allCases) { period in - Text(period.displayName).tag(period) + let isSelected = viewModel.analysisPeriod == period + let clarityBlue = Color(red: 74/255, green: 115/255, blue: 213/255) // #4A73D5 + Button { + viewModel.updateAnalysisPeriod(period) + } label: { + Text("\(period.rawValue)") + .font(.subheadline.weight(.semibold)) + .frame(maxWidth: .infinity) + .padding(.vertical, 10) + .background(isSelected ? clarityBlue : Color.clear) + .foregroundColor(isSelected ? .white : Color(.secondaryLabel)) + .overlay( + Capsule() + .stroke( + isSelected ? clarityBlue : Color(.systemGray4), + lineWidth: 1.5 + ) + ) + .clipShape(Capsule()) + } + .buttonStyle(.plain) } } + .padding(.vertical, 4) // Analyze buttons HStack(spacing: 10) { @@ -355,6 +392,11 @@ struct LoopInsights_DashboardView: View { .listRowSeparator(.hidden, edges: .top) .padding(.bottom, 8) + // AGP Chart — shown with analysis summary when enabled + if LoopInsights_FeatureFlags.agpChartEnabled && !viewModel.agpGlucoseSamples.isEmpty { + LoopInsights_AGPChartView(glucoseSamples: viewModel.agpGlucoseSamples) + } + if !LoopInsights_SecureStorage.hasAPIKey { Text(NSLocalizedString("Configure your AI API key in LoopInsights Settings to begin analysis.", comment: "LoopInsights no API key message")) .font(.caption) @@ -594,6 +636,21 @@ struct LoopInsights_DashboardView: View { } } + // MARK: - Glucose Stats Cards (Clarity-style) + + private var glucoseStatsCards: some View { + Group { + if let stats = viewModel.aggregatedStats { + Section { + glucoseCard(stats: stats) + } + Section { + timeInRangeCard(glucoseStats: stats.glucoseStats) + } + } + } + } + // MARK: - Assessment private var assessmentSection: some View { @@ -603,31 +660,151 @@ struct LoopInsights_DashboardView: View { .font(.subheadline) .foregroundColor(.secondary) } + } + } - if let stats = viewModel.aggregatedStats { - statsRow(label: NSLocalizedString("Time in Range (70-180)", comment: "LoopInsights TIR label with range"), - value: String(format: "%.1f%%", stats.glucoseStats.timeInRange)) - statsRow(label: NSLocalizedString("Average Glucose", comment: "LoopInsights avg glucose label"), - value: String(format: "%.0f mg/dL", stats.glucoseStats.averageGlucose)) - statsRow(label: NSLocalizedString("GMI (est. A1C)", comment: "LoopInsights GMI label"), - value: String(format: "%.1f%%", stats.glucoseStats.gmi)) - statsRow(label: NSLocalizedString("Total Daily Dose", comment: "LoopInsights TDD label"), - value: String(format: "%.1f U/day", stats.insulinStats.totalDailyDose)) - statsRow(label: NSLocalizedString("Coefficient of Variation", comment: "LoopInsights coefficient of variation label"), - value: String(format: "%.1f%%", stats.glucoseStats.coefficientOfVariation)) + // MARK: - Glucose Card + + private func glucoseCard(stats: LoopInsightsAggregatedStats) -> some View { + VStack(alignment: .leading, spacing: 12) { + Text(NSLocalizedString("Glucose", comment: "LoopInsights glucose card title")) + .font(.title3.weight(.semibold)) + .foregroundColor(.primary) + Divider() + + // Average Glucose + VStack(alignment: .leading, spacing: 2) { + Text(NSLocalizedString("Average Glucose", comment: "LoopInsights avg glucose label")) + .font(.callout) + .foregroundColor(.primary) + HStack(alignment: .firstTextBaseline, spacing: 4) { + Text(String(format: "%.0f", stats.glucoseStats.averageGlucose)) + .font(.system(size: 42, weight: .bold, design: .rounded)) + .foregroundColor(.primary) + Text(NSLocalizedString("mg/dL", comment: "LoopInsights unit mg/dL")) + .font(.callout) + .foregroundColor(Color(.secondaryLabel)) + } + } + + // Std Dev & GMI side-by-side + HStack(alignment: .top, spacing: 24) { + VStack(alignment: .leading, spacing: 2) { + Text(NSLocalizedString("Standard Deviation", comment: "LoopInsights std dev label")) + .font(.callout) + .foregroundColor(.primary) + HStack(alignment: .firstTextBaseline, spacing: 3) { + Text(String(format: "%.0f", stats.glucoseStats.standardDeviation)) + .font(.system(size: 28, weight: .bold, design: .rounded)) + .foregroundColor(.primary) + Text(NSLocalizedString("mg/dL", comment: "LoopInsights unit mg/dL")) + .font(.caption) + .foregroundColor(Color(.secondaryLabel)) + } + } + + VStack(alignment: .leading, spacing: 2) { + Text(NSLocalizedString("GMI", comment: "LoopInsights GMI label")) + .font(.callout) + .foregroundColor(.primary) + if stats.glucoseStats.sampleCount >= 12 { + HStack(alignment: .firstTextBaseline, spacing: 3) { + Text(String(format: "%.1f", stats.glucoseStats.gmi)) + .font(.system(size: 28, weight: .bold, design: .rounded)) + .foregroundColor(.primary) + Text("%") + .font(.caption) + .foregroundColor(Color(.secondaryLabel)) + } + } else { + Text(NSLocalizedString("Not enough\ndata available", comment: "LoopInsights GMI insufficient data")) + .font(.callout.weight(.semibold)) + .foregroundColor(.primary) + } + } } } + .padding(.vertical, 4) } - private func statsRow(label: String, value: String) -> some View { - HStack { + // MARK: - Time in Range Card + + // Clarity TIR colors + private static let clarityVeryHigh = Color(red: 193/255, green: 79/255, blue: 12/255) // #C14F0C — Very High + private static let clarityHigh = Color(red: 240/255, green: 202/255, blue: 76/255) // #F0CA4C — High + private static let clarityGreen = Color(red: 116/255, green: 165/255, blue: 46/255) // #74A52E — In Range + private static let clarityLow = Color(red: 211/255, green: 98/255, blue: 101/255) // #D36265 — Low + private static let clarityVeryLow = Color(red: 127/255, green: 3/255, blue: 2/255) // #7F0302 — Very Low + + private func timeInRangeCard(glucoseStats g: LoopInsightsAggregatedStats.GlucoseStats) -> some View { + VStack(alignment: .leading, spacing: 12) { + Text(NSLocalizedString("Time in Range", comment: "LoopInsights TIR card title")) + .font(.title3.weight(.semibold)) + .foregroundColor(.primary) + Divider() + + HStack(alignment: .center, spacing: 14) { + // Stacked color bar — wide like Clarity + tirStackedBar(glucoseStats: g) + .frame(width: 65) + + // Percentage labels — lighter text + VStack(alignment: .leading, spacing: 5) { + tirLabelRow(percent: g.timeVeryHigh, label: NSLocalizedString("Very High", comment: "LoopInsights TIR very high"), isBold: false) + tirLabelRow(percent: g.timeHigh, label: NSLocalizedString("High", comment: "LoopInsights TIR high"), isBold: false) + tirLabelRow(percent: g.timeInRange, label: NSLocalizedString("In Range", comment: "LoopInsights TIR in range"), isBold: true) + tirLabelRow(percent: g.timeLow, label: NSLocalizedString("Low", comment: "LoopInsights TIR low"), isBold: false) + tirLabelRow(percent: g.timeVeryLow, label: NSLocalizedString("Very Low", comment: "LoopInsights TIR very low"), isBold: false) + } + } + + Divider() + + HStack(spacing: 0) { + Text(NSLocalizedString("Target Range: ", comment: "LoopInsights TIR target label")) + .font(.subheadline.weight(.semibold)) + .foregroundColor(.primary) + Text(NSLocalizedString("70–180 mg/dL", comment: "LoopInsights TIR target value")) + .font(.subheadline) + .foregroundColor(.primary) + } + } + .padding(.vertical, 4) + } + + private func tirStackedBar(glucoseStats g: LoopInsightsAggregatedStats.GlucoseStats) -> some View { + GeometryReader { geo in + let totalHeight = geo.size.height + let zones: [(Double, Color)] = [ + (g.timeVeryHigh, Self.clarityVeryHigh), + (g.timeHigh, Self.clarityHigh), + (g.timeInRange, Self.clarityGreen), + (g.timeLow, Self.clarityLow), + (g.timeVeryLow, Self.clarityVeryLow) + ] + VStack(spacing: 1) { + ForEach(Array(zones.enumerated()), id: \.offset) { _, zone in + let height = max(zone.0 > 0 ? 2 : 0, totalHeight * zone.0 / 100) + RoundedRectangle(cornerRadius: 4) + .fill(zone.1) + .frame(height: height) + } + } + } + .frame(height: 130) + } + + private func tirLabelRow(percent: Double, label: String, isBold: Bool) -> some View { + HStack(spacing: 4) { + Text(String(format: "%.0f%%", percent)) + .font(.subheadline) + .fontWeight(isBold ? .bold : .regular) + .foregroundColor(isBold ? .primary : Color(.secondaryLabel)) + .fixedSize(horizontal: true, vertical: false) Text(label) - .font(.caption) - .foregroundColor(.secondary) - Spacer() - Text(value) - .font(.caption) - .fontWeight(.medium) + .font(.subheadline) + .fontWeight(isBold ? .bold : .regular) + .foregroundColor(isBold ? .primary : Color(.secondaryLabel)) } } @@ -728,11 +905,11 @@ struct LoopInsights_DashboardView: View { private var navigationSection: some View { Section { - Button(action: { showingTrendsInsights = true }) { + Button(action: { showingChat = true }) { HStack { - Image(systemName: "chart.line.uptrend.xyaxis") + Image(systemName: "bubble.left.and.bubble.right") .foregroundColor(.accentColor) - Text(NSLocalizedString("Trends & Insights", comment: "LoopInsights trends button")) + Text(NSLocalizedString("Ask LoopInsights", comment: "LoopInsights chat button")) Spacer() Image(systemName: "chevron.right") .font(.caption) @@ -740,6 +917,20 @@ struct LoopInsights_DashboardView: View { } } + if LoopInsights_FeatureFlags.caffeineTrackingEnabled { + Button(action: { showingCaffeineLog = true }) { + HStack { + Image(systemName: "cup.and.saucer.fill") + .foregroundColor(.green) + Text(NSLocalizedString("Caffeine Tracker", comment: "LoopInsights caffeine button")) + Spacer() + Image(systemName: "chevron.right") + .font(.caption) + .foregroundColor(.secondary) + } + } + } + Button(action: { showingGoals = true }) { HStack { Image(systemName: "target") @@ -752,11 +943,24 @@ struct LoopInsights_DashboardView: View { } } - Button(action: { showingChat = true }) { + if LoopInsights_FeatureFlags.foodResponseEnabled { + Button(action: { showingMealInsights = true }) { + HStack { + Image(systemName: "fork.knife") + .foregroundColor(.accentColor) + Text(NSLocalizedString("Meal Insights", comment: "LoopInsights meal insights button")) + Spacer() + Image(systemName: "chevron.right") + .font(.caption) + .foregroundColor(.secondary) + } + } + } + + Button(action: { showingHistory = true }) { HStack { - Image(systemName: "bubble.left.and.bubble.right") - .foregroundColor(.accentColor) - Text(NSLocalizedString("Ask LoopInsights", comment: "LoopInsights chat button")) + Image(systemName: "clock.arrow.circlepath") + Text(NSLocalizedString("Suggestion History", comment: "LoopInsights history button")) Spacer() Image(systemName: "chevron.right") .font(.caption) @@ -764,10 +968,11 @@ struct LoopInsights_DashboardView: View { } } - Button(action: { showingHistory = true }) { + Button(action: { showingTrendsInsights = true }) { HStack { - Image(systemName: "clock.arrow.circlepath") - Text(NSLocalizedString("Suggestion History", comment: "LoopInsights history button")) + Image(systemName: "chart.line.uptrend.xyaxis") + .foregroundColor(.accentColor) + Text(NSLocalizedString("Trends & Insights", comment: "LoopInsights trends button")) Spacer() Image(systemName: "chevron.right") .font(.caption) @@ -903,6 +1108,18 @@ struct LoopInsights_DashboardView: View { }() } +// MARK: - iOS 17+ List Section Spacing + +private struct ListSectionSpacingModifier: ViewModifier { + func body(content: Content) -> some View { + if #available(iOS 17.0, *) { + content.listSectionSpacing(10) + } else { + content + } + } +} + // MARK: - Pre-Fill Editor View /// Editor that shows proposed therapy changes with editable values. diff --git a/Loop/Views/LoopInsights/LoopInsights_MealInsightsView.swift b/Loop/Views/LoopInsights/LoopInsights_MealInsightsView.swift new file mode 100644 index 0000000000..cb601a6e9a --- /dev/null +++ b/Loop/Views/LoopInsights/LoopInsights_MealInsightsView.swift @@ -0,0 +1,373 @@ +// +// LoopInsights_MealInsightsView.swift +// Loop +// +// Concept & design by Taylor Patterson. Coded & tested by Claude Code in February 2026. +// Copyright (c) 2025-2026 LoopKit Authors. All rights reserved. +// + +import SwiftUI +import LoopKit +import HealthKit + +/// Combined Meal Debrief + Pre-Meal Advisor view. +/// "Recent Meals" tab shows meals with glucose response cards. +/// "Pre-Meal Advice" tab lets user pick a food type and see historical pattern + AI advice. +struct LoopInsights_MealInsightsView: View { + + let coordinator: LoopInsights_Coordinator + + @State private var selectedTab = 0 + @State private var mealEvents: [LoopInsightsMealEvent] = [] + @State private var foodPatterns: [LoopInsightsFoodResponsePattern] = [] + @State private var isLoading = true + @State private var selectedPattern: LoopInsightsFoodResponsePattern? + @State private var aiAdvice: String? + @State private var isLoadingAdvice = false + @Environment(\.dismiss) private var dismiss + + var body: some View { + VStack(spacing: 0) { + Picker("", selection: $selectedTab) { + Text(NSLocalizedString("Recent Meals", comment: "LoopInsights meal tab: recent")).tag(0) + Text(NSLocalizedString("Pre-Meal Advice", comment: "LoopInsights meal tab: advice")).tag(1) + } + .pickerStyle(.segmented) + .padding() + + if isLoading { + Spacer() + ProgressView() + Text(NSLocalizedString("Analyzing meal data...", comment: "LoopInsights meals loading")) + .font(.caption) + .foregroundColor(.secondary) + Spacer() + } else if selectedTab == 0 { + recentMealsTab + } else { + preMealAdviceTab + } + } + .navigationTitle(NSLocalizedString("Meal Insights", comment: "LoopInsights meal insights title")) + .navigationBarTitleDisplayMode(.inline) + .toolbar { + ToolbarItem(placement: .navigationBarTrailing) { + Button(NSLocalizedString("Done", comment: "Done button")) { + dismiss() + } + } + } + .task { + await loadMealData() + } + } + + // MARK: - Recent Meals Tab + + private var recentMealsTab: some View { + Group { + if mealEvents.isEmpty { + VStack(spacing: 12) { + Image(systemName: "fork.knife") + .font(.system(size: 40)) + .foregroundColor(.secondary) + Text(NSLocalizedString("No recent meals with glucose data found", comment: "LoopInsights no meals")) + .font(.subheadline) + .foregroundColor(.secondary) + } + .frame(maxWidth: .infinity, maxHeight: .infinity) + } else { + ScrollView { + LazyVStack(spacing: 12) { + // Color key + HStack(spacing: 16) { + HStack(spacing: 4) { + Circle().fill(Color.green).frame(width: 8, height: 8) + Text(NSLocalizedString("Rise ≤ 50 mg/dL", comment: "LoopInsights meal legend green")) + .font(.caption2) + .foregroundColor(.secondary) + } + HStack(spacing: 4) { + Circle().fill(Color.orange).frame(width: 8, height: 8) + Text(NSLocalizedString("Rise > 50 mg/dL", comment: "LoopInsights meal legend orange")) + .font(.caption2) + .foregroundColor(.secondary) + } + Spacer() + } + + ForEach(mealEvents) { event in + mealCard(event) + } + } + .padding() + } + } + } + } + + private func mealCard(_ event: LoopInsightsMealEvent) -> some View { + VStack(alignment: .leading, spacing: 8) { + HStack { + VStack(alignment: .leading, spacing: 2) { + Text(event.foodType) + .font(.subheadline.weight(.semibold)) + Text(Self.dateFormatter.string(from: event.date)) + .font(.caption2) + .foregroundColor(.secondary) + } + Spacer() + Text(String(format: "%.0fg carbs", event.carbs)) + .font(.caption) + .foregroundColor(.secondary) + } + + // Glucose response summary + HStack(spacing: 16) { + glucoseStatPill( + label: NSLocalizedString("Pre", comment: "LoopInsights meal pre-meal label"), + value: String(format: "%.0f", event.preMealGlucose), + color: glucoseColor(event.preMealGlucose) + ) + Image(systemName: "arrow.right") + .font(.caption2) + .foregroundColor(.secondary) + glucoseStatPill( + label: NSLocalizedString("Peak", comment: "LoopInsights meal peak label"), + value: String(format: "%.0f", event.peakGlucose), + color: glucoseColor(event.peakGlucose) + ) + Image(systemName: "arrow.right") + .font(.caption2) + .foregroundColor(.secondary) + glucoseStatPill( + label: "2h", + value: String(format: "%.0f", event.twoHourGlucose), + color: glucoseColor(event.twoHourGlucose) + ) + } + + // Rise indicator + let rise = event.peakGlucose - event.preMealGlucose + HStack(spacing: 4) { + Image(systemName: rise > 50 ? "arrow.up.circle.fill" : "arrow.up.circle") + .foregroundColor(rise > 50 ? .orange : .green) + .font(.caption) + Text(String(format: NSLocalizedString("Rise: %+.0f mg/dL", comment: "LoopInsights meal glucose rise"), rise)) + .font(.caption) + .foregroundColor(rise > 50 ? .orange : .green) + } + } + .padding() + .background(Color(.secondarySystemGroupedBackground)) + .cornerRadius(12) + } + + private func glucoseStatPill(label: String, value: String, color: Color) -> some View { + VStack(spacing: 2) { + Text(label) + .font(.caption2) + .foregroundColor(.secondary) + Text(value) + .font(.caption.weight(.bold)) + .foregroundColor(color) + } + .frame(minWidth: 44) + } + + private func glucoseColor(_ value: Double) -> Color { + if value < 70 { return .red } + if value <= 180 { return .green } + return .orange + } + + // MARK: - Pre-Meal Advice Tab + + private var preMealAdviceTab: some View { + ScrollView { + VStack(alignment: .leading, spacing: 16) { + if foodPatterns.isEmpty { + Text(NSLocalizedString("No food-type patterns available. Log meals with food types to see patterns.", comment: "LoopInsights no food patterns")) + .font(.subheadline) + .foregroundColor(.secondary) + .padding() + } else { + Text(NSLocalizedString("Select a food type to see your historical glucose response and get AI advice:", comment: "LoopInsights food pattern instructions")) + .font(.caption) + .foregroundColor(.secondary) + .padding(.horizontal) + + ForEach(foodPatterns) { pattern in + foodPatternCard(pattern) + } + + if let advice = aiAdvice { + VStack(alignment: .leading, spacing: 8) { + HStack(spacing: 6) { + Image(systemName: "sparkles") + .foregroundColor(.accentColor) + Text(NSLocalizedString("AI Advice", comment: "LoopInsights AI advice header")) + .font(.subheadline.weight(.semibold)) + } + Text(advice) + .font(.caption) + .foregroundColor(.secondary) + } + .padding() + .background(Color(.secondarySystemGroupedBackground)) + .cornerRadius(12) + .padding(.horizontal) + } + } + } + .padding(.vertical) + } + } + + private func foodPatternCard(_ pattern: LoopInsightsFoodResponsePattern) -> some View { + Button(action: { + selectedPattern = pattern + requestAdvice(for: pattern) + }) { + VStack(alignment: .leading, spacing: 6) { + HStack { + Text(pattern.foodType) + .font(.subheadline.weight(.semibold)) + .foregroundColor(.primary) + Spacer() + Text(String(format: "%d meals", pattern.mealCount)) + .font(.caption) + .foregroundColor(.secondary) + if selectedPattern?.id == pattern.id { + Image(systemName: "checkmark.circle.fill") + .foregroundColor(.accentColor) + } + } + + HStack(spacing: 16) { + VStack(alignment: .leading, spacing: 2) { + Text(NSLocalizedString("Peak Rise", comment: "LoopInsights peak rise label")) + .font(.caption2) + .foregroundColor(.secondary) + Text(String(format: "+%.0f mg/dL", pattern.peakGlucoseRise)) + .font(.caption.weight(.bold)) + .foregroundColor(pattern.peakGlucoseRise > 60 ? .orange : .green) + } + VStack(alignment: .leading, spacing: 2) { + Text(NSLocalizedString("Time to Peak", comment: "LoopInsights time to peak label")) + .font(.caption2) + .foregroundColor(.secondary) + Text(String(format: "%.0f min", pattern.timeToPeakMinutes)) + .font(.caption.weight(.bold)) + } + VStack(alignment: .leading, spacing: 2) { + Text(NSLocalizedString("Avg Carbs", comment: "LoopInsights avg carbs label")) + .font(.caption2) + .foregroundColor(.secondary) + Text(String(format: "%.0fg", pattern.averageCarbsPerMeal)) + .font(.caption.weight(.bold)) + } + } + + if isLoadingAdvice && selectedPattern?.id == pattern.id { + HStack { + ProgressView() + .scaleEffect(0.7) + Text(NSLocalizedString("Getting advice...", comment: "LoopInsights getting advice")) + .font(.caption) + .foregroundColor(.secondary) + } + } + } + .padding() + .background( + RoundedRectangle(cornerRadius: 12) + .fill(selectedPattern?.id == pattern.id + ? Color.accentColor.opacity(0.08) + : Color(.secondarySystemGroupedBackground)) + ) + .overlay( + RoundedRectangle(cornerRadius: 12) + .stroke(selectedPattern?.id == pattern.id ? Color.accentColor.opacity(0.3) : Color.clear, lineWidth: 1) + ) + } + .buttonStyle(.plain) + .padding(.horizontal) + } + + // MARK: - Data Loading + + private func loadMealData() async { + let period = LoopInsights_FeatureFlags.analysisPeriod + let endDate = Date() + let startDate = endDate.addingTimeInterval(-period.timeInterval) + + do { + let carbEntries = try await coordinator.fetchCarbEntries(start: startDate, end: endDate) + let glucoseSamples = try await coordinator.fetchGlucoseSamples(start: startDate, end: endDate) + + let events = LoopInsights_FoodResponseAnalyzer.buildRecentMealEvents( + carbEntries: carbEntries, + glucoseSamples: glucoseSamples + ) + let patterns = LoopInsights_FoodResponseAnalyzer.analyzeFoodResponses( + carbEntries: carbEntries, + glucoseSamples: glucoseSamples + ) + + await MainActor.run { + self.mealEvents = events + self.foodPatterns = patterns + self.isLoading = false + } + } catch { + await MainActor.run { + self.isLoading = false + } + } + } + + private func requestAdvice(for pattern: LoopInsightsFoodResponsePattern) { + isLoadingAdvice = true + aiAdvice = nil + + let prompt = """ + Based on my glucose response pattern for \(pattern.foodType): + - Average carbs: \(String(format: "%.0f", pattern.averageCarbsPerMeal))g per meal + - Peak glucose rise: \(String(format: "%.0f", pattern.peakGlucoseRise)) mg/dL + - Time to peak: \(String(format: "%.0f", pattern.timeToPeakMinutes)) minutes + - 2h post-meal average: \(String(format: "%.0f", pattern.twoHourPostMealAvg)) mg/dL + - 4h post-meal average: \(String(format: "%.0f", pattern.fourHourPostMealAvg)) mg/dL + + Give me brief, practical advice for managing this food. Include: timing of pre-bolus, \ + any carb ratio considerations, and alternative strategies. Keep it under 4 sentences. + """ + + Task { + do { + let response = try await LoopInsights_AIServiceAdapter.shared.sendPrompt( + "You are a diabetes meal advisor. Be concise and practical.", + userPrompt: prompt + ) + await MainActor.run { + self.aiAdvice = response + self.isLoadingAdvice = false + } + } catch { + await MainActor.run { + self.aiAdvice = "Unable to get advice: \(error.localizedDescription)" + self.isLoadingAdvice = false + } + } + } + } + + // MARK: - Formatters + + private static let dateFormatter: DateFormatter = { + let f = DateFormatter() + f.dateStyle = .medium + f.timeStyle = .short + return f + }() +} diff --git a/Loop/Views/LoopInsights/LoopInsights_SettingsView.swift b/Loop/Views/LoopInsights/LoopInsights_SettingsView.swift index 770c0a8722..09438add1c 100644 --- a/Loop/Views/LoopInsights/LoopInsights_SettingsView.swift +++ b/Loop/Views/LoopInsights/LoopInsights_SettingsView.swift @@ -51,6 +51,18 @@ struct LoopInsights_SettingsView: View { @StateObject private var healthKitManager = LoopInsights_HealthKitManager() @State private var isRequestingBiometricAuth = false + // Phase 5 flags + @State private var circadianEnabled = LoopInsights_FeatureFlags.circadianEnabled + @State private var foodResponseEnabled = LoopInsights_FeatureFlags.foodResponseEnabled + @State private var caffeineTrackingEnabled = LoopInsights_FeatureFlags.caffeineTrackingEnabled + @State private var nightscoutImportEnabled = LoopInsights_FeatureFlags.nightscoutImportEnabled + @State private var agpChartEnabled = LoopInsights_FeatureFlags.agpChartEnabled + + // Nightscout + @State private var nightscoutConfig = LoopInsightsNightscoutConfig.load() + @State private var isTestingNightscout = false + @State private var nightscoutTestResult: TestResult? + // Developer mode unlock @State private var developerTapCount = 0 @State private var showDeveloperUnlocked = false @@ -98,6 +110,10 @@ struct LoopInsights_SettingsView: View { advancedAISection analysisOptionsSection biometricsSection + phase5FeaturesSection + if nightscoutImportEnabled { + nightscoutSection + } personalitySection backgroundMonitoringSection dataSection @@ -116,6 +132,12 @@ struct LoopInsights_SettingsView: View { selectedPersonality = LoopInsights_FeatureFlags.aiPersonality useTestData = LoopInsights_FeatureFlags.useTestData biometricsEnabled = LoopInsights_FeatureFlags.biometricsEnabled + circadianEnabled = LoopInsights_FeatureFlags.circadianEnabled + foodResponseEnabled = LoopInsights_FeatureFlags.foodResponseEnabled + caffeineTrackingEnabled = LoopInsights_FeatureFlags.caffeineTrackingEnabled + nightscoutImportEnabled = LoopInsights_FeatureFlags.nightscoutImportEnabled + agpChartEnabled = LoopInsights_FeatureFlags.agpChartEnabled + nightscoutConfig = LoopInsightsNightscoutConfig.load() apiKeyText = LoopInsights_SecureStorage.loadAPIKey() ?? "" // Clear stale endpoint path if it matches a different format's default @@ -977,6 +999,205 @@ struct LoopInsights_SettingsView: View { } + // MARK: - Phase 5 Features + + private var phase5FeaturesSection: some View { + Section { + VStack(alignment: .leading, spacing: 12) { + HStack(spacing: 6) { + Image(systemName: "sparkle") + .foregroundColor(.accentColor) + Text(NSLocalizedString("ADVANCED FEATURES", comment: "LoopInsights Phase 5 features header")) + .font(.caption) + .fontWeight(.semibold) + .foregroundColor(.secondary) + .textCase(.uppercase) + } + + Toggle(NSLocalizedString("Circadian Analysis", comment: "LoopInsights circadian toggle"), isOn: $circadianEnabled) + .onChange(of: circadianEnabled) { newValue in + LoopInsights_FeatureFlags.circadianEnabled = newValue + } + Text(NSLocalizedString("Enables circadian glucose profiling, dawn phenomenon detection, negative basal awareness, and HRV-based stress scoring. Enriches AI analysis with sleep/wake patterns.", comment: "LoopInsights circadian description")) + .font(.caption) + .foregroundColor(.secondary) + + Divider() + + Toggle(NSLocalizedString("Food Response Analysis", comment: "LoopInsights food response toggle"), isOn: $foodResponseEnabled) + .onChange(of: foodResponseEnabled) { newValue in + LoopInsights_FeatureFlags.foodResponseEnabled = newValue + } + Text(NSLocalizedString("Analyzes glucose responses by food type. Enables Meal Insights view with meal debrief cards and pre-meal AI advisor.", comment: "LoopInsights food response description")) + .font(.caption) + .foregroundColor(.secondary) + + Divider() + + Toggle(NSLocalizedString("Caffeine Tracking", comment: "LoopInsights caffeine toggle"), isOn: $caffeineTrackingEnabled) + .onChange(of: caffeineTrackingEnabled) { newValue in + LoopInsights_FeatureFlags.caffeineTrackingEnabled = newValue + } + Text(NSLocalizedString("Log caffeine intake to help the AI correlate caffeine with glucose patterns. Uses a 5.7-hour half-life decay model.", comment: "LoopInsights caffeine description")) + .font(.caption) + .foregroundColor(.secondary) + + Divider() + + Toggle(NSLocalizedString("AGP Chart", comment: "LoopInsights AGP toggle"), isOn: $agpChartEnabled) + .onChange(of: agpChartEnabled) { newValue in + LoopInsights_FeatureFlags.agpChartEnabled = newValue + } + Text(NSLocalizedString("Show Ambulatory Glucose Profile chart on the dashboard with percentile bands (P10/P25/P50/P75/P90) over 24 hours.", comment: "LoopInsights AGP description")) + .font(.caption) + .foregroundColor(.secondary) + + Divider() + + Toggle(NSLocalizedString("Nightscout Import", comment: "LoopInsights nightscout toggle"), isOn: $nightscoutImportEnabled) + .onChange(of: nightscoutImportEnabled) { newValue in + LoopInsights_FeatureFlags.nightscoutImportEnabled = newValue + } + Text(NSLocalizedString("Import glucose and treatment data from a Nightscout server as a supplemental data source.", comment: "LoopInsights nightscout description")) + .font(.caption) + .foregroundColor(.secondary) + } + } + } + + // MARK: - Nightscout Configuration + + private var nightscoutSection: some View { + Section { + VStack(alignment: .leading, spacing: 12) { + HStack(spacing: 6) { + Image(systemName: "cloud.fill") + .foregroundColor(.accentColor) + Text(NSLocalizedString("NIGHTSCOUT", comment: "LoopInsights Nightscout header")) + .font(.caption) + .fontWeight(.semibold) + .foregroundColor(.secondary) + .textCase(.uppercase) + } + + VStack(alignment: .leading, spacing: 4) { + Text(NSLocalizedString("Site URL", comment: "LoopInsights Nightscout URL label")) + .font(.caption) + .foregroundColor(.secondary) + TextField("https://your-site.herokuapp.com", text: $nightscoutConfig.siteURL) + .textFieldStyle(RoundedBorderTextFieldStyle()) + .autocapitalization(.none) + .disableAutocorrection(true) + .keyboardType(.URL) + .onChange(of: nightscoutConfig.siteURL) { _ in + nightscoutConfig.isConnected = false + nightscoutTestResult = nil + nightscoutConfig.save() + } + } + + VStack(alignment: .leading, spacing: 4) { + Text(NSLocalizedString("API Secret", comment: "LoopInsights Nightscout API secret label")) + .font(.caption) + .foregroundColor(.secondary) + SecureField(NSLocalizedString("Your API secret", comment: "LoopInsights Nightscout secret placeholder"), text: $nightscoutConfig.apiSecret) + .textFieldStyle(RoundedBorderTextFieldStyle()) + .autocapitalization(.none) + .disableAutocorrection(true) + .onChange(of: nightscoutConfig.apiSecret) { _ in + nightscoutConfig.isConnected = false + nightscoutTestResult = nil + nightscoutConfig.save() + } + } + + // Test Connection + Button(action: testNightscoutConnection) { + HStack(spacing: 6) { + if isTestingNightscout { + ProgressView() + .progressViewStyle(.circular) + .scaleEffect(0.8) + .tint(.black) + Text(NSLocalizedString("Testing...", comment: "LoopInsights testing nightscout")) + } else { + Image(systemName: "checkmark.shield") + Text(NSLocalizedString("Test Connection", comment: "LoopInsights test nightscout button")) + } + } + .font(.body.weight(.medium)) + .foregroundColor(.black) + .frame(maxWidth: .infinity) + .padding(.vertical, 10) + .background(Color.white) + .cornerRadius(10) + } + .disabled(isTestingNightscout || nightscoutConfig.siteURL.isEmpty) + .opacity((isTestingNightscout || nightscoutConfig.siteURL.isEmpty) ? 0.5 : 1.0) + .buttonStyle(.plain) + + if let result = nightscoutTestResult { + switch result { + case .success: + HStack(spacing: 4) { + Image(systemName: "checkmark.circle.fill") + .foregroundColor(.green) + Text(NSLocalizedString("Connected to Nightscout", comment: "LoopInsights nightscout connected")) + .font(.caption) + .foregroundColor(.green) + } + case .failure(let message): + HStack(alignment: .top, spacing: 4) { + Image(systemName: "xmark.circle.fill") + .foregroundColor(.red) + Text(message) + .font(.caption) + .foregroundColor(.red) + .fixedSize(horizontal: false, vertical: true) + } + case .warning(let message): + HStack(alignment: .top, spacing: 4) { + Image(systemName: "exclamationmark.triangle.fill") + .foregroundColor(.orange) + Text(message) + .font(.caption) + .foregroundColor(.orange) + } + } + } + + Text(NSLocalizedString("Nightscout data is used as supplemental context for AI analysis. Your existing Loop data stores remain the primary source.", comment: "LoopInsights nightscout note")) + .font(.caption2) + .foregroundColor(.secondary) + } + } + } + + private func testNightscoutConnection() { + isTestingNightscout = true + nightscoutTestResult = nil + + Task { + do { + let importer = LoopInsights_NightscoutImporter(config: nightscoutConfig) + let success = try await importer.testConnection() + await MainActor.run { + nightscoutConfig.isConnected = success + nightscoutConfig.save() + nightscoutTestResult = success ? .success : .failure("Unknown error") + isTestingNightscout = false + } + } catch { + await MainActor.run { + nightscoutConfig.isConnected = false + nightscoutConfig.save() + nightscoutTestResult = .failure(error.localizedDescription) + isTestingNightscout = false + } + } + } + } + // MARK: - Helpers private var effectiveFormat: LoopInsightsRequestFormat { From 1e74a3cc5bfa7992af4a58c19a0285ca3796e83d Mon Sep 17 00:00:00 2001 From: Taylor Date: Fri, 13 Feb 2026 11:55:39 -0800 Subject: [PATCH 07/14] Phase 6: Performance optimizations, enhanced activity data, and meal card fixes P1: Parallel HealthKit queries via async let (6 concurrent fetches) P2: Single-pass TIR zone counting (5-zone) replacing multiple filter passes P3: Pre-fetch raw data in DataAggregator, cache for cross-component reuse P4: Binary search for glucose lookups in FoodResponseAnalyzer P5: Pre-sorted glucose samples with binary search in AdvancedAnalyzers P6: Pre-compute AGP data in ViewModel instead of SwiftUI view body P7: Static DateFormatter in LoopInsightsTimeBlock.formatTime P8: Pre-sort schedule items before dose loops, pre-sort in ViewModel P9: Pre-convert glucose to parallel arrays avoiding repeated doubleValue calls P10: Pass precomputed hourly averages to circadian profile builder Also: enhanced step/activity data in AI prompts with time-of-day breakdowns and activity-glucose correlation analysis (2h lag), and meal card layout cleanup. Co-Authored-By: Claude Opus 4.6 --- Loop/Localizable.xcstrings | 16 +- .../LoopInsights_Coordinator.swift | 22 ++- .../LoopInsights/LoopInsights_Models.swift | 13 +- .../LoopInsights_AIAnalysis.swift | 51 ++++++ .../LoopInsights_AdvancedAnalyzers.swift | 92 +++++++---- .../LoopInsights_DataAggregator.swift | 118 ++++++++------ .../LoopInsights_FoodResponseAnalyzer.swift | 153 ++++++++++++------ .../LoopInsights_HealthKitManager.swift | 84 ++++++---- .../LoopInsights_DashboardViewModel.swift | 52 +++--- .../LoopInsights_AGPChartView.swift | 8 +- .../LoopInsights_DashboardView.swift | 4 +- .../LoopInsights_MealInsightsView.swift | 16 +- 12 files changed, 422 insertions(+), 207 deletions(-) diff --git a/Loop/Localizable.xcstrings b/Loop/Localizable.xcstrings index 3c3741cef6..3b95706be5 100644 --- a/Loop/Localizable.xcstrings +++ b/Loop/Localizable.xcstrings @@ -629,6 +629,18 @@ } } }, + "%@ [%lld chars]" : { + "comment" : "A view that displays a meal with its food type, date, and glucose response. The \"Pre-Meal Advice\" tab in the Loop Insights app uses this view to show individual meal cards.", + "isCommentAutoGenerated" : true, + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "%1$@ [%2$lld chars]" + } + } + } + }, "%@ %@" : { "comment" : "The format for an active custom preset. (1: preset symbol)(2: preset name)", "localizations" : { @@ -33872,10 +33884,10 @@ "Review recommended — significant adjustments may help" : { "comment" : "LoopInsights score: review" }, - "Rise > 50 mg/dL" : { + "Rise is > 50 mg/dL" : { "comment" : "LoopInsights meal legend orange" }, - "Rise ≤ 50 mg/dL" : { + "Rise is ≤ 50 mg/dL" : { "comment" : "LoopInsights meal legend green" }, "Rise: %+.0f mg/dL" : { diff --git a/Loop/Managers/LoopInsights/LoopInsights_Coordinator.swift b/Loop/Managers/LoopInsights/LoopInsights_Coordinator.swift index 3a62e3cf2b..a578b95a71 100644 --- a/Loop/Managers/LoopInsights/LoopInsights_Coordinator.swift +++ b/Loop/Managers/LoopInsights/LoopInsights_Coordinator.swift @@ -123,16 +123,19 @@ final class LoopInsights_Coordinator: ObservableObject { /// Build supplemental context for AI prompt enrichment from Phase 5 analyzers. /// Returns nil if no Phase 5 features are enabled. + /// P3: Accept pre-fetched glucose + carbs to avoid duplicate data fetches. + /// P10: Pass hourly averages to circadian profile builder. func buildSupplementalContext( stats: LoopInsightsAggregatedStats, - glucoseSamples: [StoredGlucoseSample]? = nil + glucoseSamples: [StoredGlucoseSample]? = nil, + carbEntries: [StoredCarbEntry]? = nil ) async -> String? { var context: [String] = [] let start = Date().addingTimeInterval(-stats.period.timeInterval) let end = Date() - // Fetch glucose samples once if not provided + // P3: Use pre-fetched glucose, fall back to bridge only if not provided var resolvedGlucose: [StoredGlucoseSample]? = glucoseSamples if resolvedGlucose == nil, let bridge = dataProviderBridge { resolvedGlucose = try? await bridge.getGlucoseSamples(start: start, end: end) @@ -142,9 +145,11 @@ final class LoopInsights_Coordinator: ObservableObject { if LoopInsights_FeatureFlags.circadianEnabled { // Circadian profile from glucose + sleep data if let samples = resolvedGlucose { + // P10: Pass pre-computed hourly averages to avoid re-bucketing if let profile = LoopInsights_AdvancedAnalyzers.buildCircadianProfile( glucoseSamples: samples, - sleepStats: stats.biometricStats?.sleep + sleepStats: stats.biometricStats?.sleep, + precomputedHourlyAverages: stats.glucoseStats.hourlyAverages ) { context.append(LoopInsights_AdvancedAnalyzers.buildCircadianPromptContext(profile)) } @@ -163,11 +168,14 @@ final class LoopInsights_Coordinator: ObservableObject { // Food response patterns if LoopInsights_FeatureFlags.foodResponseEnabled { - if let bridge = dataProviderBridge, - let carbEntries = try? await bridge.getCarbEntries(start: start, end: end), - let glucSamples = resolvedGlucose { + // P3: Use pre-fetched carbs, fall back to bridge only if not provided + var resolvedCarbs: [StoredCarbEntry]? = carbEntries + if resolvedCarbs == nil, let bridge = dataProviderBridge { + resolvedCarbs = try? await bridge.getCarbEntries(start: start, end: end) + } + if let carbs = resolvedCarbs, let glucSamples = resolvedGlucose { let patterns = LoopInsights_FoodResponseAnalyzer.analyzeFoodResponses( - carbEntries: carbEntries, + carbEntries: carbs, glucoseSamples: glucSamples ) let foodCtx = LoopInsights_FoodResponseAnalyzer.buildFoodResponsePromptContext(patterns) diff --git a/Loop/Models/LoopInsights/LoopInsights_Models.swift b/Loop/Models/LoopInsights/LoopInsights_Models.swift index 24ec771e19..05a7e4c8a6 100644 --- a/Loop/Models/LoopInsights/LoopInsights_Models.swift +++ b/Loop/Models/LoopInsights/LoopInsights_Models.swift @@ -531,15 +531,17 @@ struct LoopInsightsTimeBlock: Codable, Identifiable, Equatable { return ((proposedValue - currentValue) / currentValue) * 100 } - private static func formatTime(_ seconds: TimeInterval) -> String { - let hours = Int(seconds) / 3600 - let minutes = (Int(seconds) % 3600) / 60 + private static let timeFormatter: DateFormatter = { let formatter = DateFormatter() - formatter.dateFormat = hours >= 12 ? "h:mm a" : "h:mm a" + formatter.dateFormat = "h:mm a" + return formatter + }() + + private static func formatTime(_ seconds: TimeInterval) -> String { var calendar = Calendar.current calendar.timeZone = TimeZone.current let date = calendar.startOfDay(for: Date()).addingTimeInterval(seconds) - return formatter.string(from: date) + return timeFormatter.string(from: date) } } @@ -682,6 +684,7 @@ struct LoopInsightsAggregatedStats: Codable { struct ActiveEnergyStats: Codable { let averageDailyCalories: Double + let hourlyAverages: [Int: Double] // hour → avg kcal burned } struct WeightStats: Codable { diff --git a/Loop/Services/LoopInsights/LoopInsights_AIAnalysis.swift b/Loop/Services/LoopInsights/LoopInsights_AIAnalysis.swift index d37f52a5a4..c094d215d9 100644 --- a/Loop/Services/LoopInsights/LoopInsights_AIAnalysis.swift +++ b/Loop/Services/LoopInsights/LoopInsights_AIAnalysis.swift @@ -322,6 +322,44 @@ final class LoopInsights_AIAnalysis { if let steps = bio.steps { prompt += "### Steps/Activity\n" prompt += "- Average Daily Steps: \(String(format: "%.0f", steps.averageDailySteps))\n" + if !steps.hourlyAverages.isEmpty { + // Group into time-of-day activity levels + let activityPeriods: [(name: String, hours: ClosedRange)] = [ + ("Morning 6-10AM", 6...9), ("Midday 10AM-2PM", 10...13), + ("Afternoon 2-6PM", 14...17), ("Evening 6-10PM", 18...21) + ] + for period in activityPeriods { + let periodSteps = period.hours.compactMap { steps.hourlyAverages[$0] } + if !periodSteps.isEmpty { + let total = periodSteps.reduce(0, +) + prompt += "- \(period.name): \(String(format: "%.0f", total)) avg steps\n" + } + } + // Peak activity hour + if let peakHour = steps.hourlyAverages.max(by: { $0.value < $1.value }) { + prompt += "- Peak activity hour: \(String(format: "%02d", peakHour.key)):00 (\(String(format: "%.0f", peakHour.value)) steps)\n" + } + + // Activity-glucose correlation: compare high-activity hours to glucose + let glucoseHourly = stats.glucoseStats.hourlyAverages + if !glucoseHourly.isEmpty { + var correlations: [String] = [] + let avgGlucose = stats.glucoseStats.averageGlucose + for (hour, stepCount) in steps.hourlyAverages where stepCount > 200 { + let postActivityHour = (hour + 2) % 24 + if let postGlucose = glucoseHourly[postActivityHour] { + let delta = postGlucose - avgGlucose + if abs(delta) > 10 { + correlations.append("Activity at \(String(format: "%02d", hour)):00 → glucose \(delta > 0 ? "+" : "")\(String(format: "%.0f", delta)) mg/dL vs avg at \(String(format: "%02d", postActivityHour)):00") + } + } + } + if !correlations.isEmpty { + prompt += "- **Activity-Glucose Correlations (2h lag)**:\n" + for c in correlations.prefix(5) { prompt += " - \(c)\n" } + } + } + } } if let sleep = bio.sleep { @@ -334,6 +372,19 @@ final class LoopInsights_AIAnalysis { if let energy = bio.activeEnergy { prompt += "### Active Energy\n" prompt += "- Average Daily Active Calories: \(String(format: "%.0f", energy.averageDailyCalories)) kcal\n" + if !energy.hourlyAverages.isEmpty { + let activityPeriods: [(name: String, hours: ClosedRange)] = [ + ("Morning 6-10AM", 6...9), ("Midday 10AM-2PM", 10...13), + ("Afternoon 2-6PM", 14...17), ("Evening 6-10PM", 18...21) + ] + for period in activityPeriods { + let periodKcal = period.hours.compactMap { energy.hourlyAverages[$0] } + if !periodKcal.isEmpty { + let total = periodKcal.reduce(0, +) + prompt += "- \(period.name): \(String(format: "%.0f", total)) avg kcal\n" + } + } + } } if let weight = bio.weight { diff --git a/Loop/Services/LoopInsights/LoopInsights_AdvancedAnalyzers.swift b/Loop/Services/LoopInsights/LoopInsights_AdvancedAnalyzers.swift index d28b62e05b..9fef965da3 100644 --- a/Loop/Services/LoopInsights/LoopInsights_AdvancedAnalyzers.swift +++ b/Loop/Services/LoopInsights/LoopInsights_AdvancedAnalyzers.swift @@ -19,14 +19,14 @@ final class LoopInsights_AdvancedAnalyzers { /// Build a circadian glucose profile using sleep data and glucose samples. /// Uses actual wake/bed times from HealthKit sleep data when available. + /// P10: Accept optional pre-computed hourlyAverages to avoid re-bucketing glucose static func buildCircadianProfile( glucoseSamples: [StoredGlucoseSample], - sleepStats: LoopInsightsAggregatedStats.SleepStats? + sleepStats: LoopInsightsAggregatedStats.SleepStats?, + precomputedHourlyAverages: [Int: Double]? = nil ) -> LoopInsightsCircadianProfile? { guard !glucoseSamples.isEmpty else { return nil } - let calendar = Calendar.current - // Determine wake/bed hours from sleep data or use defaults let wakeHour: Int let bedHour: Int @@ -38,31 +38,37 @@ final class LoopInsights_AdvancedAnalyzers { bedHour = 22 } - // Bucket glucose by hour - var hourlyBuckets: [Int: [Double]] = [:] - for sample in glucoseSamples { - let hour = calendar.component(.hour, from: sample.startDate) - let value = sample.quantity.doubleValue(for: .milligramsPerDeciliter) - hourlyBuckets[hour, default: []].append(value) - } - - let hourlyAvg: (Int) -> Double = { hour in - guard let vals = hourlyBuckets[hour], !vals.isEmpty else { return 0 } - return vals.reduce(0, +) / Double(vals.count) + // P10: Reuse pre-computed hourly averages when available + let hourlyAvg: (Int) -> Double + if let precomputed = precomputedHourlyAverages { + hourlyAvg = { hour in precomputed[hour] ?? 0 } + } else { + let calendar = Calendar.current + var hourlyBuckets: [Int: [Double]] = [:] + for sample in glucoseSamples { + let hour = calendar.component(.hour, from: sample.startDate) + let value = sample.quantity.doubleValue(for: .milligramsPerDeciliter) + hourlyBuckets[hour, default: []].append(value) + } + hourlyAvg = { hour in + guard let vals = hourlyBuckets[hour], !vals.isEmpty else { return 0 } + return vals.reduce(0, +) / Double(vals.count) + } } // Pre-sleep: hour before bed let preSleepHour = (bedHour - 1 + 24) % 24 let preSleepAvg = hourlyAvg(preSleepHour) - // Overnight: bed to wake - var overnightValues: [Double] = [] + // Overnight: bed to wake (use hourlyAvg function to work with both precomputed and bucketed data) + var overnightHourAvgs: [Double] = [] var h = bedHour while h != wakeHour { - if let vals = hourlyBuckets[h] { overnightValues.append(contentsOf: vals) } + let avg = hourlyAvg(h) + if avg > 0 { overnightHourAvgs.append(avg) } h = (h + 1) % 24 } - let overnightAvg = overnightValues.isEmpty ? 0 : overnightValues.reduce(0, +) / Double(overnightValues.count) + let overnightAvg = overnightHourAvgs.isEmpty ? 0 : overnightHourAvgs.reduce(0, +) / Double(overnightHourAvgs.count) // Wake glucose let wakeGlucose = hourlyAvg(wakeHour) @@ -132,6 +138,12 @@ final class LoopInsights_AdvancedAnalyzers { let totalMinutes = Double(periodDays) * 24 * 60 + // P8: Pre-sort schedule items once instead of per-dose + let sortedBasalItems = scheduledBasalItems.sorted { $0.startTime < $1.startTime } + + // P5: Sort glucose samples by date for binary search overcorrection lookups + let sortedGlucose = glucoseSamples.sorted { $0.startDate < $1.startDate } + for dose in doses { let durationMinutes = dose.endDate.timeIntervalSince(dose.startDate) / 60 let hour = calendar.component(.hour, from: dose.startDate) @@ -141,16 +153,23 @@ final class LoopInsights_AdvancedAnalyzers { totalSuspensionMinutes += durationMinutes hourlyDistribution[hour, default: 0] += durationMinutes - // Check for overcorrection: glucose > 180 within 2h after suspension ends - let checkWindow = dose.endDate...dose.endDate.addingTimeInterval(2 * 3600) - let reboundHigh = glucoseSamples.contains { sample in - checkWindow.contains(sample.startDate) && - sample.quantity.doubleValue(for: .milligramsPerDeciliter) > 180 + // P5: Binary search for overcorrection check instead of linear scan + let checkStart = dose.endDate + let checkEnd = dose.endDate.addingTimeInterval(2 * 3600) + let startIdx = Self.binarySearchFirstIndex(in: sortedGlucose, afterOrAt: checkStart) + var reboundHigh = false + for i in startIdx.. checkEnd { break } + if sample.quantity.doubleValue(for: .milligramsPerDeciliter) > 180 { + reboundHigh = true + break + } } if reboundHigh { overcorrectionEvents += 1 } } else if dose.type == .tempBasal { let rate = dose.unitsPerHour - let scheduledRate = effectiveScheduledRate(at: dose.startDate, items: scheduledBasalItems) + let scheduledRate = effectiveScheduledRate(at: dose.startDate, sortedItems: sortedBasalItems) if rate < scheduledRate { let minutes = durationMinutes subBasalMinutes += minutes @@ -252,18 +271,18 @@ final class LoopInsights_AdvancedAnalyzers { // MARK: - Helpers + /// Find the effective scheduled rate at a given date. Expects pre-sorted items (P8). private static func effectiveScheduledRate( at date: Date, - items: [LoopInsightsTherapySnapshot.LoopInsightsScheduleItem] + sortedItems: [LoopInsightsTherapySnapshot.LoopInsightsScheduleItem] ) -> Double { let calendar = Calendar.current let secondsSinceMidnight = TimeInterval( calendar.component(.hour, from: date) * 3600 + calendar.component(.minute, from: date) * 60 ) - let sorted = items.sorted { $0.startTime < $1.startTime } - var result = sorted.first?.value ?? 0 - for item in sorted { + var result = sortedItems.first?.value ?? 0 + for item in sortedItems { if item.startTime <= secondsSinceMidnight { result = item.value } else { @@ -272,4 +291,21 @@ final class LoopInsights_AdvancedAnalyzers { } return result } + + /// P5: Binary search to find the first glucose sample at or after `date` in a sorted array. + static func binarySearchFirstIndex( + in samples: [StoredGlucoseSample], + afterOrAt date: Date + ) -> Int { + var lo = 0, hi = samples.count + while lo < hi { + let mid = (lo + hi) / 2 + if samples[mid].startDate < date { + lo = mid + 1 + } else { + hi = mid + } + } + return lo + } } diff --git a/Loop/Services/LoopInsights/LoopInsights_DataAggregator.swift b/Loop/Services/LoopInsights/LoopInsights_DataAggregator.swift index c8ba20b166..5de9526c5f 100644 --- a/Loop/Services/LoopInsights/LoopInsights_DataAggregator.swift +++ b/Loop/Services/LoopInsights/LoopInsights_DataAggregator.swift @@ -28,6 +28,10 @@ final class LoopInsights_DataAggregator { private weak var dataProvider: LoopInsightsDataProviderProtocol? private var healthKitManager: LoopInsights_HealthKitManager? + /// P3: Cached raw data from last aggregation, available for reuse (AGP chart, supplemental context) + private(set) var lastFetchedGlucoseSamples: [StoredGlucoseSample] = [] + private(set) var lastFetchedCarbEntries: [StoredCarbEntry] = [] + init(dataProvider: LoopInsightsDataProviderProtocol, healthKitManager: LoopInsights_HealthKitManager? = nil) { self.dataProvider = dataProvider self.healthKitManager = healthKitManager @@ -44,23 +48,37 @@ final class LoopInsights_DataAggregator { let endDate = Date() let startDate = endDate.addingTimeInterval(-period.timeInterval) - async let glucoseStats = computeGlucoseStats(provider: dataProvider, start: startDate, end: endDate) - async let insulinStats = computeInsulinStats(provider: dataProvider, start: startDate, end: endDate) - async let carbStats = computeCarbStats(provider: dataProvider, start: startDate, end: endDate) + // P3: Fetch all raw data in parallel — each type fetched exactly once + async let rawGlucose = dataProvider.getGlucoseSamples(start: startDate, end: endDate) + async let rawDoses = dataProvider.getNormalizedDoseEntries(start: startDate, end: endDate) + async let rawCarbs = dataProvider.getCarbEntries(start: startDate, end: endDate) async let biometrics = fetchBiometricsIfEnabled(start: startDate, end: endDate) - var resolvedInsulinStats = try await insulinStats + let glucoseSamples = try await rawGlucose + let doseEntries = try await rawDoses + let carbEntries = try await rawCarbs let resolvedBiometrics = try await biometrics - let resolvedGlucoseStats = try await glucoseStats + + // P3: Store for external reuse (AGP chart, supplemental context) + self.lastFetchedGlucoseSamples = glucoseSamples + self.lastFetchedCarbEntries = carbEntries + + // Compute stats from pre-fetched data (each may still supplement with HK data) + async let glucoseStatsTask = computeGlucoseStats(loopSamples: glucoseSamples, start: startDate, end: endDate) + async let insulinStatsTask = computeInsulinStats(loopDoses: doseEntries, start: startDate, end: endDate) + async let carbStatsTask = computeCarbStats(loopEntries: carbEntries, start: startDate, end: endDate) + + let resolvedGlucoseStats = try await glucoseStatsTask + var resolvedInsulinStats = try await insulinStatsTask + let resolvedCarbStats = try await carbStatsTask // Phase 5: Compute negative basal stats if circadian flag is enabled + // P3: Reuses pre-fetched doses and glucose — no duplicate fetches if LoopInsights_FeatureFlags.circadianEnabled { do { - let doses = try await dataProvider.getNormalizedDoseEntries(start: startDate, end: endDate) - let glucoseSamples = try await dataProvider.getGlucoseSamples(start: startDate, end: endDate) let snapshot = try captureTherapySnapshot() let negBasal = LoopInsights_AdvancedAnalyzers.computeNegativeBasalStats( - doses: doses, + doses: doseEntries, scheduledBasalItems: snapshot.basalRateItems, periodDays: period.rawValue, glucoseSamples: glucoseSamples @@ -104,7 +122,7 @@ final class LoopInsights_DataAggregator { period: period, glucoseStats: resolvedGlucoseStats, insulinStats: resolvedInsulinStats, - carbStats: try await carbStats, + carbStats: resolvedCarbStats, biometricStats: enrichedBiometrics, generatedAt: Date() ) @@ -167,18 +185,15 @@ final class LoopInsights_DataAggregator { // MARK: - Glucose Stats - private func computeGlucoseStats(provider: LoopInsightsDataProviderProtocol, start: Date, end: Date) async throws -> LoopInsightsAggregatedStats.GlucoseStats { - // First try Loop's local stores - var samples = try await provider.getGlucoseSamples(start: start, end: end) - + /// P3: Accepts pre-fetched Loop samples to avoid duplicate fetching. + /// Still supplements with HealthKit data for longer periods when HK has more samples. + private func computeGlucoseStats(loopSamples: [StoredGlucoseSample], start: Date, end: Date) async throws -> LoopInsightsAggregatedStats.GlucoseStats { // Supplement with HealthKit data for longer periods or when Loop stores have gaps if let hkManager = healthKitManager { do { let hkGlucose = try await hkManager.fetchGlucoseSamples(start: start, end: end) - // Loop writes CGM data to HealthKit, so HK always has >= Loop store data. - // Use HealthKit data when it has more samples (longer history). - if hkGlucose.count > samples.count { - print("[LoopInsights] HealthKit glucose: \(hkGlucose.count) samples vs Loop store \(samples.count) — using HealthKit data") + if hkGlucose.count > loopSamples.count { + print("[LoopInsights] HealthKit glucose: \(hkGlucose.count) samples vs Loop store \(loopSamples.count) — using HealthKit data") return computeGlucoseStatsFromValues( values: hkGlucose.map { (date: $0.date, mgdl: $0.mgdl) }, start: start, end: end @@ -189,26 +204,28 @@ final class LoopInsights_DataAggregator { } } - guard !samples.isEmpty else { + guard !loopSamples.isEmpty else { throw LoopInsightsError.insufficientData("No glucose data available for the selected period") } - let glucoseValues = samples.map { $0.quantity.doubleValue(for: .milligramsPerDeciliter) } + // P9: Pre-convert all glucose values once + let glucoseValues = loopSamples.map { $0.quantity.doubleValue(for: .milligramsPerDeciliter) } let count = Double(glucoseValues.count) let average = glucoseValues.reduce(0, +) / count - let variance = glucoseValues.reduce(0) { $0 + pow($1 - average, 2) } / count let stdDev = sqrt(variance) - let cv = (stdDev / average) * 100 - // Time in range calculations — 5-zone breakdown (Clarity-style) - let veryHighCount = glucoseValues.filter { $0 > 250 }.count - let highCount = glucoseValues.filter { $0 > 180 && $0 <= 250 }.count - let inRangeCount = glucoseValues.filter { $0 >= 70 && $0 <= 180 }.count - let lowCount = glucoseValues.filter { $0 >= 54 && $0 < 70 }.count - let veryLowCount = glucoseValues.filter { $0 < 54 }.count + // P2: Single-pass 5-zone TIR counting (replaces 5 separate .filter() passes) + var veryHighCount = 0, highCount = 0, inRangeCount = 0, lowCount = 0, veryLowCount = 0 + for value in glucoseValues { + if value > 250 { veryHighCount += 1 } + else if value > 180 { highCount += 1 } + else if value >= 70 { inRangeCount += 1 } + else if value >= 54 { lowCount += 1 } + else { veryLowCount += 1 } + } let tir = (Double(inRangeCount) / count) * 100 let tvh = (Double(veryHighCount) / count) * 100 @@ -216,15 +233,14 @@ final class LoopInsights_DataAggregator { let tl = (Double(lowCount) / count) * 100 let tvl = (Double(veryLowCount) / count) * 100 - // GMI (Glucose Management Indicator) = 3.31 + 0.02392 × mean glucose (mg/dL) let gmi = 3.31 + (0.02392 * average) - // Hourly averages + // P9: Hourly averages using pre-converted values var hourlyBuckets: [Int: [Double]] = [:] let calendar = Calendar.current - for sample in samples { + for (i, sample) in loopSamples.enumerated() { let hour = calendar.component(.hour, from: sample.startDate) - hourlyBuckets[hour, default: []].append(sample.quantity.doubleValue(for: .milligramsPerDeciliter)) + hourlyBuckets[hour, default: []].append(glucoseValues[i]) } let hourlyAverages = hourlyBuckets.mapValues { values in values.reduce(0, +) / Double(values.count) @@ -255,11 +271,15 @@ final class LoopInsights_DataAggregator { let stdDev = sqrt(variance) let cv = (stdDev / average) * 100 - let veryHighCount = glucoseValues.filter { $0 > 250 }.count - let highCount = glucoseValues.filter { $0 > 180 && $0 <= 250 }.count - let inRangeCount = glucoseValues.filter { $0 >= 70 && $0 <= 180 }.count - let lowCount = glucoseValues.filter { $0 >= 54 && $0 < 70 }.count - let veryLowCount = glucoseValues.filter { $0 < 54 }.count + // P2: Single-pass 5-zone TIR counting + var veryHighCount = 0, highCount = 0, inRangeCount = 0, lowCount = 0, veryLowCount = 0 + for value in glucoseValues { + if value > 250 { veryHighCount += 1 } + else if value > 180 { highCount += 1 } + else if value >= 70 { inRangeCount += 1 } + else if value >= 54 { lowCount += 1 } + else { veryLowCount += 1 } + } let tir = (Double(inRangeCount) / count) * 100 let tvh = (Double(veryHighCount) / count) * 100 let th = (Double(highCount) / count) * 100 @@ -292,15 +312,14 @@ final class LoopInsights_DataAggregator { // MARK: - Insulin Stats - private func computeInsulinStats(provider: LoopInsightsDataProviderProtocol, start: Date, end: Date) async throws -> LoopInsightsAggregatedStats.InsulinStats { - var doses = try await provider.getNormalizedDoseEntries(start: start, end: end) - + /// P3: Accepts pre-fetched Loop doses to avoid duplicate fetching. + private func computeInsulinStats(loopDoses: [DoseEntry], start: Date, end: Date) async throws -> LoopInsightsAggregatedStats.InsulinStats { // Supplement with HealthKit insulin delivery for longer periods if let hkManager = healthKitManager { do { let hkInsulin = try await hkManager.fetchInsulinDelivery(start: start, end: end) - if hkInsulin.count > doses.count { - print("[LoopInsights] HealthKit insulin: \(hkInsulin.count) entries vs Loop store \(doses.count) — using HealthKit data") + if hkInsulin.count > loopDoses.count { + print("[LoopInsights] HealthKit insulin: \(hkInsulin.count) entries vs Loop store \(loopDoses.count) — using HealthKit data") return computeInsulinStatsFromHK(hkInsulin, start: start, end: end) } } catch { @@ -316,7 +335,7 @@ final class LoopInsights_DataAggregator { var correctionCount = 0 let calendar = Calendar.current - for dose in doses { + for dose in loopDoses { let units = dose.deliveredUnits ?? dose.programmedUnits switch dose.type { @@ -403,15 +422,14 @@ final class LoopInsights_DataAggregator { // MARK: - Carb Stats - private func computeCarbStats(provider: LoopInsightsDataProviderProtocol, start: Date, end: Date) async throws -> LoopInsightsAggregatedStats.CarbStats { - var entries = try await provider.getCarbEntries(start: start, end: end) - + /// P3: Accepts pre-fetched Loop carb entries to avoid duplicate fetching. + private func computeCarbStats(loopEntries: [StoredCarbEntry], start: Date, end: Date) async throws -> LoopInsightsAggregatedStats.CarbStats { // Supplement with HealthKit carb data for longer periods if let hkManager = healthKitManager { do { let hkCarbs = try await hkManager.fetchCarbEntries(start: start, end: end) - if hkCarbs.count > entries.count { - print("[LoopInsights] HealthKit carbs: \(hkCarbs.count) entries vs Loop store \(entries.count) — using HealthKit data") + if hkCarbs.count > loopEntries.count { + print("[LoopInsights] HealthKit carbs: \(hkCarbs.count) entries vs Loop store \(loopEntries.count) — using HealthKit data") return computeCarbStatsFromHK(hkCarbs, start: start, end: end) } } catch { @@ -420,15 +438,15 @@ final class LoopInsights_DataAggregator { } let dayCount = max(1, end.timeIntervalSince(start) / (24 * 60 * 60)) - let totalCarbs = entries.reduce(0.0) { $0 + $1.quantity.doubleValue(for: .gram()) } + let totalCarbs = loopEntries.reduce(0.0) { $0 + $1.quantity.doubleValue(for: .gram()) } let avgDaily = totalCarbs / dayCount - let mealCount = entries.count + let mealCount = loopEntries.count let avgPerMeal = mealCount > 0 ? totalCarbs / Double(mealCount) : 0 // Hourly meal frequency var hourlyFrequency: [Int: Int] = [:] let calendar = Calendar.current - for entry in entries { + for entry in loopEntries { let hour = calendar.component(.hour, from: entry.startDate) hourlyFrequency[hour, default: 0] += 1 } diff --git a/Loop/Services/LoopInsights/LoopInsights_FoodResponseAnalyzer.swift b/Loop/Services/LoopInsights/LoopInsights_FoodResponseAnalyzer.swift index b85db8d84b..6af68286eb 100644 --- a/Loop/Services/LoopInsights/LoopInsights_FoodResponseAnalyzer.swift +++ b/Loop/Services/LoopInsights/LoopInsights_FoodResponseAnalyzer.swift @@ -59,8 +59,10 @@ final class LoopInsights_FoodResponseAnalyzer { grouped[foodType, default: []].append(entry) } - // Sort glucose samples by date for efficient lookup + // P9: Pre-convert glucose values and sort for binary search (P4) let sortedGlucose = glucoseSamples.sorted { $0.startDate < $1.startDate } + let sortedDates = sortedGlucose.map { $0.startDate } + let sortedValues = sortedGlucose.map { $0.quantity.doubleValue(for: .milligramsPerDeciliter) } var patterns: [LoopInsightsFoodResponsePattern] = [] @@ -79,20 +81,30 @@ final class LoopInsights_FoodResponseAnalyzer { let carbs = entry.quantity.doubleValue(for: .gram()) carbAmounts.append(carbs) - // Get pre-meal glucose (30 min before to meal time) - let preMealWindow = mealDate.addingTimeInterval(-1800)...mealDate - let preMealSamples = sortedGlucose.filter { preMealWindow.contains($0.startDate) } - guard !preMealSamples.isEmpty else { continue } - let preMealAvg = preMealSamples.map { $0.quantity.doubleValue(for: .milligramsPerDeciliter) }.reduce(0, +) / Double(preMealSamples.count) + // P4: Binary search for pre-meal window (30 min before to meal time) + let preMealStart = mealDate.addingTimeInterval(-1800) + let preStartIdx = binarySearchFirstIndex(in: sortedDates, afterOrAt: preMealStart) + var preMealValues: [Double] = [] + for i in preStartIdx.. mealDate { break } + preMealValues.append(sortedValues[i]) + } + guard !preMealValues.isEmpty else { continue } + let preMealAvg = preMealValues.reduce(0, +) / Double(preMealValues.count) - // Get post-meal glucose (0-4h after meal) + // P4: Binary search for post-meal window (0-4h after meal) let postMealEnd = mealDate.addingTimeInterval(4 * 3600) - let postMealSamples = sortedGlucose.filter { - $0.startDate > mealDate && $0.startDate <= postMealEnd + let postStartIdx = binarySearchFirstIndex(in: sortedDates, afterOrAt: mealDate) + var postValues: [Double] = [] + var postDates: [Date] = [] + for i in postStartIdx.. postMealEnd { break } + if sortedDates[i] > mealDate { + postValues.append(sortedValues[i]) + postDates.append(sortedDates[i]) + } } - guard postMealSamples.count >= 4 else { continue } - - let postValues = postMealSamples.map { $0.quantity.doubleValue(for: .milligramsPerDeciliter) } + guard postValues.count >= 4 else { continue } // Peak rise let peak = postValues.max() ?? preMealAvg @@ -100,34 +112,44 @@ final class LoopInsights_FoodResponseAnalyzer { peakRises.append(peakRise) // Time to peak - if let peakSample = postMealSamples.max(by: { $0.quantity.doubleValue(for: .milligramsPerDeciliter) < $1.quantity.doubleValue(for: .milligramsPerDeciliter) }) { - let minutesToPeak = peakSample.startDate.timeIntervalSince(mealDate) / 60 + if let peakIdx = postValues.firstIndex(of: peak) { + let minutesToPeak = postDates[peakIdx].timeIntervalSince(mealDate) / 60 timesToPeak.append(minutesToPeak) } // AUC (trapezoidal approximation, mg/dL * hours above pre-meal) var auc: Double = 0 - for i in 1..= twoHourStart && postDates[i] <= twoHourEnd { + twoHourValues.append(postValues[i]) + } + } + if !twoHourValues.isEmpty { + twoHourAvgs.append(twoHourValues.reduce(0, +) / Double(twoHourValues.count)) } - let fourHourWindow = mealDate.addingTimeInterval(3.5 * 3600)...mealDate.addingTimeInterval(4.5 * 3600) - let fourHourSamples = postMealSamples.filter { fourHourWindow.contains($0.startDate) } - if !fourHourSamples.isEmpty { - let avg = fourHourSamples.map { $0.quantity.doubleValue(for: .milligramsPerDeciliter) }.reduce(0, +) / Double(fourHourSamples.count) - fourHourAvgs.append(avg) + let fourHourStart = mealDate.addingTimeInterval(3.5 * 3600) + let fourHourEnd = mealDate.addingTimeInterval(4.5 * 3600) + var fourHourValues: [Double] = [] + for i in 0..= fourHourStart && postDates[i] <= fourHourEnd { + fourHourValues.append(postValues[i]) + } + } + if !fourHourValues.isEmpty { + fourHourAvgs.append(fourHourValues.reduce(0, +) / Double(fourHourValues.count)) } } @@ -164,7 +186,11 @@ final class LoopInsights_FoodResponseAnalyzer { ) -> [LoopInsightsMealEvent] { let dedupedEntries = deduplicateCarbEntries(carbEntries) let sortedEntries = dedupedEntries.sorted { $0.startDate > $1.startDate } + + // P4+P9: Pre-sort and pre-convert glucose for binary search + no repeated doubleValue let sortedGlucose = glucoseSamples.sorted { $0.startDate < $1.startDate } + let sortedDates = sortedGlucose.map { $0.startDate } + let sortedValues = sortedGlucose.map { $0.quantity.doubleValue(for: .milligramsPerDeciliter) } var events: [LoopInsightsMealEvent] = [] @@ -173,33 +199,50 @@ final class LoopInsights_FoodResponseAnalyzer { let foodType = entry.foodType ?? "Unknown" let carbs = entry.quantity.doubleValue(for: .gram()) - // Pre-meal glucose - let preMealWindow = mealDate.addingTimeInterval(-1800)...mealDate - let preMealSamples = sortedGlucose.filter { preMealWindow.contains($0.startDate) } - guard !preMealSamples.isEmpty else { continue } - let preMealGlucose = preMealSamples.last!.quantity.doubleValue(for: .milligramsPerDeciliter) + // P4: Binary search for pre-meal glucose window + let preMealStart = mealDate.addingTimeInterval(-1800) + let preIdx = binarySearchFirstIndex(in: sortedDates, afterOrAt: preMealStart) + var lastPreMealValue: Double? + for i in preIdx.. mealDate { break } + lastPreMealValue = sortedValues[i] + } + guard let preMealGlucose = lastPreMealValue else { continue } - // Post-meal glucose (0-4h) + // P4: Binary search for post-meal glucose (0-4h) let postEnd = mealDate.addingTimeInterval(4 * 3600) - let postSamples = sortedGlucose.filter { $0.startDate > mealDate && $0.startDate <= postEnd } - guard postSamples.count >= 4 else { continue } + let postIdx = binarySearchFirstIndex(in: sortedDates, afterOrAt: mealDate) + var postValues: [Double] = [] + var postDates: [Date] = [] + for i in postIdx.. postEnd { break } + if sortedDates[i] > mealDate { + postValues.append(sortedValues[i]) + postDates.append(sortedDates[i]) + } + } + guard postValues.count >= 4 else { continue } - let postValues = postSamples.map { $0.quantity.doubleValue(for: .milligramsPerDeciliter) } let peakGlucose = postValues.max() ?? preMealGlucose // 2-hour glucose - let twoHourWindow = mealDate.addingTimeInterval(1.5 * 3600)...mealDate.addingTimeInterval(2.5 * 3600) - let twoHourSamples = postSamples.filter { twoHourWindow.contains($0.startDate) } - let twoHourGlucose = twoHourSamples.isEmpty ? preMealGlucose : - twoHourSamples.map { $0.quantity.doubleValue(for: .milligramsPerDeciliter) }.reduce(0, +) / Double(twoHourSamples.count) + let twoHourStart = mealDate.addingTimeInterval(1.5 * 3600) + let twoHourEnd = mealDate.addingTimeInterval(2.5 * 3600) + var twoHourValues: [Double] = [] + for i in 0..= twoHourStart && postDates[i] <= twoHourEnd { + twoHourValues.append(postValues[i]) + } + } + let twoHourGlucose = twoHourValues.isEmpty ? preMealGlucose : + twoHourValues.reduce(0, +) / Double(twoHourValues.count) - // Build timeline (every ~15 min) + // Build timeline var timeline: [(minutesAfter: Int, glucose: Double)] = [] timeline.append((0, preMealGlucose)) - for sample in postSamples { - let minutes = Int(sample.startDate.timeIntervalSince(mealDate) / 60) - let glucose = sample.quantity.doubleValue(for: .milligramsPerDeciliter) - timeline.append((minutes, glucose)) + for i in 0.. Int { + var lo = 0, hi = dates.count + while lo < hi { + let mid = (lo + hi) / 2 + if dates[mid] < date { + lo = mid + 1 + } else { + hi = mid + } + } + return lo + } + // MARK: - Prompt Context /// Build prompt context string from food response patterns diff --git a/Loop/Services/LoopInsights/LoopInsights_HealthKitManager.swift b/Loop/Services/LoopInsights/LoopInsights_HealthKitManager.swift index 37d5f4bc64..d6ea96087f 100644 --- a/Loop/Services/LoopInsights/LoopInsights_HealthKitManager.swift +++ b/Loop/Services/LoopInsights/LoopInsights_HealthKitManager.swift @@ -70,41 +70,55 @@ final class LoopInsights_HealthKitManager: ObservableObject { /// Fetch all biometric data for the given date range. Each sub-stat is optional — /// if a type isn't authorized or has no data, that sub-stat is nil. func fetchAllBiometrics(start: Date, end: Date) async throws -> LoopInsightsAggregatedStats.BiometricStats { - let hrResult: LoopInsightsAggregatedStats.HeartRateStats? - do { hrResult = try await fetchHeartRateStats(start: start, end: end) } - catch { print("[LoopInsights] HK heart rate error: \(error)"); hrResult = nil } - - let hrvResult: LoopInsightsAggregatedStats.HRVStats? - do { hrvResult = try await fetchHRVStats(start: start, end: end) } - catch { print("[LoopInsights] HK HRV error: \(error)"); hrvResult = nil } - - let stepResult: LoopInsightsAggregatedStats.StepStats? - do { stepResult = try await fetchStepStats(start: start, end: end) } - catch { print("[LoopInsights] HK steps error: \(error)"); stepResult = nil } - - let sleepResult: LoopInsightsAggregatedStats.SleepStats? - do { sleepResult = try await fetchSleepStats(start: start, end: end) } - catch { print("[LoopInsights] HK sleep error: \(error)"); sleepResult = nil } - - let energyResult: LoopInsightsAggregatedStats.ActiveEnergyStats? - do { energyResult = try await fetchActiveEnergyStats(start: start, end: end) } - catch { print("[LoopInsights] HK active energy error: \(error)"); energyResult = nil } - - let weightResult: LoopInsightsAggregatedStats.WeightStats? - do { weightResult = try await fetchWeightStats(start: start, end: end) } - catch { print("[LoopInsights] HK weight error: \(error)"); weightResult = nil } - - return LoopInsightsAggregatedStats.BiometricStats( - heartRate: hrResult, - hrv: hrvResult, - steps: stepResult, - sleep: sleepResult, - activeEnergy: energyResult, - weight: weightResult, + // P1: Run all 6 HealthKit queries in parallel instead of sequentially + async let hr = fetchHeartRateSafe(start: start, end: end) + async let hrv = fetchHRVSafe(start: start, end: end) + async let steps = fetchStepSafe(start: start, end: end) + async let sleep = fetchSleepSafe(start: start, end: end) + async let energy = fetchEnergySafe(start: start, end: end) + async let weight = fetchWeightSafe(start: start, end: end) + + return await LoopInsightsAggregatedStats.BiometricStats( + heartRate: hr, + hrv: hrv, + steps: steps, + sleep: sleep, + activeEnergy: energy, + weight: weight, stressScore: nil // Computed by AdvancedAnalyzers in DataAggregator ) } + private func fetchHeartRateSafe(start: Date, end: Date) async -> LoopInsightsAggregatedStats.HeartRateStats? { + do { return try await fetchHeartRateStats(start: start, end: end) } + catch { print("[LoopInsights] HK heart rate error: \(error)"); return nil } + } + + private func fetchHRVSafe(start: Date, end: Date) async -> LoopInsightsAggregatedStats.HRVStats? { + do { return try await fetchHRVStats(start: start, end: end) } + catch { print("[LoopInsights] HK HRV error: \(error)"); return nil } + } + + private func fetchStepSafe(start: Date, end: Date) async -> LoopInsightsAggregatedStats.StepStats? { + do { return try await fetchStepStats(start: start, end: end) } + catch { print("[LoopInsights] HK steps error: \(error)"); return nil } + } + + private func fetchSleepSafe(start: Date, end: Date) async -> LoopInsightsAggregatedStats.SleepStats? { + do { return try await fetchSleepStats(start: start, end: end) } + catch { print("[LoopInsights] HK sleep error: \(error)"); return nil } + } + + private func fetchEnergySafe(start: Date, end: Date) async -> LoopInsightsAggregatedStats.ActiveEnergyStats? { + do { return try await fetchActiveEnergyStats(start: start, end: end) } + catch { print("[LoopInsights] HK active energy error: \(error)"); return nil } + } + + private func fetchWeightSafe(start: Date, end: Date) async -> LoopInsightsAggregatedStats.WeightStats? { + do { return try await fetchWeightStats(start: start, end: end) } + catch { print("[LoopInsights] HK weight error: \(error)"); return nil } + } + // MARK: - Heart Rate private func fetchHeartRateStats(start: Date, end: Date) async throws -> LoopInsightsAggregatedStats.HeartRateStats? { @@ -284,16 +298,22 @@ final class LoopInsights_HealthKitManager: ObservableObject { let calendar = Calendar.current var dailyTotals: [String: Double] = [:] + var hourlyBuckets: [Int: [Double]] = [:] for sample in samples { let kcal = sample.quantity.doubleValue(for: kcalUnit) let dayKey = Self.dayKey(for: sample.startDate, calendar: calendar) dailyTotals[dayKey, default: 0] += kcal + + let hour = calendar.component(.hour, from: sample.startDate) + hourlyBuckets[hour, default: []].append(kcal) } let avgDaily = dailyTotals.isEmpty ? 0 : dailyTotals.values.reduce(0, +) / Double(dailyTotals.count) + let hourlyAvgs = hourlyBuckets.mapValues { $0.reduce(0, +) / Double($0.count) } return LoopInsightsAggregatedStats.ActiveEnergyStats( - averageDailyCalories: avgDaily + averageDailyCalories: avgDaily, + hourlyAverages: hourlyAvgs ) } diff --git a/Loop/View Models/LoopInsights/LoopInsights_DashboardViewModel.swift b/Loop/View Models/LoopInsights/LoopInsights_DashboardViewModel.swift index 054c653b63..21f030eef5 100644 --- a/Loop/View Models/LoopInsights/LoopInsights_DashboardViewModel.swift +++ b/Loop/View Models/LoopInsights/LoopInsights_DashboardViewModel.swift @@ -69,6 +69,9 @@ final class LoopInsights_DashboardViewModel: ObservableObject { /// Glucose samples for AGP chart (populated during analysis) @Published var agpGlucoseSamples: [StoredGlucoseSample] = [] + /// P6: Pre-computed AGP data points — computed once when samples change, not on every view render + @Published var agpComputedData: [LoopInsightsAGPDataPoint] = [] + // MARK: - Dependencies let coordinator: LoopInsights_Coordinator @@ -127,20 +130,24 @@ final class LoopInsights_DashboardViewModel: ObservableObject { let stats = try await coordinator.dataAggregator.aggregateData(period: analysisPeriod) self.aggregatedStats = stats - // Fetch glucose samples for AGP chart + // P3+P6: Use cached glucose for AGP and pre-compute AGP data + let cachedGlucose = coordinator.dataAggregator.lastFetchedGlucoseSamples + let cachedCarbs = coordinator.dataAggregator.lastFetchedCarbEntries if LoopInsights_FeatureFlags.agpChartEnabled { - let start = Date().addingTimeInterval(-analysisPeriod.timeInterval) - if let samples = try? await coordinator.fetchGlucoseSamples(start: start, end: Date()) { - self.agpGlucoseSamples = samples - } + self.agpGlucoseSamples = cachedGlucose + self.agpComputedData = LoopInsights_AGPChartView.computeAGP(from: cachedGlucose) } // Capture current settings let snapshot = try coordinator.captureCurrentSnapshot() self.currentSnapshot = snapshot - // Phase 5: Build supplemental context from advanced analyzers - let supplementalContext = await coordinator.buildSupplementalContext(stats: stats) + // P3: Pass cached glucose + carbs to avoid re-fetching in supplemental context + let supplementalContext = await coordinator.buildSupplementalContext( + stats: stats, + glucoseSamples: cachedGlucose, + carbEntries: cachedCarbs + ) // Run AI analysis (include recent changes so AI knows data predates current settings) let recentChanges = self.recentlyAppliedRecords() @@ -208,19 +215,23 @@ final class LoopInsights_DashboardViewModel: ObservableObject { let stats = try await coordinator.dataAggregator.aggregateData(period: analysisPeriod) self.aggregatedStats = stats - // Fetch glucose samples for AGP chart + // P3+P6: Use cached glucose for AGP and pre-compute AGP data + let cachedGlucose = coordinator.dataAggregator.lastFetchedGlucoseSamples + let cachedCarbs = coordinator.dataAggregator.lastFetchedCarbEntries if LoopInsights_FeatureFlags.agpChartEnabled { - let start = Date().addingTimeInterval(-analysisPeriod.timeInterval) - if let samples = try? await coordinator.fetchGlucoseSamples(start: start, end: Date()) { - self.agpGlucoseSamples = samples - } + self.agpGlucoseSamples = cachedGlucose + self.agpComputedData = LoopInsights_AGPChartView.computeAGP(from: cachedGlucose) } let snapshot = try coordinator.captureCurrentSnapshot() self.currentSnapshot = snapshot - // Phase 5: Build supplemental context from advanced analyzers - let supplementalContext = await coordinator.buildSupplementalContext(stats: stats) + // P3: Pass cached glucose + carbs to avoid re-fetching in supplemental context + let supplementalContext = await coordinator.buildSupplementalContext( + stats: stats, + glucoseSamples: cachedGlucose, + carbEntries: cachedCarbs + ) // Analyze each setting type in tuning order: CR → ISF → BR let recentChanges = self.recentlyAppliedRecords() @@ -442,9 +453,12 @@ final class LoopInsights_DashboardViewModel: ObservableObject { case .basalRate: currentItems = currentSnapshot.basalRateItems } + // P8: Pre-sort once for all time blocks in this record + let sortedItems = currentItems.sorted { $0.startTime < $1.startTime } + // Check if at least one proposed value still matches current settings for block in record.suggestion.timeBlocks { - let currentValue = Self.effectiveValue(at: block.startTime, in: currentItems) + let currentValue = Self.effectiveValue(at: block.startTime, in: sortedItems) if abs(currentValue - block.proposedValue) < 0.01 { return true // This change is still active } @@ -454,13 +468,13 @@ final class LoopInsights_DashboardViewModel: ObservableObject { } /// Find the effective value at a given time in a schedule snapshot. + /// P8: Expects pre-sorted items to avoid redundant sorting per call. private static func effectiveValue( at time: TimeInterval, - in items: [LoopInsightsTherapySnapshot.LoopInsightsScheduleItem] + in sortedItems: [LoopInsightsTherapySnapshot.LoopInsightsScheduleItem] ) -> Double { - let sorted = items.sorted { $0.startTime < $1.startTime } - var result = sorted.first?.value ?? 0 - for item in sorted { + var result = sortedItems.first?.value ?? 0 + for item in sortedItems { if item.startTime <= time { result = item.value } else { diff --git a/Loop/Views/LoopInsights/LoopInsights_AGPChartView.swift b/Loop/Views/LoopInsights/LoopInsights_AGPChartView.swift index d36fb7c76b..6061661994 100644 --- a/Loop/Views/LoopInsights/LoopInsights_AGPChartView.swift +++ b/Loop/Views/LoopInsights/LoopInsights_AGPChartView.swift @@ -14,12 +14,8 @@ import HealthKit /// as layered SwiftUI Paths over a 24-hour x-axis. iOS 15 compatible (no Charts framework). struct LoopInsights_AGPChartView: View { - let glucoseSamples: [StoredGlucoseSample] - - /// Computed AGP data points (48 points, every 30 min) - private var agpData: [LoopInsightsAGPDataPoint] { - Self.computeAGP(from: glucoseSamples) - } + /// P6: Accept pre-computed AGP data instead of recomputing on every view body evaluation + let agpData: [LoopInsightsAGPDataPoint] private let targetLow: Double = 70 private let targetHigh: Double = 180 diff --git a/Loop/Views/LoopInsights/LoopInsights_DashboardView.swift b/Loop/Views/LoopInsights/LoopInsights_DashboardView.swift index ea479a3ea7..1228c72f24 100644 --- a/Loop/Views/LoopInsights/LoopInsights_DashboardView.swift +++ b/Loop/Views/LoopInsights/LoopInsights_DashboardView.swift @@ -393,8 +393,8 @@ struct LoopInsights_DashboardView: View { .padding(.bottom, 8) // AGP Chart — shown with analysis summary when enabled - if LoopInsights_FeatureFlags.agpChartEnabled && !viewModel.agpGlucoseSamples.isEmpty { - LoopInsights_AGPChartView(glucoseSamples: viewModel.agpGlucoseSamples) + if LoopInsights_FeatureFlags.agpChartEnabled && !viewModel.agpComputedData.isEmpty { + LoopInsights_AGPChartView(agpData: viewModel.agpComputedData) } if !LoopInsights_SecureStorage.hasAPIKey { diff --git a/Loop/Views/LoopInsights/LoopInsights_MealInsightsView.swift b/Loop/Views/LoopInsights/LoopInsights_MealInsightsView.swift index cb601a6e9a..086fc290c2 100644 --- a/Loop/Views/LoopInsights/LoopInsights_MealInsightsView.swift +++ b/Loop/Views/LoopInsights/LoopInsights_MealInsightsView.swift @@ -83,13 +83,13 @@ struct LoopInsights_MealInsightsView: View { HStack(spacing: 16) { HStack(spacing: 4) { Circle().fill(Color.green).frame(width: 8, height: 8) - Text(NSLocalizedString("Rise ≤ 50 mg/dL", comment: "LoopInsights meal legend green")) + Text(NSLocalizedString("Rise is ≤ 50 mg/dL", comment: "LoopInsights meal legend green")) .font(.caption2) .foregroundColor(.secondary) } HStack(spacing: 4) { Circle().fill(Color.orange).frame(width: 8, height: 8) - Text(NSLocalizedString("Rise > 50 mg/dL", comment: "LoopInsights meal legend orange")) + Text(NSLocalizedString("Rise is > 50 mg/dL", comment: "LoopInsights meal legend orange")) .font(.caption2) .foregroundColor(.secondary) } @@ -108,14 +108,12 @@ struct LoopInsights_MealInsightsView: View { private func mealCard(_ event: LoopInsightsMealEvent) -> some View { VStack(alignment: .leading, spacing: 8) { + Text(event.foodType) + .font(.subheadline.weight(.semibold)) HStack { - VStack(alignment: .leading, spacing: 2) { - Text(event.foodType) - .font(.subheadline.weight(.semibold)) - Text(Self.dateFormatter.string(from: event.date)) - .font(.caption2) - .foregroundColor(.secondary) - } + Text(Self.dateFormatter.string(from: event.date)) + .font(.caption2) + .foregroundColor(.secondary) Spacer() Text(String(format: "%.0fg carbs", event.carbs)) .font(.caption) From 2780973b36ec19ca400dc825a3de9252a63b49e8 Mon Sep 17 00:00:00 2001 From: Taylor Date: Fri, 13 Feb 2026 13:45:43 -0800 Subject: [PATCH 08/14] Phase 7: Dual-mode glucose chart, HealthKit data pipeline, and quality fixes Glucose chart now operates in two modes: standard Ambulatory Glucose Profile (24-hour overlay with percentile bands) for 14-day lookback, and Glucose Profile (multi-day time series) for all other periods. Both modes include an info button explaining the visualization. HealthKit glucose data supplements Loop store for longer analysis periods. Chart data clears on period change to prevent stale labels. Additional fixes across 22 files: improved HealthKit data pipeline reliability, enhanced test data provider, refined food response analysis, and minor bug fixes in background monitor, coordinator, caffeine tracker, and goals/trends views. Co-Authored-By: Claude Opus 4.6 --- Loop/Localizable.xcstrings | 25 +- .../LoopInsights_BackgroundMonitor.swift | 23 +- .../LoopInsights_Coordinator.swift | 20 +- .../LoopInsights/LoopInsights_Models.swift | 19 ++ .../LoopInsights_Phase5Models.swift | 4 +- .../LoopInsights_FeatureFlags.swift | 4 + .../LoopInsights_AdvancedAnalyzers.swift | 18 +- .../LoopInsights_CaffeineTracker.swift | 2 +- .../LoopInsights_DataAggregator.swift | 43 ++-- .../LoopInsights_FoodResponseAnalyzer.swift | 24 +- .../LoopInsights/LoopInsights_GoalStore.swift | 12 +- .../LoopInsights_HealthKitManager.swift | 23 +- .../LoopInsights_ReportGenerator.swift | 2 +- .../LoopInsights_SuggestionStore.swift | 4 +- .../LoopInsights_TestDataProvider.swift | 20 +- .../LoopInsights_ChatViewModel.swift | 11 +- .../LoopInsights_DashboardViewModel.swift | 38 +-- .../LoopInsights_AGPChartView.swift | 238 ++++++++++++++---- .../LoopInsights_DashboardView.swift | 2 +- .../LoopInsights/LoopInsights_GoalsView.swift | 22 +- .../LoopInsights_SettingsView.swift | 14 +- .../LoopInsights_TrendsInsightsView.swift | 5 +- 22 files changed, 374 insertions(+), 199 deletions(-) diff --git a/Loop/Localizable.xcstrings b/Loop/Localizable.xcstrings index 3b95706be5..dbae7d6dc8 100644 --- a/Loop/Localizable.xcstrings +++ b/Loop/Localizable.xcstrings @@ -629,18 +629,6 @@ } } }, - "%@ [%lld chars]" : { - "comment" : "A view that displays a meal with its food type, date, and glucose response. The \"Pre-Meal Advice\" tab in the Loop Insights app uses this view to show individual meal cards.", - "isCommentAutoGenerated" : true, - "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "%1$@ [%2$lld chars]" - } - } - } - }, "%@ %@" : { "comment" : "The format for an active custom preset. (1: preset symbol)(2: preset name)", "localizations" : { @@ -5969,6 +5957,9 @@ "AGP Chart" : { "comment" : "LoopInsights AGP toggle" }, + "AGP is a standardized reporting format developed by the International Diabetes Center. It overlays 14 days of CGM data into a single 24-hour view, displaying the median (P50), interquartile range (P25–P75), and 10th/90th percentile bands.\n\nThis format lets you and your clinician spot recurring daily patterns — like dawn phenomenon or post-meal spikes — at a glance, using the same visual language across institutions." : { + "comment" : "LoopInsights AGP info alert message" + }, "AI Advice" : { "comment" : "LoopInsights AI advice header" }, @@ -6607,7 +6598,7 @@ "comment" : "LoopInsights quick ask: meal bolus" }, "Ambulatory Glucose Profile" : { - "comment" : "LoopInsights AGP chart title" + "comment" : "LoopInsights AGP chart title\nLoopInsights AGP info alert title" }, "Amount (mg)" : { "comment" : "LoopInsights caffeine amount\nLoopInsights caffeine amount placeholder" @@ -21002,6 +20993,12 @@ } } }, + "Glucose Profile" : { + "comment" : "LoopInsights glucose profile chart title\nLoopInsights glucose profile info alert title" + }, + "Glucose Profile displays your CGM data across the selected time period using percentile bands.\n\nThe median line (P50) shows your typical glucose at each point in time. The shaded bands show the interquartile range (P25–P75) and the 10th/90th percentile spread, giving you a sense of variability.\n\nFor a standardized Ambulatory Glucose Profile (AGP) — which overlays all days into a single 24-hour view — select the 14-day lookback period." : { + "comment" : "LoopInsights glucose profile info alert message" + }, "Glucose Target Range Schedule" : { "comment" : "Details for configuration error when glucose target range schedule is missing", "localizations" : { @@ -28685,7 +28682,7 @@ "Not enough\ndata available" : { "comment" : "LoopInsights GMI insufficient data" }, - "Not enough data for AGP chart" : { + "Not enough data for glucose profile" : { "comment" : "LoopInsights AGP no data" }, "Notification Delivery" : { diff --git a/Loop/Managers/LoopInsights/LoopInsights_BackgroundMonitor.swift b/Loop/Managers/LoopInsights/LoopInsights_BackgroundMonitor.swift index b4e58e57a0..9b97b39938 100644 --- a/Loop/Managers/LoopInsights/LoopInsights_BackgroundMonitor.swift +++ b/Loop/Managers/LoopInsights/LoopInsights_BackgroundMonitor.swift @@ -9,6 +9,7 @@ import Foundation import UserNotifications import Combine +import os.log /// Monitors Loop's completion cycle and periodically runs AI analysis /// to proactively detect therapy setting adjustment opportunities. @@ -54,7 +55,7 @@ final class LoopInsights_BackgroundMonitor: ObservableObject { func start() { guard loopCompletedObserver == nil else { return } guard LoopInsights_FeatureFlags.backgroundMonitorEnabled else { - print("[LoopInsights Monitor] Background monitoring is disabled") + LoopInsights_FeatureFlags.log.info("Background monitoring is disabled") return } @@ -66,7 +67,7 @@ final class LoopInsights_BackgroundMonitor: ObservableObject { self?.handleLoopCompleted() } - print("[LoopInsights Monitor] Started — frequency: \(LoopInsights_FeatureFlags.monitorFrequency.displayName)") + LoopInsights_FeatureFlags.log.info("Monitor started — frequency: \(LoopInsights_FeatureFlags.monitorFrequency.displayName)") } /// Stop observing and cancel any pending work. @@ -75,7 +76,7 @@ final class LoopInsights_BackgroundMonitor: ObservableObject { NotificationCenter.default.removeObserver(observer) loopCompletedObserver = nil } - print("[LoopInsights Monitor] Stopped") + LoopInsights_FeatureFlags.log.info("Monitor stopped") } /// Restart the monitor (e.g. after settings change). @@ -136,7 +137,7 @@ final class LoopInsights_BackgroundMonitor: ObservableObject { // MARK: - Background Analysis private func runBackgroundAnalysis() async { - print("[LoopInsights Monitor] Running background analysis...") + LoopInsights_FeatureFlags.log.debug("Running background analysis...") do { let period = LoopInsights_FeatureFlags.analysisPeriod @@ -163,7 +164,7 @@ final class LoopInsights_BackgroundMonitor: ObservableObject { UserDefaults.standard.set(Date().timeIntervalSince1970, forKey: Self.lastAnalysisKey) guard !newSuggestions.isEmpty else { - print("[LoopInsights Monitor] No new suggestions found") + LoopInsights_FeatureFlags.log.debug("No new suggestions found") return } @@ -177,7 +178,7 @@ final class LoopInsights_BackgroundMonitor: ObservableObject { } guard !genuinelyNew.isEmpty else { - print("[LoopInsights Monitor] Suggestions match existing pending — no notification needed") + LoopInsights_FeatureFlags.log.debug("Suggestions match existing pending — no notification needed") return } @@ -188,7 +189,7 @@ final class LoopInsights_BackgroundMonitor: ObservableObject { await deliverNotification(for: genuinelyNew) } catch { - print("[LoopInsights Monitor] Analysis failed: \(error.localizedDescription)") + LoopInsights_FeatureFlags.log.error("Background analysis failed: \(error.localizedDescription)") } } @@ -199,7 +200,7 @@ final class LoopInsights_BackgroundMonitor: ObservableObject { // Check quiet hours — still store suggestions but suppress notifications if isInQuietHours() { - print("[LoopInsights Monitor] Quiet hours active — suppressing notification") + LoopInsights_FeatureFlags.log.info("Quiet hours active — suppressing notification") return } @@ -212,7 +213,7 @@ final class LoopInsights_BackgroundMonitor: ObservableObject { await deliverPushNotification(suggestions: suggestions) case .silent: // No notification — suggestions are available in the store - print("[LoopInsights Monitor] Silent mode — \(suggestions.count) suggestion(s) stored") + LoopInsights_FeatureFlags.log.debug("Silent mode — \(suggestions.count) suggestion(s) stored") } } @@ -251,9 +252,9 @@ final class LoopInsights_BackgroundMonitor: ObservableObject { do { try await UNUserNotificationCenter.current().add(request) - print("[LoopInsights Monitor] Push notification sent for \(suggestions.count) suggestion(s)") + LoopInsights_FeatureFlags.log.info("Push notification sent for \(suggestions.count) suggestion(s)") } catch { - print("[LoopInsights Monitor] Failed to send notification: \(error.localizedDescription)") + LoopInsights_FeatureFlags.log.error("Failed to send notification: \(error.localizedDescription)") } } diff --git a/Loop/Managers/LoopInsights/LoopInsights_Coordinator.swift b/Loop/Managers/LoopInsights/LoopInsights_Coordinator.swift index a578b95a71..6321835b5e 100644 --- a/Loop/Managers/LoopInsights/LoopInsights_Coordinator.swift +++ b/Loop/Managers/LoopInsights/LoopInsights_Coordinator.swift @@ -95,11 +95,11 @@ final class LoopInsights_Coordinator: ObservableObject { let provider = LoopInsights_TestDataProvider() guard provider.hasTestData else { - print("[LoopInsights] Test data mode enabled but no fixtures found") + LoopInsights_FeatureFlags.log.info("Test data mode enabled but no fixtures found") return nil } - print("[LoopInsights] Using test data: \(provider.dataSummary)") + LoopInsights_FeatureFlags.log.info("Using test data: \(provider.dataSummary)") return LoopInsights_Coordinator(testDataProvider: provider) } @@ -108,7 +108,7 @@ final class LoopInsights_Coordinator: ObservableObject { /// Start background monitoring if enabled and using real stores (not test data). func startBackgroundMonitoring() { guard dataProviderBridge != nil else { - print("[LoopInsights] Skipping background monitor — test data mode") + LoopInsights_FeatureFlags.log.debug("Skipping background monitor — test data mode") return } backgroundMonitor.start() @@ -138,7 +138,8 @@ final class LoopInsights_Coordinator: ObservableObject { // P3: Use pre-fetched glucose, fall back to bridge only if not provided var resolvedGlucose: [StoredGlucoseSample]? = glucoseSamples if resolvedGlucose == nil, let bridge = dataProviderBridge { - resolvedGlucose = try? await bridge.getGlucoseSamples(start: start, end: end) + do { resolvedGlucose = try await bridge.getGlucoseSamples(start: start, end: end) } + catch { LoopInsights_FeatureFlags.log.error("Supplemental context: glucose fetch failed: \(error)") } } // Circadian + Dawn Phenomenon + Negative Basal + Stress @@ -171,7 +172,8 @@ final class LoopInsights_Coordinator: ObservableObject { // P3: Use pre-fetched carbs, fall back to bridge only if not provided var resolvedCarbs: [StoredCarbEntry]? = carbEntries if resolvedCarbs == nil, let bridge = dataProviderBridge { - resolvedCarbs = try? await bridge.getCarbEntries(start: start, end: end) + do { resolvedCarbs = try await bridge.getCarbEntries(start: start, end: end) } + catch { LoopInsights_FeatureFlags.log.error("Supplemental context: carbs fetch failed: \(error)") } } if let carbs = resolvedCarbs, let glucSamples = resolvedGlucose { let patterns = LoopInsights_FoodResponseAnalyzer.analyzeFoodResponses( @@ -224,7 +226,7 @@ final class LoopInsights_Coordinator: ObservableObject { @discardableResult func applyTherapyChanges(suggestion: LoopInsightsSuggestion) -> Bool { guard let writer = settingsWriter else { - print("[LoopInsights] Cannot apply: no settings writer available (test data mode?)") + LoopInsights_FeatureFlags.log.error("Cannot apply: no settings writer available (test data mode?)") return false } @@ -256,7 +258,7 @@ final class LoopInsights_Coordinator: ObservableObject { } } - print("[LoopInsights] Applied \(suggestion.settingType.displayName) changes: \(blocks.count) time block(s)") + LoopInsights_FeatureFlags.log.info("Applied \(suggestion.settingType.displayName) changes: \(blocks.count) time block(s)") return true } @@ -266,7 +268,7 @@ final class LoopInsights_Coordinator: ObservableObject { @discardableResult func revertToSnapshot(_ snapshot: LoopInsightsTherapySnapshot) -> Bool { guard let writer = settingsWriter else { - print("[LoopInsights] Cannot revert: no settings writer available") + LoopInsights_FeatureFlags.log.error("Cannot revert: no settings writer available") return false } @@ -305,7 +307,7 @@ final class LoopInsights_Coordinator: ObservableObject { } } - print("[LoopInsights] Reverted settings to previous snapshot") + LoopInsights_FeatureFlags.log.info("Reverted settings to previous snapshot") return true } diff --git a/Loop/Models/LoopInsights/LoopInsights_Models.swift b/Loop/Models/LoopInsights/LoopInsights_Models.swift index 05a7e4c8a6..2128c73579 100644 --- a/Loop/Models/LoopInsights/LoopInsights_Models.swift +++ b/Loop/Models/LoopInsights/LoopInsights_Models.swift @@ -869,3 +869,22 @@ final class LoopInsightsChatSession: ObservableObject { messages.removeAll() } } + +// MARK: - Binary Search Utility + +extension Array { + /// Binary search for the first index in a sorted array where `keyPath` is at or after `date`. + /// The array must be sorted by the key in ascending order. + func loopInsights_firstIndex(afterOrAt date: Date, by dateExtractor: (Element) -> Date) -> Int { + var lo = 0, hi = count + while lo < hi { + let mid = (lo + hi) / 2 + if dateExtractor(self[mid]) < date { + lo = mid + 1 + } else { + hi = mid + } + } + return lo + } +} diff --git a/Loop/Models/LoopInsights/LoopInsights_Phase5Models.swift b/Loop/Models/LoopInsights/LoopInsights_Phase5Models.swift index 5a4ed625c6..24c1538b1c 100644 --- a/Loop/Models/LoopInsights/LoopInsights_Phase5Models.swift +++ b/Loop/Models/LoopInsights/LoopInsights_Phase5Models.swift @@ -222,9 +222,9 @@ struct LoopInsightsNightscoutTreatment: Codable { // MARK: - AGP Data Point -/// A single time point in an Ambulatory Glucose Profile +/// A single time-window in a glucose profile chart spanning the analysis period. struct LoopInsightsAGPDataPoint { - let minuteOfDay: Int // 0-1439 + let date: Date // Bucket midpoint let p10: Double // 10th percentile mg/dL let p25: Double // 25th percentile mg/dL let p50: Double // 50th (median) mg/dL diff --git a/Loop/Resources/LoopInsights/LoopInsights_FeatureFlags.swift b/Loop/Resources/LoopInsights/LoopInsights_FeatureFlags.swift index b8948ea81d..783b84b29a 100644 --- a/Loop/Resources/LoopInsights/LoopInsights_FeatureFlags.swift +++ b/Loop/Resources/LoopInsights/LoopInsights_FeatureFlags.swift @@ -7,11 +7,15 @@ // import Foundation +import os.log /// Runtime feature flags for LoopInsights. All flags are UserDefaults-backed /// so they can be toggled without recompilation. struct LoopInsights_FeatureFlags { + /// Shared logger for all LoopInsights subsystems + static let log = Logger(subsystem: "com.loopkit.Loop.LoopInsights", category: "LoopInsights") + private enum Keys { static let isEnabled = "LoopInsights_isEnabled" static let developerModeEnabled = "LoopInsights_developerModeEnabled" diff --git a/Loop/Services/LoopInsights/LoopInsights_AdvancedAnalyzers.swift b/Loop/Services/LoopInsights/LoopInsights_AdvancedAnalyzers.swift index 9fef965da3..956ae4c725 100644 --- a/Loop/Services/LoopInsights/LoopInsights_AdvancedAnalyzers.swift +++ b/Loop/Services/LoopInsights/LoopInsights_AdvancedAnalyzers.swift @@ -156,7 +156,7 @@ final class LoopInsights_AdvancedAnalyzers { // P5: Binary search for overcorrection check instead of linear scan let checkStart = dose.endDate let checkEnd = dose.endDate.addingTimeInterval(2 * 3600) - let startIdx = Self.binarySearchFirstIndex(in: sortedGlucose, afterOrAt: checkStart) + let startIdx = sortedGlucose.loopInsights_firstIndex(afterOrAt: checkStart) { $0.startDate } var reboundHigh = false for i in startIdx.. Int { - var lo = 0, hi = samples.count - while lo < hi { - let mid = (lo + hi) / 2 - if samples[mid].startDate < date { - lo = mid + 1 - } else { - hi = mid - } - } - return lo - } } diff --git a/Loop/Services/LoopInsights/LoopInsights_CaffeineTracker.swift b/Loop/Services/LoopInsights/LoopInsights_CaffeineTracker.swift index 3e735b0361..a6be3b54de 100644 --- a/Loop/Services/LoopInsights/LoopInsights_CaffeineTracker.swift +++ b/Loop/Services/LoopInsights/LoopInsights_CaffeineTracker.swift @@ -50,7 +50,7 @@ final class LoopInsights_CaffeineTracker: ObservableObject { self.rebuildMergedEntries() } } catch { - print("[LoopInsights] Failed to fetch HealthKit caffeine: \(error)") + LoopInsights_FeatureFlags.log.error("Failed to fetch HealthKit caffeine: \(error)") } } diff --git a/Loop/Services/LoopInsights/LoopInsights_DataAggregator.swift b/Loop/Services/LoopInsights/LoopInsights_DataAggregator.swift index 5de9526c5f..ec2e498d39 100644 --- a/Loop/Services/LoopInsights/LoopInsights_DataAggregator.swift +++ b/Loop/Services/LoopInsights/LoopInsights_DataAggregator.swift @@ -28,10 +28,13 @@ final class LoopInsights_DataAggregator { private weak var dataProvider: LoopInsightsDataProviderProtocol? private var healthKitManager: LoopInsights_HealthKitManager? - /// P3: Cached raw data from last aggregation, available for reuse (AGP chart, supplemental context) + /// P3: Cached raw data from last aggregation, available for reuse (supplemental context) private(set) var lastFetchedGlucoseSamples: [StoredGlucoseSample] = [] private(set) var lastFetchedCarbEntries: [StoredCarbEntry] = [] + /// Best available glucose data for AGP chart (Loop store or HealthKit, whichever has more samples for the period) + private(set) var lastGlucoseForAGP: [(date: Date, mgdl: Double)] = [] + init(dataProvider: LoopInsightsDataProviderProtocol, healthKitManager: LoopInsights_HealthKitManager? = nil) { self.dataProvider = dataProvider self.healthKitManager = healthKitManager @@ -59,9 +62,13 @@ final class LoopInsights_DataAggregator { let carbEntries = try await rawCarbs let resolvedBiometrics = try await biometrics - // P3: Store for external reuse (AGP chart, supplemental context) + // P3: Store for external reuse (supplemental context) self.lastFetchedGlucoseSamples = glucoseSamples self.lastFetchedCarbEntries = carbEntries + // Initial AGP cache from Loop store; computeGlucoseStats may upgrade to HealthKit if HK has more + self.lastGlucoseForAGP = glucoseSamples.map { + (date: $0.startDate, mgdl: $0.quantity.doubleValue(for: .milligramsPerDeciliter)) + } // Compute stats from pre-fetched data (each may still supplement with HK data) async let glucoseStatsTask = computeGlucoseStats(loopSamples: glucoseSamples, start: startDate, end: endDate) @@ -91,9 +98,9 @@ final class LoopInsights_DataAggregator { correctionBolusCount: resolvedInsulinStats.correctionBolusCount, negativeBasalStats: negBasal ) - print("[LoopInsights] Phase 5: Negative basal stats computed — \(negBasal.suspensionCount) suspensions") + LoopInsights_FeatureFlags.log.debug("Phase 5: Negative basal stats computed — \(negBasal.suspensionCount) suspensions") } catch { - print("[LoopInsights] Phase 5: Negative basal stats error — \(error)") + LoopInsights_FeatureFlags.log.error("Phase 5: Negative basal stats error — \(error)") } } @@ -114,7 +121,7 @@ final class LoopInsights_DataAggregator { weight: bio.weight, stressScore: stressScore ) - print("[LoopInsights] Phase 5: Stress score computed — \(String(format: "%.0f", stressScore!.overallScore))/100") + LoopInsights_FeatureFlags.log.debug("Phase 5: Stress score computed — \(String(format: "%.0f", stressScore!.overallScore))/100") } } @@ -160,25 +167,25 @@ final class LoopInsights_DataAggregator { private func fetchBiometricsIfEnabled(start: Date, end: Date) async throws -> LoopInsightsAggregatedStats.BiometricStats? { guard LoopInsights_FeatureFlags.biometricsEnabled else { - print("[LoopInsights] Biometrics: flag is disabled, skipping") + LoopInsights_FeatureFlags.log.debug("Biometrics: flag is disabled, skipping") return nil } // Use the injected manager, or create one on the fly. This handles the case // where the Coordinator was created before biometrics was enabled. let manager = healthKitManager ?? LoopInsights_HealthKitManager() - print("[LoopInsights] Biometrics: fetching from HealthKit (start: \(start), end: \(end))") + LoopInsights_FeatureFlags.log.debug("Biometrics: fetching from HealthKit (start: \(start), end: \(end))") do { let result = try await manager.fetchAllBiometrics(start: start, end: end) - print("[LoopInsights] Biometrics: HR=\(result.heartRate != nil), HRV=\(result.hrv != nil), steps=\(result.steps != nil), sleep=\(result.sleep != nil), energy=\(result.activeEnergy != nil), weight=\(result.weight != nil)") + LoopInsights_FeatureFlags.log.debug("Biometrics: HR=\(result.heartRate != nil), HRV=\(result.hrv != nil), steps=\(result.steps != nil), sleep=\(result.sleep != nil), energy=\(result.activeEnergy != nil), weight=\(result.weight != nil)") // If every sub-stat is nil, return nil so the AI prompt doesn't get an empty section if result.heartRate == nil && result.hrv == nil && result.steps == nil && result.sleep == nil && result.activeEnergy == nil && result.weight == nil { - print("[LoopInsights] Biometrics: all sub-stats nil — no HealthKit data available") + LoopInsights_FeatureFlags.log.debug("Biometrics: all sub-stats nil — no HealthKit data available") return nil } return result } catch { - print("[LoopInsights] Biometrics: fetch error — \(error)") + LoopInsights_FeatureFlags.log.error("Biometrics: fetch error — \(error)") return nil } } @@ -193,14 +200,16 @@ final class LoopInsights_DataAggregator { do { let hkGlucose = try await hkManager.fetchGlucoseSamples(start: start, end: end) if hkGlucose.count > loopSamples.count { - print("[LoopInsights] HealthKit glucose: \(hkGlucose.count) samples vs Loop store \(loopSamples.count) — using HealthKit data") + LoopInsights_FeatureFlags.log.debug("HealthKit glucose: \(hkGlucose.count) samples vs Loop store \(loopSamples.count) — using HealthKit data") + let hkValues = hkGlucose.map { (date: $0.date, mgdl: $0.mgdl) } + self.lastGlucoseForAGP = hkValues return computeGlucoseStatsFromValues( - values: hkGlucose.map { (date: $0.date, mgdl: $0.mgdl) }, + values: hkValues, start: start, end: end ) } } catch { - print("[LoopInsights] HealthKit glucose fetch error (continuing with Loop store data): \(error)") + LoopInsights_FeatureFlags.log.error("HealthKit glucose fetch error (continuing with Loop store data): \(error)") } } @@ -319,11 +328,11 @@ final class LoopInsights_DataAggregator { do { let hkInsulin = try await hkManager.fetchInsulinDelivery(start: start, end: end) if hkInsulin.count > loopDoses.count { - print("[LoopInsights] HealthKit insulin: \(hkInsulin.count) entries vs Loop store \(loopDoses.count) — using HealthKit data") + LoopInsights_FeatureFlags.log.debug("HealthKit insulin: \(hkInsulin.count) entries vs Loop store \(loopDoses.count) — using HealthKit data") return computeInsulinStatsFromHK(hkInsulin, start: start, end: end) } } catch { - print("[LoopInsights] HealthKit insulin fetch error (continuing with Loop store data): \(error)") + LoopInsights_FeatureFlags.log.error("HealthKit insulin fetch error (continuing with Loop store data): \(error)") } } @@ -429,11 +438,11 @@ final class LoopInsights_DataAggregator { do { let hkCarbs = try await hkManager.fetchCarbEntries(start: start, end: end) if hkCarbs.count > loopEntries.count { - print("[LoopInsights] HealthKit carbs: \(hkCarbs.count) entries vs Loop store \(loopEntries.count) — using HealthKit data") + LoopInsights_FeatureFlags.log.debug("HealthKit carbs: \(hkCarbs.count) entries vs Loop store \(loopEntries.count) — using HealthKit data") return computeCarbStatsFromHK(hkCarbs, start: start, end: end) } } catch { - print("[LoopInsights] HealthKit carbs fetch error (continuing with Loop store data): \(error)") + LoopInsights_FeatureFlags.log.error("HealthKit carbs fetch error (continuing with Loop store data): \(error)") } } diff --git a/Loop/Services/LoopInsights/LoopInsights_FoodResponseAnalyzer.swift b/Loop/Services/LoopInsights/LoopInsights_FoodResponseAnalyzer.swift index 6af68286eb..7eb6778802 100644 --- a/Loop/Services/LoopInsights/LoopInsights_FoodResponseAnalyzer.swift +++ b/Loop/Services/LoopInsights/LoopInsights_FoodResponseAnalyzer.swift @@ -83,7 +83,7 @@ final class LoopInsights_FoodResponseAnalyzer { // P4: Binary search for pre-meal window (30 min before to meal time) let preMealStart = mealDate.addingTimeInterval(-1800) - let preStartIdx = binarySearchFirstIndex(in: sortedDates, afterOrAt: preMealStart) + let preStartIdx = sortedDates.loopInsights_firstIndex(afterOrAt: preMealStart) { $0 } var preMealValues: [Double] = [] for i in preStartIdx.. mealDate { break } @@ -94,7 +94,7 @@ final class LoopInsights_FoodResponseAnalyzer { // P4: Binary search for post-meal window (0-4h after meal) let postMealEnd = mealDate.addingTimeInterval(4 * 3600) - let postStartIdx = binarySearchFirstIndex(in: sortedDates, afterOrAt: mealDate) + let postStartIdx = sortedDates.loopInsights_firstIndex(afterOrAt: mealDate) { $0 } var postValues: [Double] = [] var postDates: [Date] = [] for i in postStartIdx.. mealDate { break } @@ -211,7 +211,7 @@ final class LoopInsights_FoodResponseAnalyzer { // P4: Binary search for post-meal glucose (0-4h) let postEnd = mealDate.addingTimeInterval(4 * 3600) - let postIdx = binarySearchFirstIndex(in: sortedDates, afterOrAt: mealDate) + let postIdx = sortedDates.loopInsights_firstIndex(afterOrAt: mealDate) { $0 } var postValues: [Double] = [] var postDates: [Date] = [] for i in postIdx.. Int { - var lo = 0, hi = dates.count - while lo < hi { - let mid = (lo + hi) / 2 - if dates[mid] < date { - lo = mid + 1 - } else { - hi = mid - } - } - return lo - } - // MARK: - Prompt Context /// Build prompt context string from food response patterns diff --git a/Loop/Services/LoopInsights/LoopInsights_GoalStore.swift b/Loop/Services/LoopInsights/LoopInsights_GoalStore.swift index 6c0328b119..c17a9672af 100644 --- a/Loop/Services/LoopInsights/LoopInsights_GoalStore.swift +++ b/Loop/Services/LoopInsights/LoopInsights_GoalStore.swift @@ -324,7 +324,7 @@ final class LoopInsights_GoalStore: ObservableObject { do { goals = try decoder.decode([LoopInsightsGoal].self, from: data) } catch { - print("[LoopInsights] Failed to decode goals: \(error)") + LoopInsights_FeatureFlags.log.error("Failed to decode goals: \(error)") goals = [] } } @@ -334,7 +334,7 @@ final class LoopInsights_GoalStore: ObservableObject { let data = try encoder.encode(goals) defaults.set(data, forKey: Self.goalsKey) } catch { - print("[LoopInsights] Failed to encode goals: \(error)") + LoopInsights_FeatureFlags.log.error("Failed to encode goals: \(error)") } } @@ -346,7 +346,7 @@ final class LoopInsights_GoalStore: ObservableObject { do { reflections = try decoder.decode([LoopInsightsReflection].self, from: data) } catch { - print("[LoopInsights] Failed to decode reflections: \(error)") + LoopInsights_FeatureFlags.log.error("Failed to decode reflections: \(error)") reflections = [] } } @@ -356,7 +356,7 @@ final class LoopInsights_GoalStore: ObservableObject { let data = try encoder.encode(reflections) defaults.set(data, forKey: Self.reflectionsKey) } catch { - print("[LoopInsights] Failed to encode reflections: \(error)") + LoopInsights_FeatureFlags.log.error("Failed to encode reflections: \(error)") } } @@ -368,7 +368,7 @@ final class LoopInsights_GoalStore: ObservableObject { do { cachedPatterns = try decoder.decode([LoopInsightsCachedPattern].self, from: data) } catch { - print("[LoopInsights] Failed to decode cached patterns: \(error)") + LoopInsights_FeatureFlags.log.error("Failed to decode cached patterns: \(error)") cachedPatterns = [] } } @@ -378,7 +378,7 @@ final class LoopInsights_GoalStore: ObservableObject { let data = try encoder.encode(cachedPatterns) defaults.set(data, forKey: Self.patternsKey) } catch { - print("[LoopInsights] Failed to encode cached patterns: \(error)") + LoopInsights_FeatureFlags.log.error("Failed to encode cached patterns: \(error)") } } } diff --git a/Loop/Services/LoopInsights/LoopInsights_HealthKitManager.swift b/Loop/Services/LoopInsights/LoopInsights_HealthKitManager.swift index d6ea96087f..f09cdc59e6 100644 --- a/Loop/Services/LoopInsights/LoopInsights_HealthKitManager.swift +++ b/Loop/Services/LoopInsights/LoopInsights_HealthKitManager.swift @@ -89,34 +89,33 @@ final class LoopInsights_HealthKitManager: ObservableObject { ) } + private func safeFetch(_ label: String, _ fetch: () async throws -> T?) async -> T? { + do { return try await fetch() } + catch { LoopInsights_FeatureFlags.log.error("HK \(label) error: \(error)"); return nil } + } + private func fetchHeartRateSafe(start: Date, end: Date) async -> LoopInsightsAggregatedStats.HeartRateStats? { - do { return try await fetchHeartRateStats(start: start, end: end) } - catch { print("[LoopInsights] HK heart rate error: \(error)"); return nil } + await safeFetch("heart rate") { try await fetchHeartRateStats(start: start, end: end) } } private func fetchHRVSafe(start: Date, end: Date) async -> LoopInsightsAggregatedStats.HRVStats? { - do { return try await fetchHRVStats(start: start, end: end) } - catch { print("[LoopInsights] HK HRV error: \(error)"); return nil } + await safeFetch("HRV") { try await fetchHRVStats(start: start, end: end) } } private func fetchStepSafe(start: Date, end: Date) async -> LoopInsightsAggregatedStats.StepStats? { - do { return try await fetchStepStats(start: start, end: end) } - catch { print("[LoopInsights] HK steps error: \(error)"); return nil } + await safeFetch("steps") { try await fetchStepStats(start: start, end: end) } } private func fetchSleepSafe(start: Date, end: Date) async -> LoopInsightsAggregatedStats.SleepStats? { - do { return try await fetchSleepStats(start: start, end: end) } - catch { print("[LoopInsights] HK sleep error: \(error)"); return nil } + await safeFetch("sleep") { try await fetchSleepStats(start: start, end: end) } } private func fetchEnergySafe(start: Date, end: Date) async -> LoopInsightsAggregatedStats.ActiveEnergyStats? { - do { return try await fetchActiveEnergyStats(start: start, end: end) } - catch { print("[LoopInsights] HK active energy error: \(error)"); return nil } + await safeFetch("active energy") { try await fetchActiveEnergyStats(start: start, end: end) } } private func fetchWeightSafe(start: Date, end: Date) async -> LoopInsightsAggregatedStats.WeightStats? { - do { return try await fetchWeightStats(start: start, end: end) } - catch { print("[LoopInsights] HK weight error: \(error)"); return nil } + await safeFetch("weight") { try await fetchWeightStats(start: start, end: end) } } // MARK: - Heart Rate diff --git a/Loop/Services/LoopInsights/LoopInsights_ReportGenerator.swift b/Loop/Services/LoopInsights/LoopInsights_ReportGenerator.swift index 88baf28be8..a683e3f34a 100644 --- a/Loop/Services/LoopInsights/LoopInsights_ReportGenerator.swift +++ b/Loop/Services/LoopInsights/LoopInsights_ReportGenerator.swift @@ -216,7 +216,7 @@ final class LoopInsights_ReportGenerator { try pdfData.write(to: tempURL) return tempURL } catch { - print("[LoopInsights] Failed to write PDF: \(error)") + LoopInsights_FeatureFlags.log.error("Failed to write PDF: \(error)") return nil } } diff --git a/Loop/Services/LoopInsights/LoopInsights_SuggestionStore.swift b/Loop/Services/LoopInsights/LoopInsights_SuggestionStore.swift index 0ae0753d7c..171bb83407 100644 --- a/Loop/Services/LoopInsights/LoopInsights_SuggestionStore.swift +++ b/Loop/Services/LoopInsights/LoopInsights_SuggestionStore.swift @@ -118,7 +118,7 @@ final class LoopInsights_SuggestionStore: ObservableObject { do { records = try decoder.decode([LoopInsightsSuggestionRecord].self, from: data) } catch { - print("[LoopInsights] Failed to decode suggestion history: \(error)") + LoopInsights_FeatureFlags.log.error("Failed to decode suggestion history: \(error)") records = [] } } @@ -128,7 +128,7 @@ final class LoopInsights_SuggestionStore: ObservableObject { let data = try encoder.encode(records) defaults.set(data, forKey: Self.storageKey) } catch { - print("[LoopInsights] Failed to encode suggestion history: \(error)") + LoopInsights_FeatureFlags.log.error("Failed to encode suggestion history: \(error)") } } } diff --git a/Loop/Services/LoopInsights/LoopInsights_TestDataProvider.swift b/Loop/Services/LoopInsights/LoopInsights_TestDataProvider.swift index e3e8086e35..ba227693ad 100644 --- a/Loop/Services/LoopInsights/LoopInsights_TestDataProvider.swift +++ b/Loop/Services/LoopInsights/LoopInsights_TestDataProvider.swift @@ -131,9 +131,9 @@ final class LoopInsights_TestDataProvider: LoopInsightsDataProviderProtocol { if let data = Self.loadFixtureData(for: FixtureFile.glucose) { do { glucoseSamples = try decoder.decode([StoredGlucoseSample].self, from: data) - print("[LoopInsights TestData] Loaded \(glucoseSamples.count) glucose samples") + LoopInsights_FeatureFlags.log.debug("TestData: Loaded \(self.glucoseSamples.count) glucose samples") } catch { - print("[LoopInsights TestData] Failed to decode glucose: \(error)") + LoopInsights_FeatureFlags.log.error("TestData: Failed to decode glucose: \(error)") } } @@ -142,9 +142,9 @@ final class LoopInsights_TestDataProvider: LoopInsightsDataProviderProtocol { let sanitizedData = Self.sanitizeDoseJSON(data) do { doseEntries = try decoder.decode([DoseEntry].self, from: sanitizedData) - print("[LoopInsights TestData] Loaded \(doseEntries.count) dose entries") + LoopInsights_FeatureFlags.log.debug("TestData: Loaded \(self.doseEntries.count) dose entries") } catch { - print("[LoopInsights TestData] Failed to decode doses: \(error)") + LoopInsights_FeatureFlags.log.error("TestData: Failed to decode doses: \(error)") } } @@ -152,9 +152,9 @@ final class LoopInsights_TestDataProvider: LoopInsightsDataProviderProtocol { if let data = Self.loadFixtureData(for: FixtureFile.carbs) { do { carbEntries = try decoder.decode([StoredCarbEntry].self, from: data) - print("[LoopInsights TestData] Loaded \(carbEntries.count) carb entries") + LoopInsights_FeatureFlags.log.debug("TestData: Loaded \(self.carbEntries.count) carb entries") } catch { - print("[LoopInsights TestData] Failed to decode carbs: \(error)") + LoopInsights_FeatureFlags.log.error("TestData: Failed to decode carbs: \(error)") } } @@ -167,7 +167,7 @@ final class LoopInsights_TestDataProvider: LoopInsightsDataProviderProtocol { /// Parse the Tidepool therapy settings JSON and construct a StoredSettings instance. private func loadTherapySettings(data: Data) { guard let json = try? JSONSerialization.jsonObject(with: data) as? [String: Any] else { - print("[LoopInsights TestData] Failed to parse therapy settings JSON") + LoopInsights_FeatureFlags.log.error("TestData: Failed to parse therapy settings JSON") return } @@ -217,7 +217,7 @@ final class LoopInsights_TestDataProvider: LoopInsightsDataProviderProtocol { insulinSensitivitySchedule: isfSchedule, carbRatioSchedule: crSchedule ) - print("[LoopInsights TestData] Loaded therapy settings (basal: \(basalSchedule?.items.count ?? 0), ISF: \(isfSchedule?.items.count ?? 0), CR: \(crSchedule?.items.count ?? 0))") + LoopInsights_FeatureFlags.log.debug("TestData: Loaded therapy settings (basal: \(basalSchedule?.items.count ?? 0), ISF: \(isfSchedule?.items.count ?? 0), CR: \(crSchedule?.items.count ?? 0))") } // MARK: - Dose JSON Sanitization @@ -264,10 +264,10 @@ final class LoopInsights_TestDataProvider: LoopInsightsDataProviderProtocol { /// Load raw Data from a fixture file. private static func loadFixtureData(for filename: String) -> Data? { guard let url = resolveFixturePath(for: filename) else { - print("[LoopInsights TestData] Fixture not found: \(filename)") + LoopInsights_FeatureFlags.log.error("TestData: Fixture not found: \(filename)") return nil } - print("[LoopInsights TestData] Loading: \(url.lastPathComponent) from \(url.deletingLastPathComponent().lastPathComponent)/") + LoopInsights_FeatureFlags.log.debug("TestData: Loading \(url.lastPathComponent) from \(url.deletingLastPathComponent().lastPathComponent)/") return try? Data(contentsOf: url) } diff --git a/Loop/View Models/LoopInsights/LoopInsights_ChatViewModel.swift b/Loop/View Models/LoopInsights/LoopInsights_ChatViewModel.swift index 0d32a77d62..f278a6d149 100644 --- a/Loop/View Models/LoopInsights/LoopInsights_ChatViewModel.swift +++ b/Loop/View Models/LoopInsights/LoopInsights_ChatViewModel.swift @@ -67,10 +67,13 @@ final class LoopInsights_ChatViewModel: ObservableObject { Task { @MainActor in do { - let snapshot = try? coordinator.captureCurrentSnapshot() - let stats = try? await coordinator.dataAggregator.aggregateData( - period: LoopInsights_FeatureFlags.analysisPeriod - ) + var snapshot: LoopInsightsTherapySnapshot? + do { snapshot = try coordinator.captureCurrentSnapshot() } + catch { LoopInsights_FeatureFlags.log.error("Chat: failed to capture snapshot: \(error)") } + + var stats: LoopInsightsAggregatedStats? + do { stats = try await coordinator.dataAggregator.aggregateData(period: LoopInsights_FeatureFlags.analysisPeriod) } + catch { LoopInsights_FeatureFlags.log.error("Chat: failed to aggregate data: \(error)") } let context = Self.buildTherapyContext(snapshot: snapshot, stats: stats) let history = session.conversationHistory().dropLast().map { ($0.role, $0.content) } diff --git a/Loop/View Models/LoopInsights/LoopInsights_DashboardViewModel.swift b/Loop/View Models/LoopInsights/LoopInsights_DashboardViewModel.swift index 21f030eef5..176c816e42 100644 --- a/Loop/View Models/LoopInsights/LoopInsights_DashboardViewModel.swift +++ b/Loop/View Models/LoopInsights/LoopInsights_DashboardViewModel.swift @@ -66,12 +66,12 @@ final class LoopInsights_DashboardViewModel: ObservableObject { /// Whether current metrics indicate settings are already performing well @Published var settingsAlreadyOptimal: Bool = false - /// Glucose samples for AGP chart (populated during analysis) - @Published var agpGlucoseSamples: [StoredGlucoseSample] = [] - /// P6: Pre-computed AGP data points — computed once when samples change, not on every view render @Published var agpComputedData: [LoopInsightsAGPDataPoint] = [] + /// True when the analysis period is 14 days (standard AGP 24-hour overlay mode) + var isAGPMode: Bool { analysisPeriod == .fourteenDays } + // MARK: - Dependencies let coordinator: LoopInsights_Coordinator @@ -112,7 +112,7 @@ final class LoopInsights_DashboardViewModel: ObservableObject { do { currentSnapshot = try coordinator.captureCurrentSnapshot() } catch { - print("[LoopInsights] Failed to capture therapy snapshot: \(error)") + LoopInsights_FeatureFlags.log.error("Failed to capture therapy snapshot: \(error)") } } @@ -130,12 +130,15 @@ final class LoopInsights_DashboardViewModel: ObservableObject { let stats = try await coordinator.dataAggregator.aggregateData(period: analysisPeriod) self.aggregatedStats = stats - // P3+P6: Use cached glucose for AGP and pre-compute AGP data - let cachedGlucose = coordinator.dataAggregator.lastFetchedGlucoseSamples + // P3+P6: Use cached data for chart and supplemental context let cachedCarbs = coordinator.dataAggregator.lastFetchedCarbEntries if LoopInsights_FeatureFlags.agpChartEnabled { - self.agpGlucoseSamples = cachedGlucose - self.agpComputedData = LoopInsights_AGPChartView.computeAGP(from: cachedGlucose) + let glucoseForChart = coordinator.dataAggregator.lastGlucoseForAGP + if isAGPMode { + self.agpComputedData = LoopInsights_AGPChartView.computeStandardAGP(from: glucoseForChart) + } else { + self.agpComputedData = LoopInsights_AGPChartView.computeProfile(from: glucoseForChart) + } } // Capture current settings @@ -145,7 +148,7 @@ final class LoopInsights_DashboardViewModel: ObservableObject { // P3: Pass cached glucose + carbs to avoid re-fetching in supplemental context let supplementalContext = await coordinator.buildSupplementalContext( stats: stats, - glucoseSamples: cachedGlucose, + glucoseSamples: coordinator.dataAggregator.lastFetchedGlucoseSamples, carbEntries: cachedCarbs ) @@ -215,12 +218,15 @@ final class LoopInsights_DashboardViewModel: ObservableObject { let stats = try await coordinator.dataAggregator.aggregateData(period: analysisPeriod) self.aggregatedStats = stats - // P3+P6: Use cached glucose for AGP and pre-compute AGP data - let cachedGlucose = coordinator.dataAggregator.lastFetchedGlucoseSamples + // P3+P6: Use cached data for chart and supplemental context let cachedCarbs = coordinator.dataAggregator.lastFetchedCarbEntries if LoopInsights_FeatureFlags.agpChartEnabled { - self.agpGlucoseSamples = cachedGlucose - self.agpComputedData = LoopInsights_AGPChartView.computeAGP(from: cachedGlucose) + let glucoseForChart = coordinator.dataAggregator.lastGlucoseForAGP + if isAGPMode { + self.agpComputedData = LoopInsights_AGPChartView.computeStandardAGP(from: glucoseForChart) + } else { + self.agpComputedData = LoopInsights_AGPChartView.computeProfile(from: glucoseForChart) + } } let snapshot = try coordinator.captureCurrentSnapshot() @@ -229,7 +235,7 @@ final class LoopInsights_DashboardViewModel: ObservableObject { // P3: Pass cached glucose + carbs to avoid re-fetching in supplemental context let supplementalContext = await coordinator.buildSupplementalContext( stats: stats, - glucoseSamples: cachedGlucose, + glucoseSamples: coordinator.dataAggregator.lastFetchedGlucoseSamples, carbEntries: cachedCarbs ) @@ -395,7 +401,7 @@ final class LoopInsights_DashboardViewModel: ObservableObject { func revertSuggestion(_ record: LoopInsightsSuggestionRecord) -> Bool { guard record.status.isRevertable else { return false } guard let snapshotBefore = record.settingsSnapshotBefore else { - print("[LoopInsights] Cannot revert: no pre-apply snapshot stored") + LoopInsights_FeatureFlags.log.error("Cannot revert: no pre-apply snapshot stored") return false } @@ -422,6 +428,8 @@ final class LoopInsights_DashboardViewModel: ObservableObject { func updateAnalysisPeriod(_ period: LoopInsightsAnalysisPeriod) { analysisPeriod = period LoopInsights_FeatureFlags.analysisPeriod = period + // Clear stale chart data so labels don't show a mismatched date range + agpComputedData = [] } /// The most recent AI debug log (system prompt, user prompt, raw response). diff --git a/Loop/Views/LoopInsights/LoopInsights_AGPChartView.swift b/Loop/Views/LoopInsights/LoopInsights_AGPChartView.swift index 6061661994..657e914f55 100644 --- a/Loop/Views/LoopInsights/LoopInsights_AGPChartView.swift +++ b/Loop/Views/LoopInsights/LoopInsights_AGPChartView.swift @@ -7,16 +7,24 @@ // import SwiftUI -import LoopKit -import HealthKit -/// Ambulatory Glucose Profile chart: renders percentile bands (p10/p25/p50/p75/p90) -/// as layered SwiftUI Paths over a 24-hour x-axis. iOS 15 compatible (no Charts framework). +/// Dual-mode glucose chart: +/// - **AGP mode** (14-day lookback): Standard Ambulatory Glucose Profile — all days overlaid +/// into a single 24-hour view with percentile bands. Matches the IDC/AGP spec. +/// - **Profile mode** (all other periods): Glucose Profile — percentile bands spanning the +/// full analysis period with date-based X-axis. +/// iOS 15 compatible (no Charts framework). struct LoopInsights_AGPChartView: View { - /// P6: Accept pre-computed AGP data instead of recomputing on every view body evaluation + /// P6: Accept pre-computed data instead of recomputing on every view body evaluation let agpData: [LoopInsightsAGPDataPoint] + /// When true, renders as a standard 24-hour AGP overlay with hour labels. + let isAGPMode: Bool + + @State private var showingAGPInfo = false + @State private var showingProfileInfo = false + private let targetLow: Double = 70 private let targetHigh: Double = 180 private let chartMinY: Double = 40 @@ -26,13 +34,40 @@ struct LoopInsights_AGPChartView: View { private let topMargin: Double = 8 private let bottomMargin: Double = 16 + /// Date range derived from the data + private var startDate: Date { agpData.first?.date ?? Date() } + private var endDate: Date { agpData.last?.date ?? Date() } + private var totalDuration: TimeInterval { max(1, endDate.timeIntervalSince(startDate)) } + var body: some View { VStack(alignment: .leading, spacing: 2) { - Text(NSLocalizedString("Ambulatory Glucose Profile", comment: "LoopInsights AGP chart title")) - .font(.subheadline.weight(.semibold)) + // Title — AGP mode gets the proper name + info button + if isAGPMode { + HStack(spacing: 4) { + Text(NSLocalizedString("Ambulatory Glucose Profile", comment: "LoopInsights AGP chart title")) + .font(.subheadline.weight(.semibold)) + Button(action: { showingAGPInfo = true }) { + Image(systemName: "info.circle") + .font(.caption) + .foregroundColor(.accentColor) + } + .buttonStyle(.plain) + } + } else { + HStack(spacing: 4) { + Text(NSLocalizedString("Glucose Profile", comment: "LoopInsights glucose profile chart title")) + .font(.subheadline.weight(.semibold)) + Button(action: { showingProfileInfo = true }) { + Image(systemName: "info.circle") + .font(.caption) + .foregroundColor(.accentColor) + } + .buttonStyle(.plain) + } + } if agpData.isEmpty { - Text(NSLocalizedString("Not enough data for AGP chart", comment: "LoopInsights AGP no data")) + Text(NSLocalizedString("Not enough data for glucose profile", comment: "LoopInsights AGP no data")) .font(.caption) .foregroundColor(.secondary) .frame(maxWidth: .infinity, alignment: .center) @@ -71,10 +106,28 @@ struct LoopInsights_AGPChartView: View { } .frame(height: 180) + Spacer().frame(height: 6) + // Legend legendView } } + .alert( + NSLocalizedString("Ambulatory Glucose Profile", comment: "LoopInsights AGP info alert title"), + isPresented: $showingAGPInfo + ) { + Button(NSLocalizedString("OK", comment: "OK button")) {} + } message: { + Text(NSLocalizedString("AGP is a standardized reporting format developed by the International Diabetes Center. It overlays 14 days of CGM data into a single 24-hour view, displaying the median (P50), interquartile range (P25\u{2013}P75), and 10th/90th percentile bands.\n\nThis format lets you and your clinician spot recurring daily patterns \u{2014} like dawn phenomenon or post-meal spikes \u{2014} at a glance, using the same visual language across institutions.", comment: "LoopInsights AGP info alert message")) + } + .alert( + NSLocalizedString("Glucose Profile", comment: "LoopInsights glucose profile info alert title"), + isPresented: $showingProfileInfo + ) { + Button(NSLocalizedString("OK", comment: "OK button")) {} + } message: { + Text(NSLocalizedString("Glucose Profile displays your CGM data across the selected time period using percentile bands.\n\nThe median line (P50) shows your typical glucose at each point in time. The shaded bands show the interquartile range (P25\u{2013}P75) and the 10th/90th percentile spread, giving you a sense of variability.\n\nFor a standardized Ambulatory Glucose Profile (AGP) \u{2014} which overlays all days into a single 24-hour view \u{2014} select the 14-day lookback period.", comment: "LoopInsights glucose profile info alert message")) + } } // MARK: - Legend @@ -101,7 +154,6 @@ struct LoopInsights_AGPChartView: View { // MARK: - Chart Components - /// Target range as a proper Path that fills the correct Y band private func targetRangePath(width: Double, height: Double) -> Path { let plotLeft = leftMargin let plotRight = width - rightMargin @@ -118,7 +170,6 @@ struct LoopInsights_AGPChartView: View { return path } - /// Dashed grid lines at 70 and 180 private func targetGridLines(width: Double, height: Double) -> some View { let plotLeft = leftMargin let plotRight = width - rightMargin @@ -150,20 +201,18 @@ struct LoopInsights_AGPChartView: View { var path = Path() guard !data.isEmpty else { return path } - // Upper line (left to right) - let firstX = xPosition(for: data[0].minuteOfDay, width: width) + let firstX = xPosition(for: data[0].date, width: width) let firstUpperY = yPosition(for: data[0][keyPath: upperKey], height: height) path.move(to: CGPoint(x: firstX, y: firstUpperY)) for point in data.dropFirst() { - let x = xPosition(for: point.minuteOfDay, width: width) + let x = xPosition(for: point.date, width: width) let y = yPosition(for: point[keyPath: upperKey], height: height) path.addLine(to: CGPoint(x: x, y: y)) } - // Lower line (right to left) for point in data.reversed() { - let x = xPosition(for: point.minuteOfDay, width: width) + let x = xPosition(for: point.date, width: width) let y = yPosition(for: point[keyPath: lowerKey], height: height) path.addLine(to: CGPoint(x: x, y: y)) } @@ -177,13 +226,13 @@ struct LoopInsights_AGPChartView: View { guard let first = data.first else { return path } path.move(to: CGPoint( - x: xPosition(for: first.minuteOfDay, width: width), + x: xPosition(for: first.date, width: width), y: yPosition(for: first.p50, height: height) )) for point in data.dropFirst() { path.addLine(to: CGPoint( - x: xPosition(for: point.minuteOfDay, width: width), + x: xPosition(for: point.date, width: width), y: yPosition(for: point.p50, height: height) )) } @@ -192,14 +241,19 @@ struct LoopInsights_AGPChartView: View { } private func xAxisLabels(width: Double, height: Double) -> some View { - let hours = [0, 3, 6, 9, 12, 15, 18, 21] + let labels: [(date: Date, text: String)] + if isAGPMode { + labels = Self.generateAGPHourLabels(start: startDate, end: endDate) + } else { + labels = Self.generateDateLabels(start: startDate, end: endDate) + } return ZStack { - ForEach(hours, id: \.self) { hour in - let x = xPosition(for: hour * 60, width: width) - Text(formatHour(hour)) + ForEach(Array(labels.enumerated()), id: \.offset) { _, label in + let x = xPosition(for: label.date, width: width) + Text(label.text) .font(.system(size: 8)) .foregroundColor(.secondary) - .position(x: x, y: height - 4) + .position(x: x, y: height - 20) } } } @@ -230,19 +284,68 @@ struct LoopInsights_AGPChartView: View { // MARK: - Coordinate Mapping - private func xPosition(for minuteOfDay: Int, width: Double) -> Double { + private func xPosition(for date: Date, width: Double) -> Double { let plotWidth = width - leftMargin - rightMargin - return leftMargin + (Double(minuteOfDay) / 1440.0) * plotWidth + let offset = date.timeIntervalSince(startDate) + let fraction = offset / totalDuration + return leftMargin + fraction * plotWidth } private func yPosition(for glucose: Double, height: Double) -> Double { let plotHeight = height - topMargin - bottomMargin let clamped = max(chartMinY, min(chartMaxY, glucose)) let fraction = (clamped - chartMinY) / (chartMaxY - chartMinY) - return topMargin + (1 - fraction) * plotHeight // Inverted Y axis + return topMargin + (1 - fraction) * plotHeight + } + + // MARK: - X-Axis Label Generation + + /// Hour labels for AGP mode (24-hour overlay): 12a, 3a, 6a, … 9p + private static func generateAGPHourLabels(start: Date, end: Date) -> [(date: Date, text: String)] { + let duration = end.timeIntervalSince(start) + guard duration > 0 else { return [] } + + let hours = [0, 3, 6, 9, 12, 15, 18, 21] + return hours.map { hour in + let fraction = Double(hour) / 24.0 + let date = start.addingTimeInterval(fraction * duration) + return (date: date, text: formatHour(hour)) + } } - private func formatHour(_ hour: Int) -> String { + /// Date labels for profile mode (multi-day time series) + private static func generateDateLabels(start: Date, end: Date) -> [(date: Date, text: String)] { + let duration = end.timeIntervalSince(start) + guard duration > 0 else { return [] } + + let days = duration / 86400 + let labelCount: Int + let formatter = DateFormatter() + + if days <= 4 { + labelCount = 7 + formatter.dateFormat = "E ha" + } else if days <= 10 { + labelCount = 7 + formatter.dateFormat = "E M/d" + } else if days <= 45 { + labelCount = 6 + formatter.dateFormat = "M/d" + } else { + labelCount = 6 + formatter.dateFormat = "M/d" + } + + var labels: [(date: Date, text: String)] = [] + for i in 0...labelCount { + let fraction = Double(i) / Double(labelCount) + let date = start.addingTimeInterval(fraction * duration) + labels.append((date: date, text: formatter.string(from: date))) + } + return labels + } + + private static func formatHour(_ hour: Int) -> String { let h = hour % 24 if h == 0 { return "12a" } if h < 12 { return "\(h)a" } @@ -250,42 +353,85 @@ struct LoopInsights_AGPChartView: View { return "\(h - 12)p" } - // MARK: - AGP Computation + // MARK: - Computation - /// Compute AGP data: 48 time points (every 30 min), each with percentiles - static func computeAGP(from samples: [StoredGlucoseSample]) -> [LoopInsightsAGPDataPoint] { + /// Compute standard AGP: overlay all days into a single 24-hour profile with 48 × 30-minute buckets. + /// Used when the lookback period is 14 days. + static func computeStandardAGP(from samples: [(date: Date, mgdl: Double)]) -> [LoopInsightsAGPDataPoint] { guard !samples.isEmpty else { return [] } let calendar = Calendar.current + // Reference day: midnight of the earliest sample's date + let refDay = calendar.startOfDay(for: samples.min(by: { $0.date < $1.date })!.date) - // Bucket samples by 30-minute windows - var buckets: [Int: [Double]] = [:] // minuteOfDay → glucose values + var buckets: [Int: [Double]] = [:] for sample in samples { - let hour = calendar.component(.hour, from: sample.startDate) - let minute = calendar.component(.minute, from: sample.startDate) + let hour = calendar.component(.hour, from: sample.date) + let minute = calendar.component(.minute, from: sample.date) let minuteOfDay = hour * 60 + minute - let bucket = (minuteOfDay / 30) * 30 // Round to nearest 30-min - buckets[bucket, default: []].append( - sample.quantity.doubleValue(for: .milligramsPerDeciliter) - ) + let bucket = (minuteOfDay / 30) * 30 + buckets[bucket, default: []].append(sample.mgdl) } var dataPoints: [LoopInsightsAGPDataPoint] = [] for minuteOfDay in stride(from: 0, to: 1440, by: 30) { guard let values = buckets[minuteOfDay], values.count >= 3 else { continue } - let sorted = values.sorted() - let count = sorted.count + let s = values.sorted() + let count = s.count + let date = refDay.addingTimeInterval(Double(minuteOfDay) * 60 + 15 * 60) // bucket midpoint + + dataPoints.append(LoopInsightsAGPDataPoint( + date: date, + p10: s[max(0, Int(Double(count) * 0.1))], + p25: s[max(0, Int(Double(count) * 0.25))], + p50: s[count / 2], + p75: s[min(count - 1, Int(Double(count) * 0.75))], + p90: s[min(count - 1, Int(Double(count) * 0.9))] + )) + } + + return dataPoints.sorted { $0.date < $1.date } + } + + /// Compute glucose profile: ~48 time-window buckets spanning the full sample period. + /// Used for all lookback periods except 14 days. + static func computeProfile(from samples: [(date: Date, mgdl: Double)]) -> [LoopInsightsAGPDataPoint] { + guard samples.count >= 3 else { return [] } + + let sorted = samples.sorted { $0.date < $1.date } + guard let first = sorted.first, let last = sorted.last else { return [] } + + let totalDuration = last.date.timeIntervalSince(first.date) + guard totalDuration > 0 else { return [] } + + let bucketCount = 48 + let bucketDuration = totalDuration / Double(bucketCount) + + var buckets: [[Double]] = Array(repeating: [], count: bucketCount) + for sample in sorted { + let offset = sample.date.timeIntervalSince(first.date) + let index = min(Int(offset / bucketDuration), bucketCount - 1) + buckets[index].append(sample.mgdl) + } + + var dataPoints: [LoopInsightsAGPDataPoint] = [] + for i in 0..= 3 else { continue } + let s = values.sorted() + let count = s.count + let midDate = first.date.addingTimeInterval((Double(i) + 0.5) * bucketDuration) dataPoints.append(LoopInsightsAGPDataPoint( - minuteOfDay: minuteOfDay, - p10: sorted[max(0, Int(Double(count) * 0.1))], - p25: sorted[max(0, Int(Double(count) * 0.25))], - p50: sorted[count / 2], - p75: sorted[min(count - 1, Int(Double(count) * 0.75))], - p90: sorted[min(count - 1, Int(Double(count) * 0.9))] + date: midDate, + p10: s[max(0, Int(Double(count) * 0.1))], + p25: s[max(0, Int(Double(count) * 0.25))], + p50: s[count / 2], + p75: s[min(count - 1, Int(Double(count) * 0.75))], + p90: s[min(count - 1, Int(Double(count) * 0.9))] )) } - return dataPoints.sorted { $0.minuteOfDay < $1.minuteOfDay } + return dataPoints } } diff --git a/Loop/Views/LoopInsights/LoopInsights_DashboardView.swift b/Loop/Views/LoopInsights/LoopInsights_DashboardView.swift index 1228c72f24..de175ca0df 100644 --- a/Loop/Views/LoopInsights/LoopInsights_DashboardView.swift +++ b/Loop/Views/LoopInsights/LoopInsights_DashboardView.swift @@ -394,7 +394,7 @@ struct LoopInsights_DashboardView: View { // AGP Chart — shown with analysis summary when enabled if LoopInsights_FeatureFlags.agpChartEnabled && !viewModel.agpComputedData.isEmpty { - LoopInsights_AGPChartView(agpData: viewModel.agpComputedData) + LoopInsights_AGPChartView(agpData: viewModel.agpComputedData, isAGPMode: viewModel.isAGPMode) } if !LoopInsights_SecureStorage.hasAPIKey { diff --git a/Loop/Views/LoopInsights/LoopInsights_GoalsView.swift b/Loop/Views/LoopInsights/LoopInsights_GoalsView.swift index 5e676958b3..a1e861a11c 100644 --- a/Loop/Views/LoopInsights/LoopInsights_GoalsView.swift +++ b/Loop/Views/LoopInsights/LoopInsights_GoalsView.swift @@ -477,9 +477,15 @@ private final class GoalsViewModel: ObservableObject { private func updateGoalCurrentValues(coordinator: LoopInsights_Coordinator) { Task { @MainActor in - guard let stats = try? await coordinator.dataAggregator.aggregateData( - period: LoopInsights_FeatureFlags.analysisPeriod - ) else { return } + let stats: LoopInsightsAggregatedStats + do { + stats = try await coordinator.dataAggregator.aggregateData( + period: LoopInsights_FeatureFlags.analysisPeriod + ) + } catch { + LoopInsights_FeatureFlags.log.error("Goals: failed to aggregate data for goal updates: \(error)") + return + } for goal in goals { let current: Double @@ -537,7 +543,9 @@ private final class GoalsViewModel: ObservableObject { Task { @MainActor in do { let stats = try await coordinator.dataAggregator.aggregateData(period: .thirtyDays) - let snapshot = try? coordinator.captureCurrentSnapshot() + var snapshot: LoopInsightsTherapySnapshot? + do { snapshot = try coordinator.captureCurrentSnapshot() } + catch { LoopInsights_FeatureFlags.log.error("Goals: failed to capture snapshot for patterns: \(error)") } let context = LoopInsights_ChatViewModel.buildTherapyContext( snapshot: snapshot, stats: stats @@ -588,9 +596,9 @@ private final class GoalsViewModel: ObservableObject { isGeneratingReport = true Task { @MainActor in - let stats = try? await coordinator.dataAggregator.aggregateData( - period: LoopInsights_FeatureFlags.analysisPeriod - ) + var stats: LoopInsightsAggregatedStats? + do { stats = try await coordinator.dataAggregator.aggregateData(period: LoopInsights_FeatureFlags.analysisPeriod) } + catch { LoopInsights_FeatureFlags.log.error("Goals: failed to aggregate data for report: \(error)") } let html = LoopInsights_ReportGenerator.generateHTML( stats: stats, diff --git a/Loop/Views/LoopInsights/LoopInsights_SettingsView.swift b/Loop/Views/LoopInsights/LoopInsights_SettingsView.swift index 09438add1c..436f00e9d2 100644 --- a/Loop/Views/LoopInsights/LoopInsights_SettingsView.swift +++ b/Loop/Views/LoopInsights/LoopInsights_SettingsView.swift @@ -770,7 +770,7 @@ struct LoopInsights_SettingsView: View { do { try await healthKitManager.requestAuthorization() } catch { - print("[LoopInsights] HealthKit authorization error: \(error)") + LoopInsights_FeatureFlags.log.error("HealthKit authorization error: \(error)") } await MainActor.run { isRequestingBiometricAuth = false @@ -1240,7 +1240,11 @@ struct LoopInsights_SettingsView: View { if key.isEmpty { LoopInsights_SecureStorage.deleteAPIKey() } else { - try? LoopInsights_SecureStorage.saveAPIKey(key) + do { + try LoopInsights_SecureStorage.saveAPIKey(key) + } catch { + LoopInsights_FeatureFlags.log.error("Failed to save API key: \(error)") + } } saveConfiguration() } @@ -1252,7 +1256,11 @@ struct LoopInsights_SettingsView: View { testResult = nil // Save key and config first - try? LoopInsights_SecureStorage.saveAPIKey(apiKeyText) + do { + try LoopInsights_SecureStorage.saveAPIKey(apiKeyText) + } catch { + LoopInsights_FeatureFlags.log.error("Failed to save API key for test: \(error)") + } saveConfiguration() Task { diff --git a/Loop/Views/LoopInsights/LoopInsights_TrendsInsightsView.swift b/Loop/Views/LoopInsights/LoopInsights_TrendsInsightsView.swift index 3786e5a353..37614eccb3 100644 --- a/Loop/Views/LoopInsights/LoopInsights_TrendsInsightsView.swift +++ b/Loop/Views/LoopInsights/LoopInsights_TrendsInsightsView.swift @@ -599,8 +599,11 @@ private final class TrendsViewModel: ObservableObject { cachedGeneratedAt[currentTab] = Date() // Build a summary prompt + var snapshot: LoopInsightsTherapySnapshot? + do { snapshot = try coordinator.captureCurrentSnapshot() } + catch { LoopInsights_FeatureFlags.log.error("Trends: failed to capture snapshot: \(error)") } let therapyContext = LoopInsights_ChatViewModel.buildTherapyContext( - snapshot: try? coordinator.captureCurrentSnapshot(), + snapshot: snapshot, stats: stats ) From 640b3ec38d5b7db6c025a8c2399561d72b62770d Mon Sep 17 00:00:00 2001 From: Taylor Date: Fri, 13 Feb 2026 13:45:43 -0800 Subject: [PATCH 09/14] Phase 7: Dual-mode glucose chart, HealthKit data pipeline, and quality fixes Glucose chart now operates in two modes: standard Ambulatory Glucose Profile (24-hour overlay with percentile bands) for 14-day lookback, and Glucose Profile (multi-day time series) for all other periods. Both modes include an info button explaining the visualization. HealthKit glucose data supplements Loop store for longer analysis periods. Chart data clears on period change to prevent stale labels. Additional fixes across 22 files: improved HealthKit data pipeline reliability, enhanced test data provider, refined food response analysis, and minor bug fixes in background monitor, coordinator, caffeine tracker, and goals/trends views. --- Loop/Localizable.xcstrings | 25 +- .../LoopInsights_BackgroundMonitor.swift | 23 +- .../LoopInsights_Coordinator.swift | 20 +- .../LoopInsights/LoopInsights_Models.swift | 19 ++ .../LoopInsights_Phase5Models.swift | 4 +- .../LoopInsights_FeatureFlags.swift | 4 + .../LoopInsights_AdvancedAnalyzers.swift | 18 +- .../LoopInsights_CaffeineTracker.swift | 2 +- .../LoopInsights_DataAggregator.swift | 43 ++-- .../LoopInsights_FoodResponseAnalyzer.swift | 24 +- .../LoopInsights/LoopInsights_GoalStore.swift | 12 +- .../LoopInsights_HealthKitManager.swift | 23 +- .../LoopInsights_ReportGenerator.swift | 2 +- .../LoopInsights_SuggestionStore.swift | 4 +- .../LoopInsights_TestDataProvider.swift | 20 +- .../LoopInsights_ChatViewModel.swift | 11 +- .../LoopInsights_DashboardViewModel.swift | 38 +-- .../LoopInsights_AGPChartView.swift | 238 ++++++++++++++---- .../LoopInsights_DashboardView.swift | 2 +- .../LoopInsights/LoopInsights_GoalsView.swift | 22 +- .../LoopInsights_SettingsView.swift | 14 +- .../LoopInsights_TrendsInsightsView.swift | 5 +- 22 files changed, 374 insertions(+), 199 deletions(-) diff --git a/Loop/Localizable.xcstrings b/Loop/Localizable.xcstrings index 3b95706be5..dbae7d6dc8 100644 --- a/Loop/Localizable.xcstrings +++ b/Loop/Localizable.xcstrings @@ -629,18 +629,6 @@ } } }, - "%@ [%lld chars]" : { - "comment" : "A view that displays a meal with its food type, date, and glucose response. The \"Pre-Meal Advice\" tab in the Loop Insights app uses this view to show individual meal cards.", - "isCommentAutoGenerated" : true, - "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "%1$@ [%2$lld chars]" - } - } - } - }, "%@ %@" : { "comment" : "The format for an active custom preset. (1: preset symbol)(2: preset name)", "localizations" : { @@ -5969,6 +5957,9 @@ "AGP Chart" : { "comment" : "LoopInsights AGP toggle" }, + "AGP is a standardized reporting format developed by the International Diabetes Center. It overlays 14 days of CGM data into a single 24-hour view, displaying the median (P50), interquartile range (P25–P75), and 10th/90th percentile bands.\n\nThis format lets you and your clinician spot recurring daily patterns — like dawn phenomenon or post-meal spikes — at a glance, using the same visual language across institutions." : { + "comment" : "LoopInsights AGP info alert message" + }, "AI Advice" : { "comment" : "LoopInsights AI advice header" }, @@ -6607,7 +6598,7 @@ "comment" : "LoopInsights quick ask: meal bolus" }, "Ambulatory Glucose Profile" : { - "comment" : "LoopInsights AGP chart title" + "comment" : "LoopInsights AGP chart title\nLoopInsights AGP info alert title" }, "Amount (mg)" : { "comment" : "LoopInsights caffeine amount\nLoopInsights caffeine amount placeholder" @@ -21002,6 +20993,12 @@ } } }, + "Glucose Profile" : { + "comment" : "LoopInsights glucose profile chart title\nLoopInsights glucose profile info alert title" + }, + "Glucose Profile displays your CGM data across the selected time period using percentile bands.\n\nThe median line (P50) shows your typical glucose at each point in time. The shaded bands show the interquartile range (P25–P75) and the 10th/90th percentile spread, giving you a sense of variability.\n\nFor a standardized Ambulatory Glucose Profile (AGP) — which overlays all days into a single 24-hour view — select the 14-day lookback period." : { + "comment" : "LoopInsights glucose profile info alert message" + }, "Glucose Target Range Schedule" : { "comment" : "Details for configuration error when glucose target range schedule is missing", "localizations" : { @@ -28685,7 +28682,7 @@ "Not enough\ndata available" : { "comment" : "LoopInsights GMI insufficient data" }, - "Not enough data for AGP chart" : { + "Not enough data for glucose profile" : { "comment" : "LoopInsights AGP no data" }, "Notification Delivery" : { diff --git a/Loop/Managers/LoopInsights/LoopInsights_BackgroundMonitor.swift b/Loop/Managers/LoopInsights/LoopInsights_BackgroundMonitor.swift index b4e58e57a0..9b97b39938 100644 --- a/Loop/Managers/LoopInsights/LoopInsights_BackgroundMonitor.swift +++ b/Loop/Managers/LoopInsights/LoopInsights_BackgroundMonitor.swift @@ -9,6 +9,7 @@ import Foundation import UserNotifications import Combine +import os.log /// Monitors Loop's completion cycle and periodically runs AI analysis /// to proactively detect therapy setting adjustment opportunities. @@ -54,7 +55,7 @@ final class LoopInsights_BackgroundMonitor: ObservableObject { func start() { guard loopCompletedObserver == nil else { return } guard LoopInsights_FeatureFlags.backgroundMonitorEnabled else { - print("[LoopInsights Monitor] Background monitoring is disabled") + LoopInsights_FeatureFlags.log.info("Background monitoring is disabled") return } @@ -66,7 +67,7 @@ final class LoopInsights_BackgroundMonitor: ObservableObject { self?.handleLoopCompleted() } - print("[LoopInsights Monitor] Started — frequency: \(LoopInsights_FeatureFlags.monitorFrequency.displayName)") + LoopInsights_FeatureFlags.log.info("Monitor started — frequency: \(LoopInsights_FeatureFlags.monitorFrequency.displayName)") } /// Stop observing and cancel any pending work. @@ -75,7 +76,7 @@ final class LoopInsights_BackgroundMonitor: ObservableObject { NotificationCenter.default.removeObserver(observer) loopCompletedObserver = nil } - print("[LoopInsights Monitor] Stopped") + LoopInsights_FeatureFlags.log.info("Monitor stopped") } /// Restart the monitor (e.g. after settings change). @@ -136,7 +137,7 @@ final class LoopInsights_BackgroundMonitor: ObservableObject { // MARK: - Background Analysis private func runBackgroundAnalysis() async { - print("[LoopInsights Monitor] Running background analysis...") + LoopInsights_FeatureFlags.log.debug("Running background analysis...") do { let period = LoopInsights_FeatureFlags.analysisPeriod @@ -163,7 +164,7 @@ final class LoopInsights_BackgroundMonitor: ObservableObject { UserDefaults.standard.set(Date().timeIntervalSince1970, forKey: Self.lastAnalysisKey) guard !newSuggestions.isEmpty else { - print("[LoopInsights Monitor] No new suggestions found") + LoopInsights_FeatureFlags.log.debug("No new suggestions found") return } @@ -177,7 +178,7 @@ final class LoopInsights_BackgroundMonitor: ObservableObject { } guard !genuinelyNew.isEmpty else { - print("[LoopInsights Monitor] Suggestions match existing pending — no notification needed") + LoopInsights_FeatureFlags.log.debug("Suggestions match existing pending — no notification needed") return } @@ -188,7 +189,7 @@ final class LoopInsights_BackgroundMonitor: ObservableObject { await deliverNotification(for: genuinelyNew) } catch { - print("[LoopInsights Monitor] Analysis failed: \(error.localizedDescription)") + LoopInsights_FeatureFlags.log.error("Background analysis failed: \(error.localizedDescription)") } } @@ -199,7 +200,7 @@ final class LoopInsights_BackgroundMonitor: ObservableObject { // Check quiet hours — still store suggestions but suppress notifications if isInQuietHours() { - print("[LoopInsights Monitor] Quiet hours active — suppressing notification") + LoopInsights_FeatureFlags.log.info("Quiet hours active — suppressing notification") return } @@ -212,7 +213,7 @@ final class LoopInsights_BackgroundMonitor: ObservableObject { await deliverPushNotification(suggestions: suggestions) case .silent: // No notification — suggestions are available in the store - print("[LoopInsights Monitor] Silent mode — \(suggestions.count) suggestion(s) stored") + LoopInsights_FeatureFlags.log.debug("Silent mode — \(suggestions.count) suggestion(s) stored") } } @@ -251,9 +252,9 @@ final class LoopInsights_BackgroundMonitor: ObservableObject { do { try await UNUserNotificationCenter.current().add(request) - print("[LoopInsights Monitor] Push notification sent for \(suggestions.count) suggestion(s)") + LoopInsights_FeatureFlags.log.info("Push notification sent for \(suggestions.count) suggestion(s)") } catch { - print("[LoopInsights Monitor] Failed to send notification: \(error.localizedDescription)") + LoopInsights_FeatureFlags.log.error("Failed to send notification: \(error.localizedDescription)") } } diff --git a/Loop/Managers/LoopInsights/LoopInsights_Coordinator.swift b/Loop/Managers/LoopInsights/LoopInsights_Coordinator.swift index a578b95a71..6321835b5e 100644 --- a/Loop/Managers/LoopInsights/LoopInsights_Coordinator.swift +++ b/Loop/Managers/LoopInsights/LoopInsights_Coordinator.swift @@ -95,11 +95,11 @@ final class LoopInsights_Coordinator: ObservableObject { let provider = LoopInsights_TestDataProvider() guard provider.hasTestData else { - print("[LoopInsights] Test data mode enabled but no fixtures found") + LoopInsights_FeatureFlags.log.info("Test data mode enabled but no fixtures found") return nil } - print("[LoopInsights] Using test data: \(provider.dataSummary)") + LoopInsights_FeatureFlags.log.info("Using test data: \(provider.dataSummary)") return LoopInsights_Coordinator(testDataProvider: provider) } @@ -108,7 +108,7 @@ final class LoopInsights_Coordinator: ObservableObject { /// Start background monitoring if enabled and using real stores (not test data). func startBackgroundMonitoring() { guard dataProviderBridge != nil else { - print("[LoopInsights] Skipping background monitor — test data mode") + LoopInsights_FeatureFlags.log.debug("Skipping background monitor — test data mode") return } backgroundMonitor.start() @@ -138,7 +138,8 @@ final class LoopInsights_Coordinator: ObservableObject { // P3: Use pre-fetched glucose, fall back to bridge only if not provided var resolvedGlucose: [StoredGlucoseSample]? = glucoseSamples if resolvedGlucose == nil, let bridge = dataProviderBridge { - resolvedGlucose = try? await bridge.getGlucoseSamples(start: start, end: end) + do { resolvedGlucose = try await bridge.getGlucoseSamples(start: start, end: end) } + catch { LoopInsights_FeatureFlags.log.error("Supplemental context: glucose fetch failed: \(error)") } } // Circadian + Dawn Phenomenon + Negative Basal + Stress @@ -171,7 +172,8 @@ final class LoopInsights_Coordinator: ObservableObject { // P3: Use pre-fetched carbs, fall back to bridge only if not provided var resolvedCarbs: [StoredCarbEntry]? = carbEntries if resolvedCarbs == nil, let bridge = dataProviderBridge { - resolvedCarbs = try? await bridge.getCarbEntries(start: start, end: end) + do { resolvedCarbs = try await bridge.getCarbEntries(start: start, end: end) } + catch { LoopInsights_FeatureFlags.log.error("Supplemental context: carbs fetch failed: \(error)") } } if let carbs = resolvedCarbs, let glucSamples = resolvedGlucose { let patterns = LoopInsights_FoodResponseAnalyzer.analyzeFoodResponses( @@ -224,7 +226,7 @@ final class LoopInsights_Coordinator: ObservableObject { @discardableResult func applyTherapyChanges(suggestion: LoopInsightsSuggestion) -> Bool { guard let writer = settingsWriter else { - print("[LoopInsights] Cannot apply: no settings writer available (test data mode?)") + LoopInsights_FeatureFlags.log.error("Cannot apply: no settings writer available (test data mode?)") return false } @@ -256,7 +258,7 @@ final class LoopInsights_Coordinator: ObservableObject { } } - print("[LoopInsights] Applied \(suggestion.settingType.displayName) changes: \(blocks.count) time block(s)") + LoopInsights_FeatureFlags.log.info("Applied \(suggestion.settingType.displayName) changes: \(blocks.count) time block(s)") return true } @@ -266,7 +268,7 @@ final class LoopInsights_Coordinator: ObservableObject { @discardableResult func revertToSnapshot(_ snapshot: LoopInsightsTherapySnapshot) -> Bool { guard let writer = settingsWriter else { - print("[LoopInsights] Cannot revert: no settings writer available") + LoopInsights_FeatureFlags.log.error("Cannot revert: no settings writer available") return false } @@ -305,7 +307,7 @@ final class LoopInsights_Coordinator: ObservableObject { } } - print("[LoopInsights] Reverted settings to previous snapshot") + LoopInsights_FeatureFlags.log.info("Reverted settings to previous snapshot") return true } diff --git a/Loop/Models/LoopInsights/LoopInsights_Models.swift b/Loop/Models/LoopInsights/LoopInsights_Models.swift index 05a7e4c8a6..2128c73579 100644 --- a/Loop/Models/LoopInsights/LoopInsights_Models.swift +++ b/Loop/Models/LoopInsights/LoopInsights_Models.swift @@ -869,3 +869,22 @@ final class LoopInsightsChatSession: ObservableObject { messages.removeAll() } } + +// MARK: - Binary Search Utility + +extension Array { + /// Binary search for the first index in a sorted array where `keyPath` is at or after `date`. + /// The array must be sorted by the key in ascending order. + func loopInsights_firstIndex(afterOrAt date: Date, by dateExtractor: (Element) -> Date) -> Int { + var lo = 0, hi = count + while lo < hi { + let mid = (lo + hi) / 2 + if dateExtractor(self[mid]) < date { + lo = mid + 1 + } else { + hi = mid + } + } + return lo + } +} diff --git a/Loop/Models/LoopInsights/LoopInsights_Phase5Models.swift b/Loop/Models/LoopInsights/LoopInsights_Phase5Models.swift index 5a4ed625c6..24c1538b1c 100644 --- a/Loop/Models/LoopInsights/LoopInsights_Phase5Models.swift +++ b/Loop/Models/LoopInsights/LoopInsights_Phase5Models.swift @@ -222,9 +222,9 @@ struct LoopInsightsNightscoutTreatment: Codable { // MARK: - AGP Data Point -/// A single time point in an Ambulatory Glucose Profile +/// A single time-window in a glucose profile chart spanning the analysis period. struct LoopInsightsAGPDataPoint { - let minuteOfDay: Int // 0-1439 + let date: Date // Bucket midpoint let p10: Double // 10th percentile mg/dL let p25: Double // 25th percentile mg/dL let p50: Double // 50th (median) mg/dL diff --git a/Loop/Resources/LoopInsights/LoopInsights_FeatureFlags.swift b/Loop/Resources/LoopInsights/LoopInsights_FeatureFlags.swift index b8948ea81d..783b84b29a 100644 --- a/Loop/Resources/LoopInsights/LoopInsights_FeatureFlags.swift +++ b/Loop/Resources/LoopInsights/LoopInsights_FeatureFlags.swift @@ -7,11 +7,15 @@ // import Foundation +import os.log /// Runtime feature flags for LoopInsights. All flags are UserDefaults-backed /// so they can be toggled without recompilation. struct LoopInsights_FeatureFlags { + /// Shared logger for all LoopInsights subsystems + static let log = Logger(subsystem: "com.loopkit.Loop.LoopInsights", category: "LoopInsights") + private enum Keys { static let isEnabled = "LoopInsights_isEnabled" static let developerModeEnabled = "LoopInsights_developerModeEnabled" diff --git a/Loop/Services/LoopInsights/LoopInsights_AdvancedAnalyzers.swift b/Loop/Services/LoopInsights/LoopInsights_AdvancedAnalyzers.swift index 9fef965da3..956ae4c725 100644 --- a/Loop/Services/LoopInsights/LoopInsights_AdvancedAnalyzers.swift +++ b/Loop/Services/LoopInsights/LoopInsights_AdvancedAnalyzers.swift @@ -156,7 +156,7 @@ final class LoopInsights_AdvancedAnalyzers { // P5: Binary search for overcorrection check instead of linear scan let checkStart = dose.endDate let checkEnd = dose.endDate.addingTimeInterval(2 * 3600) - let startIdx = Self.binarySearchFirstIndex(in: sortedGlucose, afterOrAt: checkStart) + let startIdx = sortedGlucose.loopInsights_firstIndex(afterOrAt: checkStart) { $0.startDate } var reboundHigh = false for i in startIdx.. Int { - var lo = 0, hi = samples.count - while lo < hi { - let mid = (lo + hi) / 2 - if samples[mid].startDate < date { - lo = mid + 1 - } else { - hi = mid - } - } - return lo - } } diff --git a/Loop/Services/LoopInsights/LoopInsights_CaffeineTracker.swift b/Loop/Services/LoopInsights/LoopInsights_CaffeineTracker.swift index 3e735b0361..a6be3b54de 100644 --- a/Loop/Services/LoopInsights/LoopInsights_CaffeineTracker.swift +++ b/Loop/Services/LoopInsights/LoopInsights_CaffeineTracker.swift @@ -50,7 +50,7 @@ final class LoopInsights_CaffeineTracker: ObservableObject { self.rebuildMergedEntries() } } catch { - print("[LoopInsights] Failed to fetch HealthKit caffeine: \(error)") + LoopInsights_FeatureFlags.log.error("Failed to fetch HealthKit caffeine: \(error)") } } diff --git a/Loop/Services/LoopInsights/LoopInsights_DataAggregator.swift b/Loop/Services/LoopInsights/LoopInsights_DataAggregator.swift index 5de9526c5f..ec2e498d39 100644 --- a/Loop/Services/LoopInsights/LoopInsights_DataAggregator.swift +++ b/Loop/Services/LoopInsights/LoopInsights_DataAggregator.swift @@ -28,10 +28,13 @@ final class LoopInsights_DataAggregator { private weak var dataProvider: LoopInsightsDataProviderProtocol? private var healthKitManager: LoopInsights_HealthKitManager? - /// P3: Cached raw data from last aggregation, available for reuse (AGP chart, supplemental context) + /// P3: Cached raw data from last aggregation, available for reuse (supplemental context) private(set) var lastFetchedGlucoseSamples: [StoredGlucoseSample] = [] private(set) var lastFetchedCarbEntries: [StoredCarbEntry] = [] + /// Best available glucose data for AGP chart (Loop store or HealthKit, whichever has more samples for the period) + private(set) var lastGlucoseForAGP: [(date: Date, mgdl: Double)] = [] + init(dataProvider: LoopInsightsDataProviderProtocol, healthKitManager: LoopInsights_HealthKitManager? = nil) { self.dataProvider = dataProvider self.healthKitManager = healthKitManager @@ -59,9 +62,13 @@ final class LoopInsights_DataAggregator { let carbEntries = try await rawCarbs let resolvedBiometrics = try await biometrics - // P3: Store for external reuse (AGP chart, supplemental context) + // P3: Store for external reuse (supplemental context) self.lastFetchedGlucoseSamples = glucoseSamples self.lastFetchedCarbEntries = carbEntries + // Initial AGP cache from Loop store; computeGlucoseStats may upgrade to HealthKit if HK has more + self.lastGlucoseForAGP = glucoseSamples.map { + (date: $0.startDate, mgdl: $0.quantity.doubleValue(for: .milligramsPerDeciliter)) + } // Compute stats from pre-fetched data (each may still supplement with HK data) async let glucoseStatsTask = computeGlucoseStats(loopSamples: glucoseSamples, start: startDate, end: endDate) @@ -91,9 +98,9 @@ final class LoopInsights_DataAggregator { correctionBolusCount: resolvedInsulinStats.correctionBolusCount, negativeBasalStats: negBasal ) - print("[LoopInsights] Phase 5: Negative basal stats computed — \(negBasal.suspensionCount) suspensions") + LoopInsights_FeatureFlags.log.debug("Phase 5: Negative basal stats computed — \(negBasal.suspensionCount) suspensions") } catch { - print("[LoopInsights] Phase 5: Negative basal stats error — \(error)") + LoopInsights_FeatureFlags.log.error("Phase 5: Negative basal stats error — \(error)") } } @@ -114,7 +121,7 @@ final class LoopInsights_DataAggregator { weight: bio.weight, stressScore: stressScore ) - print("[LoopInsights] Phase 5: Stress score computed — \(String(format: "%.0f", stressScore!.overallScore))/100") + LoopInsights_FeatureFlags.log.debug("Phase 5: Stress score computed — \(String(format: "%.0f", stressScore!.overallScore))/100") } } @@ -160,25 +167,25 @@ final class LoopInsights_DataAggregator { private func fetchBiometricsIfEnabled(start: Date, end: Date) async throws -> LoopInsightsAggregatedStats.BiometricStats? { guard LoopInsights_FeatureFlags.biometricsEnabled else { - print("[LoopInsights] Biometrics: flag is disabled, skipping") + LoopInsights_FeatureFlags.log.debug("Biometrics: flag is disabled, skipping") return nil } // Use the injected manager, or create one on the fly. This handles the case // where the Coordinator was created before biometrics was enabled. let manager = healthKitManager ?? LoopInsights_HealthKitManager() - print("[LoopInsights] Biometrics: fetching from HealthKit (start: \(start), end: \(end))") + LoopInsights_FeatureFlags.log.debug("Biometrics: fetching from HealthKit (start: \(start), end: \(end))") do { let result = try await manager.fetchAllBiometrics(start: start, end: end) - print("[LoopInsights] Biometrics: HR=\(result.heartRate != nil), HRV=\(result.hrv != nil), steps=\(result.steps != nil), sleep=\(result.sleep != nil), energy=\(result.activeEnergy != nil), weight=\(result.weight != nil)") + LoopInsights_FeatureFlags.log.debug("Biometrics: HR=\(result.heartRate != nil), HRV=\(result.hrv != nil), steps=\(result.steps != nil), sleep=\(result.sleep != nil), energy=\(result.activeEnergy != nil), weight=\(result.weight != nil)") // If every sub-stat is nil, return nil so the AI prompt doesn't get an empty section if result.heartRate == nil && result.hrv == nil && result.steps == nil && result.sleep == nil && result.activeEnergy == nil && result.weight == nil { - print("[LoopInsights] Biometrics: all sub-stats nil — no HealthKit data available") + LoopInsights_FeatureFlags.log.debug("Biometrics: all sub-stats nil — no HealthKit data available") return nil } return result } catch { - print("[LoopInsights] Biometrics: fetch error — \(error)") + LoopInsights_FeatureFlags.log.error("Biometrics: fetch error — \(error)") return nil } } @@ -193,14 +200,16 @@ final class LoopInsights_DataAggregator { do { let hkGlucose = try await hkManager.fetchGlucoseSamples(start: start, end: end) if hkGlucose.count > loopSamples.count { - print("[LoopInsights] HealthKit glucose: \(hkGlucose.count) samples vs Loop store \(loopSamples.count) — using HealthKit data") + LoopInsights_FeatureFlags.log.debug("HealthKit glucose: \(hkGlucose.count) samples vs Loop store \(loopSamples.count) — using HealthKit data") + let hkValues = hkGlucose.map { (date: $0.date, mgdl: $0.mgdl) } + self.lastGlucoseForAGP = hkValues return computeGlucoseStatsFromValues( - values: hkGlucose.map { (date: $0.date, mgdl: $0.mgdl) }, + values: hkValues, start: start, end: end ) } } catch { - print("[LoopInsights] HealthKit glucose fetch error (continuing with Loop store data): \(error)") + LoopInsights_FeatureFlags.log.error("HealthKit glucose fetch error (continuing with Loop store data): \(error)") } } @@ -319,11 +328,11 @@ final class LoopInsights_DataAggregator { do { let hkInsulin = try await hkManager.fetchInsulinDelivery(start: start, end: end) if hkInsulin.count > loopDoses.count { - print("[LoopInsights] HealthKit insulin: \(hkInsulin.count) entries vs Loop store \(loopDoses.count) — using HealthKit data") + LoopInsights_FeatureFlags.log.debug("HealthKit insulin: \(hkInsulin.count) entries vs Loop store \(loopDoses.count) — using HealthKit data") return computeInsulinStatsFromHK(hkInsulin, start: start, end: end) } } catch { - print("[LoopInsights] HealthKit insulin fetch error (continuing with Loop store data): \(error)") + LoopInsights_FeatureFlags.log.error("HealthKit insulin fetch error (continuing with Loop store data): \(error)") } } @@ -429,11 +438,11 @@ final class LoopInsights_DataAggregator { do { let hkCarbs = try await hkManager.fetchCarbEntries(start: start, end: end) if hkCarbs.count > loopEntries.count { - print("[LoopInsights] HealthKit carbs: \(hkCarbs.count) entries vs Loop store \(loopEntries.count) — using HealthKit data") + LoopInsights_FeatureFlags.log.debug("HealthKit carbs: \(hkCarbs.count) entries vs Loop store \(loopEntries.count) — using HealthKit data") return computeCarbStatsFromHK(hkCarbs, start: start, end: end) } } catch { - print("[LoopInsights] HealthKit carbs fetch error (continuing with Loop store data): \(error)") + LoopInsights_FeatureFlags.log.error("HealthKit carbs fetch error (continuing with Loop store data): \(error)") } } diff --git a/Loop/Services/LoopInsights/LoopInsights_FoodResponseAnalyzer.swift b/Loop/Services/LoopInsights/LoopInsights_FoodResponseAnalyzer.swift index 6af68286eb..7eb6778802 100644 --- a/Loop/Services/LoopInsights/LoopInsights_FoodResponseAnalyzer.swift +++ b/Loop/Services/LoopInsights/LoopInsights_FoodResponseAnalyzer.swift @@ -83,7 +83,7 @@ final class LoopInsights_FoodResponseAnalyzer { // P4: Binary search for pre-meal window (30 min before to meal time) let preMealStart = mealDate.addingTimeInterval(-1800) - let preStartIdx = binarySearchFirstIndex(in: sortedDates, afterOrAt: preMealStart) + let preStartIdx = sortedDates.loopInsights_firstIndex(afterOrAt: preMealStart) { $0 } var preMealValues: [Double] = [] for i in preStartIdx.. mealDate { break } @@ -94,7 +94,7 @@ final class LoopInsights_FoodResponseAnalyzer { // P4: Binary search for post-meal window (0-4h after meal) let postMealEnd = mealDate.addingTimeInterval(4 * 3600) - let postStartIdx = binarySearchFirstIndex(in: sortedDates, afterOrAt: mealDate) + let postStartIdx = sortedDates.loopInsights_firstIndex(afterOrAt: mealDate) { $0 } var postValues: [Double] = [] var postDates: [Date] = [] for i in postStartIdx.. mealDate { break } @@ -211,7 +211,7 @@ final class LoopInsights_FoodResponseAnalyzer { // P4: Binary search for post-meal glucose (0-4h) let postEnd = mealDate.addingTimeInterval(4 * 3600) - let postIdx = binarySearchFirstIndex(in: sortedDates, afterOrAt: mealDate) + let postIdx = sortedDates.loopInsights_firstIndex(afterOrAt: mealDate) { $0 } var postValues: [Double] = [] var postDates: [Date] = [] for i in postIdx.. Int { - var lo = 0, hi = dates.count - while lo < hi { - let mid = (lo + hi) / 2 - if dates[mid] < date { - lo = mid + 1 - } else { - hi = mid - } - } - return lo - } - // MARK: - Prompt Context /// Build prompt context string from food response patterns diff --git a/Loop/Services/LoopInsights/LoopInsights_GoalStore.swift b/Loop/Services/LoopInsights/LoopInsights_GoalStore.swift index 6c0328b119..c17a9672af 100644 --- a/Loop/Services/LoopInsights/LoopInsights_GoalStore.swift +++ b/Loop/Services/LoopInsights/LoopInsights_GoalStore.swift @@ -324,7 +324,7 @@ final class LoopInsights_GoalStore: ObservableObject { do { goals = try decoder.decode([LoopInsightsGoal].self, from: data) } catch { - print("[LoopInsights] Failed to decode goals: \(error)") + LoopInsights_FeatureFlags.log.error("Failed to decode goals: \(error)") goals = [] } } @@ -334,7 +334,7 @@ final class LoopInsights_GoalStore: ObservableObject { let data = try encoder.encode(goals) defaults.set(data, forKey: Self.goalsKey) } catch { - print("[LoopInsights] Failed to encode goals: \(error)") + LoopInsights_FeatureFlags.log.error("Failed to encode goals: \(error)") } } @@ -346,7 +346,7 @@ final class LoopInsights_GoalStore: ObservableObject { do { reflections = try decoder.decode([LoopInsightsReflection].self, from: data) } catch { - print("[LoopInsights] Failed to decode reflections: \(error)") + LoopInsights_FeatureFlags.log.error("Failed to decode reflections: \(error)") reflections = [] } } @@ -356,7 +356,7 @@ final class LoopInsights_GoalStore: ObservableObject { let data = try encoder.encode(reflections) defaults.set(data, forKey: Self.reflectionsKey) } catch { - print("[LoopInsights] Failed to encode reflections: \(error)") + LoopInsights_FeatureFlags.log.error("Failed to encode reflections: \(error)") } } @@ -368,7 +368,7 @@ final class LoopInsights_GoalStore: ObservableObject { do { cachedPatterns = try decoder.decode([LoopInsightsCachedPattern].self, from: data) } catch { - print("[LoopInsights] Failed to decode cached patterns: \(error)") + LoopInsights_FeatureFlags.log.error("Failed to decode cached patterns: \(error)") cachedPatterns = [] } } @@ -378,7 +378,7 @@ final class LoopInsights_GoalStore: ObservableObject { let data = try encoder.encode(cachedPatterns) defaults.set(data, forKey: Self.patternsKey) } catch { - print("[LoopInsights] Failed to encode cached patterns: \(error)") + LoopInsights_FeatureFlags.log.error("Failed to encode cached patterns: \(error)") } } } diff --git a/Loop/Services/LoopInsights/LoopInsights_HealthKitManager.swift b/Loop/Services/LoopInsights/LoopInsights_HealthKitManager.swift index d6ea96087f..f09cdc59e6 100644 --- a/Loop/Services/LoopInsights/LoopInsights_HealthKitManager.swift +++ b/Loop/Services/LoopInsights/LoopInsights_HealthKitManager.swift @@ -89,34 +89,33 @@ final class LoopInsights_HealthKitManager: ObservableObject { ) } + private func safeFetch(_ label: String, _ fetch: () async throws -> T?) async -> T? { + do { return try await fetch() } + catch { LoopInsights_FeatureFlags.log.error("HK \(label) error: \(error)"); return nil } + } + private func fetchHeartRateSafe(start: Date, end: Date) async -> LoopInsightsAggregatedStats.HeartRateStats? { - do { return try await fetchHeartRateStats(start: start, end: end) } - catch { print("[LoopInsights] HK heart rate error: \(error)"); return nil } + await safeFetch("heart rate") { try await fetchHeartRateStats(start: start, end: end) } } private func fetchHRVSafe(start: Date, end: Date) async -> LoopInsightsAggregatedStats.HRVStats? { - do { return try await fetchHRVStats(start: start, end: end) } - catch { print("[LoopInsights] HK HRV error: \(error)"); return nil } + await safeFetch("HRV") { try await fetchHRVStats(start: start, end: end) } } private func fetchStepSafe(start: Date, end: Date) async -> LoopInsightsAggregatedStats.StepStats? { - do { return try await fetchStepStats(start: start, end: end) } - catch { print("[LoopInsights] HK steps error: \(error)"); return nil } + await safeFetch("steps") { try await fetchStepStats(start: start, end: end) } } private func fetchSleepSafe(start: Date, end: Date) async -> LoopInsightsAggregatedStats.SleepStats? { - do { return try await fetchSleepStats(start: start, end: end) } - catch { print("[LoopInsights] HK sleep error: \(error)"); return nil } + await safeFetch("sleep") { try await fetchSleepStats(start: start, end: end) } } private func fetchEnergySafe(start: Date, end: Date) async -> LoopInsightsAggregatedStats.ActiveEnergyStats? { - do { return try await fetchActiveEnergyStats(start: start, end: end) } - catch { print("[LoopInsights] HK active energy error: \(error)"); return nil } + await safeFetch("active energy") { try await fetchActiveEnergyStats(start: start, end: end) } } private func fetchWeightSafe(start: Date, end: Date) async -> LoopInsightsAggregatedStats.WeightStats? { - do { return try await fetchWeightStats(start: start, end: end) } - catch { print("[LoopInsights] HK weight error: \(error)"); return nil } + await safeFetch("weight") { try await fetchWeightStats(start: start, end: end) } } // MARK: - Heart Rate diff --git a/Loop/Services/LoopInsights/LoopInsights_ReportGenerator.swift b/Loop/Services/LoopInsights/LoopInsights_ReportGenerator.swift index 88baf28be8..a683e3f34a 100644 --- a/Loop/Services/LoopInsights/LoopInsights_ReportGenerator.swift +++ b/Loop/Services/LoopInsights/LoopInsights_ReportGenerator.swift @@ -216,7 +216,7 @@ final class LoopInsights_ReportGenerator { try pdfData.write(to: tempURL) return tempURL } catch { - print("[LoopInsights] Failed to write PDF: \(error)") + LoopInsights_FeatureFlags.log.error("Failed to write PDF: \(error)") return nil } } diff --git a/Loop/Services/LoopInsights/LoopInsights_SuggestionStore.swift b/Loop/Services/LoopInsights/LoopInsights_SuggestionStore.swift index 0ae0753d7c..171bb83407 100644 --- a/Loop/Services/LoopInsights/LoopInsights_SuggestionStore.swift +++ b/Loop/Services/LoopInsights/LoopInsights_SuggestionStore.swift @@ -118,7 +118,7 @@ final class LoopInsights_SuggestionStore: ObservableObject { do { records = try decoder.decode([LoopInsightsSuggestionRecord].self, from: data) } catch { - print("[LoopInsights] Failed to decode suggestion history: \(error)") + LoopInsights_FeatureFlags.log.error("Failed to decode suggestion history: \(error)") records = [] } } @@ -128,7 +128,7 @@ final class LoopInsights_SuggestionStore: ObservableObject { let data = try encoder.encode(records) defaults.set(data, forKey: Self.storageKey) } catch { - print("[LoopInsights] Failed to encode suggestion history: \(error)") + LoopInsights_FeatureFlags.log.error("Failed to encode suggestion history: \(error)") } } } diff --git a/Loop/Services/LoopInsights/LoopInsights_TestDataProvider.swift b/Loop/Services/LoopInsights/LoopInsights_TestDataProvider.swift index e3e8086e35..ba227693ad 100644 --- a/Loop/Services/LoopInsights/LoopInsights_TestDataProvider.swift +++ b/Loop/Services/LoopInsights/LoopInsights_TestDataProvider.swift @@ -131,9 +131,9 @@ final class LoopInsights_TestDataProvider: LoopInsightsDataProviderProtocol { if let data = Self.loadFixtureData(for: FixtureFile.glucose) { do { glucoseSamples = try decoder.decode([StoredGlucoseSample].self, from: data) - print("[LoopInsights TestData] Loaded \(glucoseSamples.count) glucose samples") + LoopInsights_FeatureFlags.log.debug("TestData: Loaded \(self.glucoseSamples.count) glucose samples") } catch { - print("[LoopInsights TestData] Failed to decode glucose: \(error)") + LoopInsights_FeatureFlags.log.error("TestData: Failed to decode glucose: \(error)") } } @@ -142,9 +142,9 @@ final class LoopInsights_TestDataProvider: LoopInsightsDataProviderProtocol { let sanitizedData = Self.sanitizeDoseJSON(data) do { doseEntries = try decoder.decode([DoseEntry].self, from: sanitizedData) - print("[LoopInsights TestData] Loaded \(doseEntries.count) dose entries") + LoopInsights_FeatureFlags.log.debug("TestData: Loaded \(self.doseEntries.count) dose entries") } catch { - print("[LoopInsights TestData] Failed to decode doses: \(error)") + LoopInsights_FeatureFlags.log.error("TestData: Failed to decode doses: \(error)") } } @@ -152,9 +152,9 @@ final class LoopInsights_TestDataProvider: LoopInsightsDataProviderProtocol { if let data = Self.loadFixtureData(for: FixtureFile.carbs) { do { carbEntries = try decoder.decode([StoredCarbEntry].self, from: data) - print("[LoopInsights TestData] Loaded \(carbEntries.count) carb entries") + LoopInsights_FeatureFlags.log.debug("TestData: Loaded \(self.carbEntries.count) carb entries") } catch { - print("[LoopInsights TestData] Failed to decode carbs: \(error)") + LoopInsights_FeatureFlags.log.error("TestData: Failed to decode carbs: \(error)") } } @@ -167,7 +167,7 @@ final class LoopInsights_TestDataProvider: LoopInsightsDataProviderProtocol { /// Parse the Tidepool therapy settings JSON and construct a StoredSettings instance. private func loadTherapySettings(data: Data) { guard let json = try? JSONSerialization.jsonObject(with: data) as? [String: Any] else { - print("[LoopInsights TestData] Failed to parse therapy settings JSON") + LoopInsights_FeatureFlags.log.error("TestData: Failed to parse therapy settings JSON") return } @@ -217,7 +217,7 @@ final class LoopInsights_TestDataProvider: LoopInsightsDataProviderProtocol { insulinSensitivitySchedule: isfSchedule, carbRatioSchedule: crSchedule ) - print("[LoopInsights TestData] Loaded therapy settings (basal: \(basalSchedule?.items.count ?? 0), ISF: \(isfSchedule?.items.count ?? 0), CR: \(crSchedule?.items.count ?? 0))") + LoopInsights_FeatureFlags.log.debug("TestData: Loaded therapy settings (basal: \(basalSchedule?.items.count ?? 0), ISF: \(isfSchedule?.items.count ?? 0), CR: \(crSchedule?.items.count ?? 0))") } // MARK: - Dose JSON Sanitization @@ -264,10 +264,10 @@ final class LoopInsights_TestDataProvider: LoopInsightsDataProviderProtocol { /// Load raw Data from a fixture file. private static func loadFixtureData(for filename: String) -> Data? { guard let url = resolveFixturePath(for: filename) else { - print("[LoopInsights TestData] Fixture not found: \(filename)") + LoopInsights_FeatureFlags.log.error("TestData: Fixture not found: \(filename)") return nil } - print("[LoopInsights TestData] Loading: \(url.lastPathComponent) from \(url.deletingLastPathComponent().lastPathComponent)/") + LoopInsights_FeatureFlags.log.debug("TestData: Loading \(url.lastPathComponent) from \(url.deletingLastPathComponent().lastPathComponent)/") return try? Data(contentsOf: url) } diff --git a/Loop/View Models/LoopInsights/LoopInsights_ChatViewModel.swift b/Loop/View Models/LoopInsights/LoopInsights_ChatViewModel.swift index 0d32a77d62..f278a6d149 100644 --- a/Loop/View Models/LoopInsights/LoopInsights_ChatViewModel.swift +++ b/Loop/View Models/LoopInsights/LoopInsights_ChatViewModel.swift @@ -67,10 +67,13 @@ final class LoopInsights_ChatViewModel: ObservableObject { Task { @MainActor in do { - let snapshot = try? coordinator.captureCurrentSnapshot() - let stats = try? await coordinator.dataAggregator.aggregateData( - period: LoopInsights_FeatureFlags.analysisPeriod - ) + var snapshot: LoopInsightsTherapySnapshot? + do { snapshot = try coordinator.captureCurrentSnapshot() } + catch { LoopInsights_FeatureFlags.log.error("Chat: failed to capture snapshot: \(error)") } + + var stats: LoopInsightsAggregatedStats? + do { stats = try await coordinator.dataAggregator.aggregateData(period: LoopInsights_FeatureFlags.analysisPeriod) } + catch { LoopInsights_FeatureFlags.log.error("Chat: failed to aggregate data: \(error)") } let context = Self.buildTherapyContext(snapshot: snapshot, stats: stats) let history = session.conversationHistory().dropLast().map { ($0.role, $0.content) } diff --git a/Loop/View Models/LoopInsights/LoopInsights_DashboardViewModel.swift b/Loop/View Models/LoopInsights/LoopInsights_DashboardViewModel.swift index 21f030eef5..176c816e42 100644 --- a/Loop/View Models/LoopInsights/LoopInsights_DashboardViewModel.swift +++ b/Loop/View Models/LoopInsights/LoopInsights_DashboardViewModel.swift @@ -66,12 +66,12 @@ final class LoopInsights_DashboardViewModel: ObservableObject { /// Whether current metrics indicate settings are already performing well @Published var settingsAlreadyOptimal: Bool = false - /// Glucose samples for AGP chart (populated during analysis) - @Published var agpGlucoseSamples: [StoredGlucoseSample] = [] - /// P6: Pre-computed AGP data points — computed once when samples change, not on every view render @Published var agpComputedData: [LoopInsightsAGPDataPoint] = [] + /// True when the analysis period is 14 days (standard AGP 24-hour overlay mode) + var isAGPMode: Bool { analysisPeriod == .fourteenDays } + // MARK: - Dependencies let coordinator: LoopInsights_Coordinator @@ -112,7 +112,7 @@ final class LoopInsights_DashboardViewModel: ObservableObject { do { currentSnapshot = try coordinator.captureCurrentSnapshot() } catch { - print("[LoopInsights] Failed to capture therapy snapshot: \(error)") + LoopInsights_FeatureFlags.log.error("Failed to capture therapy snapshot: \(error)") } } @@ -130,12 +130,15 @@ final class LoopInsights_DashboardViewModel: ObservableObject { let stats = try await coordinator.dataAggregator.aggregateData(period: analysisPeriod) self.aggregatedStats = stats - // P3+P6: Use cached glucose for AGP and pre-compute AGP data - let cachedGlucose = coordinator.dataAggregator.lastFetchedGlucoseSamples + // P3+P6: Use cached data for chart and supplemental context let cachedCarbs = coordinator.dataAggregator.lastFetchedCarbEntries if LoopInsights_FeatureFlags.agpChartEnabled { - self.agpGlucoseSamples = cachedGlucose - self.agpComputedData = LoopInsights_AGPChartView.computeAGP(from: cachedGlucose) + let glucoseForChart = coordinator.dataAggregator.lastGlucoseForAGP + if isAGPMode { + self.agpComputedData = LoopInsights_AGPChartView.computeStandardAGP(from: glucoseForChart) + } else { + self.agpComputedData = LoopInsights_AGPChartView.computeProfile(from: glucoseForChart) + } } // Capture current settings @@ -145,7 +148,7 @@ final class LoopInsights_DashboardViewModel: ObservableObject { // P3: Pass cached glucose + carbs to avoid re-fetching in supplemental context let supplementalContext = await coordinator.buildSupplementalContext( stats: stats, - glucoseSamples: cachedGlucose, + glucoseSamples: coordinator.dataAggregator.lastFetchedGlucoseSamples, carbEntries: cachedCarbs ) @@ -215,12 +218,15 @@ final class LoopInsights_DashboardViewModel: ObservableObject { let stats = try await coordinator.dataAggregator.aggregateData(period: analysisPeriod) self.aggregatedStats = stats - // P3+P6: Use cached glucose for AGP and pre-compute AGP data - let cachedGlucose = coordinator.dataAggregator.lastFetchedGlucoseSamples + // P3+P6: Use cached data for chart and supplemental context let cachedCarbs = coordinator.dataAggregator.lastFetchedCarbEntries if LoopInsights_FeatureFlags.agpChartEnabled { - self.agpGlucoseSamples = cachedGlucose - self.agpComputedData = LoopInsights_AGPChartView.computeAGP(from: cachedGlucose) + let glucoseForChart = coordinator.dataAggregator.lastGlucoseForAGP + if isAGPMode { + self.agpComputedData = LoopInsights_AGPChartView.computeStandardAGP(from: glucoseForChart) + } else { + self.agpComputedData = LoopInsights_AGPChartView.computeProfile(from: glucoseForChart) + } } let snapshot = try coordinator.captureCurrentSnapshot() @@ -229,7 +235,7 @@ final class LoopInsights_DashboardViewModel: ObservableObject { // P3: Pass cached glucose + carbs to avoid re-fetching in supplemental context let supplementalContext = await coordinator.buildSupplementalContext( stats: stats, - glucoseSamples: cachedGlucose, + glucoseSamples: coordinator.dataAggregator.lastFetchedGlucoseSamples, carbEntries: cachedCarbs ) @@ -395,7 +401,7 @@ final class LoopInsights_DashboardViewModel: ObservableObject { func revertSuggestion(_ record: LoopInsightsSuggestionRecord) -> Bool { guard record.status.isRevertable else { return false } guard let snapshotBefore = record.settingsSnapshotBefore else { - print("[LoopInsights] Cannot revert: no pre-apply snapshot stored") + LoopInsights_FeatureFlags.log.error("Cannot revert: no pre-apply snapshot stored") return false } @@ -422,6 +428,8 @@ final class LoopInsights_DashboardViewModel: ObservableObject { func updateAnalysisPeriod(_ period: LoopInsightsAnalysisPeriod) { analysisPeriod = period LoopInsights_FeatureFlags.analysisPeriod = period + // Clear stale chart data so labels don't show a mismatched date range + agpComputedData = [] } /// The most recent AI debug log (system prompt, user prompt, raw response). diff --git a/Loop/Views/LoopInsights/LoopInsights_AGPChartView.swift b/Loop/Views/LoopInsights/LoopInsights_AGPChartView.swift index 6061661994..657e914f55 100644 --- a/Loop/Views/LoopInsights/LoopInsights_AGPChartView.swift +++ b/Loop/Views/LoopInsights/LoopInsights_AGPChartView.swift @@ -7,16 +7,24 @@ // import SwiftUI -import LoopKit -import HealthKit -/// Ambulatory Glucose Profile chart: renders percentile bands (p10/p25/p50/p75/p90) -/// as layered SwiftUI Paths over a 24-hour x-axis. iOS 15 compatible (no Charts framework). +/// Dual-mode glucose chart: +/// - **AGP mode** (14-day lookback): Standard Ambulatory Glucose Profile — all days overlaid +/// into a single 24-hour view with percentile bands. Matches the IDC/AGP spec. +/// - **Profile mode** (all other periods): Glucose Profile — percentile bands spanning the +/// full analysis period with date-based X-axis. +/// iOS 15 compatible (no Charts framework). struct LoopInsights_AGPChartView: View { - /// P6: Accept pre-computed AGP data instead of recomputing on every view body evaluation + /// P6: Accept pre-computed data instead of recomputing on every view body evaluation let agpData: [LoopInsightsAGPDataPoint] + /// When true, renders as a standard 24-hour AGP overlay with hour labels. + let isAGPMode: Bool + + @State private var showingAGPInfo = false + @State private var showingProfileInfo = false + private let targetLow: Double = 70 private let targetHigh: Double = 180 private let chartMinY: Double = 40 @@ -26,13 +34,40 @@ struct LoopInsights_AGPChartView: View { private let topMargin: Double = 8 private let bottomMargin: Double = 16 + /// Date range derived from the data + private var startDate: Date { agpData.first?.date ?? Date() } + private var endDate: Date { agpData.last?.date ?? Date() } + private var totalDuration: TimeInterval { max(1, endDate.timeIntervalSince(startDate)) } + var body: some View { VStack(alignment: .leading, spacing: 2) { - Text(NSLocalizedString("Ambulatory Glucose Profile", comment: "LoopInsights AGP chart title")) - .font(.subheadline.weight(.semibold)) + // Title — AGP mode gets the proper name + info button + if isAGPMode { + HStack(spacing: 4) { + Text(NSLocalizedString("Ambulatory Glucose Profile", comment: "LoopInsights AGP chart title")) + .font(.subheadline.weight(.semibold)) + Button(action: { showingAGPInfo = true }) { + Image(systemName: "info.circle") + .font(.caption) + .foregroundColor(.accentColor) + } + .buttonStyle(.plain) + } + } else { + HStack(spacing: 4) { + Text(NSLocalizedString("Glucose Profile", comment: "LoopInsights glucose profile chart title")) + .font(.subheadline.weight(.semibold)) + Button(action: { showingProfileInfo = true }) { + Image(systemName: "info.circle") + .font(.caption) + .foregroundColor(.accentColor) + } + .buttonStyle(.plain) + } + } if agpData.isEmpty { - Text(NSLocalizedString("Not enough data for AGP chart", comment: "LoopInsights AGP no data")) + Text(NSLocalizedString("Not enough data for glucose profile", comment: "LoopInsights AGP no data")) .font(.caption) .foregroundColor(.secondary) .frame(maxWidth: .infinity, alignment: .center) @@ -71,10 +106,28 @@ struct LoopInsights_AGPChartView: View { } .frame(height: 180) + Spacer().frame(height: 6) + // Legend legendView } } + .alert( + NSLocalizedString("Ambulatory Glucose Profile", comment: "LoopInsights AGP info alert title"), + isPresented: $showingAGPInfo + ) { + Button(NSLocalizedString("OK", comment: "OK button")) {} + } message: { + Text(NSLocalizedString("AGP is a standardized reporting format developed by the International Diabetes Center. It overlays 14 days of CGM data into a single 24-hour view, displaying the median (P50), interquartile range (P25\u{2013}P75), and 10th/90th percentile bands.\n\nThis format lets you and your clinician spot recurring daily patterns \u{2014} like dawn phenomenon or post-meal spikes \u{2014} at a glance, using the same visual language across institutions.", comment: "LoopInsights AGP info alert message")) + } + .alert( + NSLocalizedString("Glucose Profile", comment: "LoopInsights glucose profile info alert title"), + isPresented: $showingProfileInfo + ) { + Button(NSLocalizedString("OK", comment: "OK button")) {} + } message: { + Text(NSLocalizedString("Glucose Profile displays your CGM data across the selected time period using percentile bands.\n\nThe median line (P50) shows your typical glucose at each point in time. The shaded bands show the interquartile range (P25\u{2013}P75) and the 10th/90th percentile spread, giving you a sense of variability.\n\nFor a standardized Ambulatory Glucose Profile (AGP) \u{2014} which overlays all days into a single 24-hour view \u{2014} select the 14-day lookback period.", comment: "LoopInsights glucose profile info alert message")) + } } // MARK: - Legend @@ -101,7 +154,6 @@ struct LoopInsights_AGPChartView: View { // MARK: - Chart Components - /// Target range as a proper Path that fills the correct Y band private func targetRangePath(width: Double, height: Double) -> Path { let plotLeft = leftMargin let plotRight = width - rightMargin @@ -118,7 +170,6 @@ struct LoopInsights_AGPChartView: View { return path } - /// Dashed grid lines at 70 and 180 private func targetGridLines(width: Double, height: Double) -> some View { let plotLeft = leftMargin let plotRight = width - rightMargin @@ -150,20 +201,18 @@ struct LoopInsights_AGPChartView: View { var path = Path() guard !data.isEmpty else { return path } - // Upper line (left to right) - let firstX = xPosition(for: data[0].minuteOfDay, width: width) + let firstX = xPosition(for: data[0].date, width: width) let firstUpperY = yPosition(for: data[0][keyPath: upperKey], height: height) path.move(to: CGPoint(x: firstX, y: firstUpperY)) for point in data.dropFirst() { - let x = xPosition(for: point.minuteOfDay, width: width) + let x = xPosition(for: point.date, width: width) let y = yPosition(for: point[keyPath: upperKey], height: height) path.addLine(to: CGPoint(x: x, y: y)) } - // Lower line (right to left) for point in data.reversed() { - let x = xPosition(for: point.minuteOfDay, width: width) + let x = xPosition(for: point.date, width: width) let y = yPosition(for: point[keyPath: lowerKey], height: height) path.addLine(to: CGPoint(x: x, y: y)) } @@ -177,13 +226,13 @@ struct LoopInsights_AGPChartView: View { guard let first = data.first else { return path } path.move(to: CGPoint( - x: xPosition(for: first.minuteOfDay, width: width), + x: xPosition(for: first.date, width: width), y: yPosition(for: first.p50, height: height) )) for point in data.dropFirst() { path.addLine(to: CGPoint( - x: xPosition(for: point.minuteOfDay, width: width), + x: xPosition(for: point.date, width: width), y: yPosition(for: point.p50, height: height) )) } @@ -192,14 +241,19 @@ struct LoopInsights_AGPChartView: View { } private func xAxisLabels(width: Double, height: Double) -> some View { - let hours = [0, 3, 6, 9, 12, 15, 18, 21] + let labels: [(date: Date, text: String)] + if isAGPMode { + labels = Self.generateAGPHourLabels(start: startDate, end: endDate) + } else { + labels = Self.generateDateLabels(start: startDate, end: endDate) + } return ZStack { - ForEach(hours, id: \.self) { hour in - let x = xPosition(for: hour * 60, width: width) - Text(formatHour(hour)) + ForEach(Array(labels.enumerated()), id: \.offset) { _, label in + let x = xPosition(for: label.date, width: width) + Text(label.text) .font(.system(size: 8)) .foregroundColor(.secondary) - .position(x: x, y: height - 4) + .position(x: x, y: height - 20) } } } @@ -230,19 +284,68 @@ struct LoopInsights_AGPChartView: View { // MARK: - Coordinate Mapping - private func xPosition(for minuteOfDay: Int, width: Double) -> Double { + private func xPosition(for date: Date, width: Double) -> Double { let plotWidth = width - leftMargin - rightMargin - return leftMargin + (Double(minuteOfDay) / 1440.0) * plotWidth + let offset = date.timeIntervalSince(startDate) + let fraction = offset / totalDuration + return leftMargin + fraction * plotWidth } private func yPosition(for glucose: Double, height: Double) -> Double { let plotHeight = height - topMargin - bottomMargin let clamped = max(chartMinY, min(chartMaxY, glucose)) let fraction = (clamped - chartMinY) / (chartMaxY - chartMinY) - return topMargin + (1 - fraction) * plotHeight // Inverted Y axis + return topMargin + (1 - fraction) * plotHeight + } + + // MARK: - X-Axis Label Generation + + /// Hour labels for AGP mode (24-hour overlay): 12a, 3a, 6a, … 9p + private static func generateAGPHourLabels(start: Date, end: Date) -> [(date: Date, text: String)] { + let duration = end.timeIntervalSince(start) + guard duration > 0 else { return [] } + + let hours = [0, 3, 6, 9, 12, 15, 18, 21] + return hours.map { hour in + let fraction = Double(hour) / 24.0 + let date = start.addingTimeInterval(fraction * duration) + return (date: date, text: formatHour(hour)) + } } - private func formatHour(_ hour: Int) -> String { + /// Date labels for profile mode (multi-day time series) + private static func generateDateLabels(start: Date, end: Date) -> [(date: Date, text: String)] { + let duration = end.timeIntervalSince(start) + guard duration > 0 else { return [] } + + let days = duration / 86400 + let labelCount: Int + let formatter = DateFormatter() + + if days <= 4 { + labelCount = 7 + formatter.dateFormat = "E ha" + } else if days <= 10 { + labelCount = 7 + formatter.dateFormat = "E M/d" + } else if days <= 45 { + labelCount = 6 + formatter.dateFormat = "M/d" + } else { + labelCount = 6 + formatter.dateFormat = "M/d" + } + + var labels: [(date: Date, text: String)] = [] + for i in 0...labelCount { + let fraction = Double(i) / Double(labelCount) + let date = start.addingTimeInterval(fraction * duration) + labels.append((date: date, text: formatter.string(from: date))) + } + return labels + } + + private static func formatHour(_ hour: Int) -> String { let h = hour % 24 if h == 0 { return "12a" } if h < 12 { return "\(h)a" } @@ -250,42 +353,85 @@ struct LoopInsights_AGPChartView: View { return "\(h - 12)p" } - // MARK: - AGP Computation + // MARK: - Computation - /// Compute AGP data: 48 time points (every 30 min), each with percentiles - static func computeAGP(from samples: [StoredGlucoseSample]) -> [LoopInsightsAGPDataPoint] { + /// Compute standard AGP: overlay all days into a single 24-hour profile with 48 × 30-minute buckets. + /// Used when the lookback period is 14 days. + static func computeStandardAGP(from samples: [(date: Date, mgdl: Double)]) -> [LoopInsightsAGPDataPoint] { guard !samples.isEmpty else { return [] } let calendar = Calendar.current + // Reference day: midnight of the earliest sample's date + let refDay = calendar.startOfDay(for: samples.min(by: { $0.date < $1.date })!.date) - // Bucket samples by 30-minute windows - var buckets: [Int: [Double]] = [:] // minuteOfDay → glucose values + var buckets: [Int: [Double]] = [:] for sample in samples { - let hour = calendar.component(.hour, from: sample.startDate) - let minute = calendar.component(.minute, from: sample.startDate) + let hour = calendar.component(.hour, from: sample.date) + let minute = calendar.component(.minute, from: sample.date) let minuteOfDay = hour * 60 + minute - let bucket = (minuteOfDay / 30) * 30 // Round to nearest 30-min - buckets[bucket, default: []].append( - sample.quantity.doubleValue(for: .milligramsPerDeciliter) - ) + let bucket = (minuteOfDay / 30) * 30 + buckets[bucket, default: []].append(sample.mgdl) } var dataPoints: [LoopInsightsAGPDataPoint] = [] for minuteOfDay in stride(from: 0, to: 1440, by: 30) { guard let values = buckets[minuteOfDay], values.count >= 3 else { continue } - let sorted = values.sorted() - let count = sorted.count + let s = values.sorted() + let count = s.count + let date = refDay.addingTimeInterval(Double(minuteOfDay) * 60 + 15 * 60) // bucket midpoint + + dataPoints.append(LoopInsightsAGPDataPoint( + date: date, + p10: s[max(0, Int(Double(count) * 0.1))], + p25: s[max(0, Int(Double(count) * 0.25))], + p50: s[count / 2], + p75: s[min(count - 1, Int(Double(count) * 0.75))], + p90: s[min(count - 1, Int(Double(count) * 0.9))] + )) + } + + return dataPoints.sorted { $0.date < $1.date } + } + + /// Compute glucose profile: ~48 time-window buckets spanning the full sample period. + /// Used for all lookback periods except 14 days. + static func computeProfile(from samples: [(date: Date, mgdl: Double)]) -> [LoopInsightsAGPDataPoint] { + guard samples.count >= 3 else { return [] } + + let sorted = samples.sorted { $0.date < $1.date } + guard let first = sorted.first, let last = sorted.last else { return [] } + + let totalDuration = last.date.timeIntervalSince(first.date) + guard totalDuration > 0 else { return [] } + + let bucketCount = 48 + let bucketDuration = totalDuration / Double(bucketCount) + + var buckets: [[Double]] = Array(repeating: [], count: bucketCount) + for sample in sorted { + let offset = sample.date.timeIntervalSince(first.date) + let index = min(Int(offset / bucketDuration), bucketCount - 1) + buckets[index].append(sample.mgdl) + } + + var dataPoints: [LoopInsightsAGPDataPoint] = [] + for i in 0..= 3 else { continue } + let s = values.sorted() + let count = s.count + let midDate = first.date.addingTimeInterval((Double(i) + 0.5) * bucketDuration) dataPoints.append(LoopInsightsAGPDataPoint( - minuteOfDay: minuteOfDay, - p10: sorted[max(0, Int(Double(count) * 0.1))], - p25: sorted[max(0, Int(Double(count) * 0.25))], - p50: sorted[count / 2], - p75: sorted[min(count - 1, Int(Double(count) * 0.75))], - p90: sorted[min(count - 1, Int(Double(count) * 0.9))] + date: midDate, + p10: s[max(0, Int(Double(count) * 0.1))], + p25: s[max(0, Int(Double(count) * 0.25))], + p50: s[count / 2], + p75: s[min(count - 1, Int(Double(count) * 0.75))], + p90: s[min(count - 1, Int(Double(count) * 0.9))] )) } - return dataPoints.sorted { $0.minuteOfDay < $1.minuteOfDay } + return dataPoints } } diff --git a/Loop/Views/LoopInsights/LoopInsights_DashboardView.swift b/Loop/Views/LoopInsights/LoopInsights_DashboardView.swift index 1228c72f24..de175ca0df 100644 --- a/Loop/Views/LoopInsights/LoopInsights_DashboardView.swift +++ b/Loop/Views/LoopInsights/LoopInsights_DashboardView.swift @@ -394,7 +394,7 @@ struct LoopInsights_DashboardView: View { // AGP Chart — shown with analysis summary when enabled if LoopInsights_FeatureFlags.agpChartEnabled && !viewModel.agpComputedData.isEmpty { - LoopInsights_AGPChartView(agpData: viewModel.agpComputedData) + LoopInsights_AGPChartView(agpData: viewModel.agpComputedData, isAGPMode: viewModel.isAGPMode) } if !LoopInsights_SecureStorage.hasAPIKey { diff --git a/Loop/Views/LoopInsights/LoopInsights_GoalsView.swift b/Loop/Views/LoopInsights/LoopInsights_GoalsView.swift index 5e676958b3..a1e861a11c 100644 --- a/Loop/Views/LoopInsights/LoopInsights_GoalsView.swift +++ b/Loop/Views/LoopInsights/LoopInsights_GoalsView.swift @@ -477,9 +477,15 @@ private final class GoalsViewModel: ObservableObject { private func updateGoalCurrentValues(coordinator: LoopInsights_Coordinator) { Task { @MainActor in - guard let stats = try? await coordinator.dataAggregator.aggregateData( - period: LoopInsights_FeatureFlags.analysisPeriod - ) else { return } + let stats: LoopInsightsAggregatedStats + do { + stats = try await coordinator.dataAggregator.aggregateData( + period: LoopInsights_FeatureFlags.analysisPeriod + ) + } catch { + LoopInsights_FeatureFlags.log.error("Goals: failed to aggregate data for goal updates: \(error)") + return + } for goal in goals { let current: Double @@ -537,7 +543,9 @@ private final class GoalsViewModel: ObservableObject { Task { @MainActor in do { let stats = try await coordinator.dataAggregator.aggregateData(period: .thirtyDays) - let snapshot = try? coordinator.captureCurrentSnapshot() + var snapshot: LoopInsightsTherapySnapshot? + do { snapshot = try coordinator.captureCurrentSnapshot() } + catch { LoopInsights_FeatureFlags.log.error("Goals: failed to capture snapshot for patterns: \(error)") } let context = LoopInsights_ChatViewModel.buildTherapyContext( snapshot: snapshot, stats: stats @@ -588,9 +596,9 @@ private final class GoalsViewModel: ObservableObject { isGeneratingReport = true Task { @MainActor in - let stats = try? await coordinator.dataAggregator.aggregateData( - period: LoopInsights_FeatureFlags.analysisPeriod - ) + var stats: LoopInsightsAggregatedStats? + do { stats = try await coordinator.dataAggregator.aggregateData(period: LoopInsights_FeatureFlags.analysisPeriod) } + catch { LoopInsights_FeatureFlags.log.error("Goals: failed to aggregate data for report: \(error)") } let html = LoopInsights_ReportGenerator.generateHTML( stats: stats, diff --git a/Loop/Views/LoopInsights/LoopInsights_SettingsView.swift b/Loop/Views/LoopInsights/LoopInsights_SettingsView.swift index 09438add1c..436f00e9d2 100644 --- a/Loop/Views/LoopInsights/LoopInsights_SettingsView.swift +++ b/Loop/Views/LoopInsights/LoopInsights_SettingsView.swift @@ -770,7 +770,7 @@ struct LoopInsights_SettingsView: View { do { try await healthKitManager.requestAuthorization() } catch { - print("[LoopInsights] HealthKit authorization error: \(error)") + LoopInsights_FeatureFlags.log.error("HealthKit authorization error: \(error)") } await MainActor.run { isRequestingBiometricAuth = false @@ -1240,7 +1240,11 @@ struct LoopInsights_SettingsView: View { if key.isEmpty { LoopInsights_SecureStorage.deleteAPIKey() } else { - try? LoopInsights_SecureStorage.saveAPIKey(key) + do { + try LoopInsights_SecureStorage.saveAPIKey(key) + } catch { + LoopInsights_FeatureFlags.log.error("Failed to save API key: \(error)") + } } saveConfiguration() } @@ -1252,7 +1256,11 @@ struct LoopInsights_SettingsView: View { testResult = nil // Save key and config first - try? LoopInsights_SecureStorage.saveAPIKey(apiKeyText) + do { + try LoopInsights_SecureStorage.saveAPIKey(apiKeyText) + } catch { + LoopInsights_FeatureFlags.log.error("Failed to save API key for test: \(error)") + } saveConfiguration() Task { diff --git a/Loop/Views/LoopInsights/LoopInsights_TrendsInsightsView.swift b/Loop/Views/LoopInsights/LoopInsights_TrendsInsightsView.swift index 3786e5a353..37614eccb3 100644 --- a/Loop/Views/LoopInsights/LoopInsights_TrendsInsightsView.swift +++ b/Loop/Views/LoopInsights/LoopInsights_TrendsInsightsView.swift @@ -599,8 +599,11 @@ private final class TrendsViewModel: ObservableObject { cachedGeneratedAt[currentTab] = Date() // Build a summary prompt + var snapshot: LoopInsightsTherapySnapshot? + do { snapshot = try coordinator.captureCurrentSnapshot() } + catch { LoopInsights_FeatureFlags.log.error("Trends: failed to capture snapshot: \(error)") } let therapyContext = LoopInsights_ChatViewModel.buildTherapyContext( - snapshot: try? coordinator.captureCurrentSnapshot(), + snapshot: snapshot, stats: stats ) From 03065a36ac3f6c7633aabf88b9829a1dcab8d4d8 Mon Sep 17 00:00:00 2001 From: Taylor Date: Fri, 13 Feb 2026 14:54:34 -0800 Subject: [PATCH 10/14] Fix white text on dark-themed views (Trends & Insights, Chat) Bump all body text, headers, and stat values to full white for readability on dark backgrounds. Replace .toolbarColorScheme (iOS 16+) with manual toolbar principal title for compatibility. Restore UINavigationBarAppearance approach in ChatView. Co-Authored-By: Claude Opus 4.6 --- .../LoopInsights/LoopInsights_ChatView.swift | 4 +-- .../LoopInsights_TrendsInsightsView.swift | 26 +++++++++++-------- 2 files changed, 17 insertions(+), 13 deletions(-) diff --git a/Loop/Views/LoopInsights/LoopInsights_ChatView.swift b/Loop/Views/LoopInsights/LoopInsights_ChatView.swift index 3bb063262a..4dc6d63d9e 100644 --- a/Loop/Views/LoopInsights/LoopInsights_ChatView.swift +++ b/Loop/Views/LoopInsights/LoopInsights_ChatView.swift @@ -64,7 +64,7 @@ struct LoopInsights_ChatView: View { let appearance = UINavigationBarAppearance() appearance.configureWithOpaqueBackground() appearance.backgroundColor = UIColor(red: 0.06, green: 0.07, blue: 0.15, alpha: 1) - appearance.titleTextAttributes = [.foregroundColor: UIColor.white.withAlphaComponent(0.9)] + appearance.titleTextAttributes = [.foregroundColor: UIColor.white] UINavigationBar.appearance().standardAppearance = appearance UINavigationBar.appearance().scrollEdgeAppearance = appearance } @@ -78,7 +78,7 @@ struct LoopInsights_ChatView: View { ToolbarItem(placement: .principal) { Text(NSLocalizedString("Ask LoopInsights", comment: "LoopInsights chat title")) .font(.headline) - .foregroundColor(.white.opacity(0.9)) + .foregroundColor(.white) } ToolbarItem(placement: .navigationBarLeading) { Button(action: { dismiss() }) { diff --git a/Loop/Views/LoopInsights/LoopInsights_TrendsInsightsView.swift b/Loop/Views/LoopInsights/LoopInsights_TrendsInsightsView.swift index 37614eccb3..a121d768c0 100644 --- a/Loop/Views/LoopInsights/LoopInsights_TrendsInsightsView.swift +++ b/Loop/Views/LoopInsights/LoopInsights_TrendsInsightsView.swift @@ -37,9 +37,16 @@ struct LoopInsights_TrendsInsightsView: View { tabContent } } - .navigationTitle(NSLocalizedString("Trends & Insights", comment: "LoopInsights trends title")) .navigationBarTitleDisplayMode(.inline) + .onAppear { + viewModel.loadIfNeeded(coordinator: coordinator) + } .toolbar { + ToolbarItem(placement: .principal) { + Text(NSLocalizedString("Trends & Insights", comment: "LoopInsights trends title")) + .font(.headline) + .foregroundColor(.white) + } ToolbarItem(placement: .navigationBarLeading) { Button(action: { dismiss() }) { Image(systemName: "xmark.circle.fill") @@ -56,9 +63,6 @@ struct LoopInsights_TrendsInsightsView: View { } } } - .onAppear { - viewModel.loadIfNeeded(coordinator: coordinator) - } .sheet(isPresented: $showingChat) { NavigationView { LoopInsights_ChatView( @@ -238,12 +242,12 @@ struct LoopInsights_TrendsInsightsView: View { .foregroundColor(.purple.opacity(0.8)) Text(NSLocalizedString("Summary", comment: "LoopInsights trends summary header")) .font(.subheadline.weight(.semibold)) - .foregroundColor(.white.opacity(0.9)) + .foregroundColor(.white) } Text(summary) .font(.subheadline) - .foregroundColor(.white.opacity(0.78)) + .foregroundColor(.white) .textSelection(.enabled) .fixedSize(horizontal: false, vertical: true) } @@ -262,7 +266,7 @@ struct LoopInsights_TrendsInsightsView: View { .foregroundColor(.yellow.opacity(0.8)) Text(NSLocalizedString("Highlights", comment: "LoopInsights trends highlights header")) .font(.subheadline.weight(.semibold)) - .foregroundColor(.white.opacity(0.9)) + .foregroundColor(.white) } ForEach(highlights.indices, id: \.self) { index in @@ -271,7 +275,7 @@ struct LoopInsights_TrendsInsightsView: View { .foregroundColor(.purple.opacity(0.8)) Text(highlights[index]) .font(.subheadline) - .foregroundColor(.white.opacity(0.78)) + .foregroundColor(.white) .fixedSize(horizontal: false, vertical: true) } } @@ -354,18 +358,18 @@ struct LoopInsights_TrendsInsightsView: View { .foregroundColor(.purple.opacity(0.8)) Text(title) .font(.subheadline.weight(.semibold)) - .foregroundColor(.white.opacity(0.9)) + .foregroundColor(.white) } ForEach(rows.indices, id: \.self) { index in HStack { Text(rows[index].0) .font(.caption) - .foregroundColor(.white.opacity(0.55)) + .foregroundColor(.white.opacity(0.7)) Spacer() Text(rows[index].1) .font(.caption.weight(.medium)) - .foregroundColor(.white.opacity(0.85)) + .foregroundColor(.white) } if index < rows.count - 1 { Divider() From c03d6c05136997b8f3a4a6c34fb1aaa0b2764b3e Mon Sep 17 00:00:00 2001 From: Taylor Date: Sat, 14 Feb 2026 08:48:36 -0800 Subject: [PATCH 11/14] Updated readme Added steps for creating and using test data in developer mode for demos and feature functionality testing. --- .../LoopInsights/LoopInsights_README.md | 152 ++++++++++++++++++ .../LoopInsights_SettingsView.swift | 2 +- Loop/Views/SettingsView.swift | 2 +- 3 files changed, 154 insertions(+), 2 deletions(-) diff --git a/Documentation/LoopInsights/LoopInsights_README.md b/Documentation/LoopInsights/LoopInsights_README.md index 02bae41ea6..ddcaca0209 100644 --- a/Documentation/LoopInsights/LoopInsights_README.md +++ b/Documentation/LoopInsights/LoopInsights_README.md @@ -116,6 +116,158 @@ API key is stored in iOS Keychain and shared with FoodFinder (same Keychain entr - User always sees disclaimer when applying changes - Feature flag defaults to OFF +## Test Data + +LoopInsights includes a **Test Data mode** (developer-only) that loads JSON fixture files instead of reading from Loop's live data stores. This is useful for development, demos, and for users who want to evaluate the feature without waiting for real data accumulation. + +### How Test Data Works + +`LoopInsights_TestDataProvider` looks for fixture files in two locations (checked in order): + +1. **App Documents** — `Documents/LoopInsights/` on the device (no rebuild needed) +2. **App Bundle** — `Resources/LoopInsights/TestData/` (requires rebuild) + +Expected fixture filenames: +- `tidepool_glucose_samples.json` — CGM glucose readings (`StoredGlucoseSample` format) +- `tidepool_dose_entries.json` — Insulin deliveries (`DoseEntry` format) +- `tidepool_carb_entries.json` — Carb entries (`StoredCarbEntry` format) +- `tidepool_therapy_settings.json` — Therapy settings (optional, custom format) + +### Enabling Test Data Mode + +1. Open **Settings > LoopInsights** +2. Long-press the LoopInsights header **3 times** to unlock Developer Mode +3. Scroll to the Developer section +4. Toggle **"Use Test Data Fixtures"** on +5. Open the Dashboard and run an analysis + +### Generating Test Data from Tidepool + +A Python script (`pull_tidepool_data.py`) is included to pull real diabetes data from a Tidepool account and convert it into the fixture format LoopInsights expects. + +**Prerequisites:** +```bash +pip3 install requests +``` + +**Usage:** +```bash +# Pull 14 days of data (default) +python3 pull_tidepool_data.py --email **YOUR_TIDEPOOL_EMAIL** --password **YOUR_TIDEPOOL_PASSWORD** + +# Pull 90 days for longer-range analysis testing +python3 pull_tidepool_data.py --email **YOUR_EMAIL** --password **YOUR_PASSWORD** --days 90 + +# Pull data and auto-copy to the iOS Simulator's Documents/LoopInsights/ +python3 pull_tidepool_data.py --email **YOUR_EMAIL** --password **YOUR_PASSWORD** --simulator + +# Specify a custom output directory +python3 pull_tidepool_data.py --email **YOUR_EMAIL** --password **YOUR_PASSWORD** --output /path/to/output +``` + +**What the script does:** +1. Authenticates with the Tidepool API (`api.tidepool.org`) +2. Pulls CGM glucose (cbg), insulin doses (basal + bolus), carb entries (wizard + food), and pump settings +3. Converts Tidepool's data format to Loop's native JSON format +4. Saves four fixture files to `LoopWorkspace/Loop/Loop/Resources/LoopInsights/TestData/` +5. With `--simulator`, copies the fixtures into the most recent iOS Simulator's `Documents/LoopInsights/` directory + +**After running the script:** +1. Build and run Loop in the Simulator (or on-device if you placed files in the app's Documents) +2. Enable LoopInsights in Settings +3. Unlock Developer Mode (5x long-press on header) +4. Enable "Use Test Data Fixtures" +5. Open the Dashboard and tap Analyze + +### Creating Test Data Manually + +If you don't have a Tidepool account, you can create fixture files manually. Each file is a JSON array. + +**Glucose samples** (`tidepool_glucose_samples.json`): +```json +[ + { + "startDate": "2026-02-01T08:00:00Z", + "quantity": 120.0, + "provenanceIdentifier": "com.test", + "syncIdentifier": "sample-001", + "syncVersion": 1, + "isDisplayOnly": false, + "wasUserEntered": false + } +] +``` + +**Dose entries** (`tidepool_dose_entries.json`): +```json +[ + { + "type": "tempBasal", + "startDate": "2026-02-01T08:00:00Z", + "endDate": "2026-02-01T08:30:00Z", + "value": 0.85, + "unit": "U/hour", + "automatic": true + }, + { + "type": "bolus", + "startDate": "2026-02-01T12:00:00Z", + "endDate": "2026-02-01T12:01:00Z", + "value": 3.5, + "unit": "U", + "isMutable": false + } +] +``` + +**Carb entries** (`tidepool_carb_entries.json`): +```json +[ + { + "startDate": "2026-02-01T12:00:00Z", + "quantity": 45, + "absorptionTime": 10800, + "syncIdentifier": "carb-001", + "syncVersion": 1, + "createdByCurrentApp": false + } +] +``` + +**Therapy settings** (`tidepool_therapy_settings.json`, optional): +```json +{ + "basalRateSchedule": [ + {"startTime": 0, "value": 0.8}, + {"startTime": 21600, "value": 0.9}, + {"startTime": 43200, "value": 0.75} + ], + "insulinSensitivitySchedule": [ + {"startTime": 0, "value": 45}, + {"startTime": 21600, "value": 40}, + {"startTime": 43200, "value": 50} + ], + "carbRatioSchedule": [ + {"startTime": 0, "value": 10}, + {"startTime": 21600, "value": 8}, + {"startTime": 43200, "value": 12} + ] +} +``` + +> **Note:** `startTime` values are in seconds from midnight (e.g., 21600 = 6:00 AM, 43200 = 12:00 PM). + +### Loading Fixtures on a Physical Device + +To load test data on a physical device without rebuilding: + +1. Connect the device to your Mac +2. Open Finder > select the device > Files tab +3. Drag-and-drop the four JSON files into the **Loop** app's Documents folder, inside a `LoopInsights` subfolder +4. Enable Test Data mode in LoopInsights Developer settings + +The `TestDataProvider` checks `Documents/LoopInsights/` first, so user-provided files always take priority over bundled fixtures. + ## Portability - All code in `LoopInsights/` subdirectories with `LoopInsights_` prefix diff --git a/Loop/Views/LoopInsights/LoopInsights_SettingsView.swift b/Loop/Views/LoopInsights/LoopInsights_SettingsView.swift index 436f00e9d2..61704cdf7d 100644 --- a/Loop/Views/LoopInsights/LoopInsights_SettingsView.swift +++ b/Loop/Views/LoopInsights/LoopInsights_SettingsView.swift @@ -189,7 +189,7 @@ struct LoopInsights_SettingsView: View { VStack(alignment: .leading, spacing: 12) { HStack(spacing: 6) { Image(systemName: "brain.head.profile") - .foregroundColor(.accentColor) + .foregroundColor(Color(red: 26/255, green: 138/255, blue: 158/255)) Text("LOOPINSIGHTS") .font(.caption) .fontWeight(.semibold) diff --git a/Loop/Views/SettingsView.swift b/Loop/Views/SettingsView.swift index b9bfe6103a..d4ab105f91 100644 --- a/Loop/Views/SettingsView.swift +++ b/Loop/Views/SettingsView.swift @@ -387,7 +387,7 @@ extension SettingsView { imageView: Image(systemName: "brain.head.profile") .resizable() .aspectRatio(contentMode: .fit) - .foregroundColor(.accentColor) + .foregroundColor(Color(red: 26/255, green: 138/255, blue: 158/255)) .frame(width: 30), label: NSLocalizedString("LoopInsights", comment: "LoopInsights settings button"), descriptiveText: NSLocalizedString("AI-powered therapy settings analysis", comment: "LoopInsights settings descriptive text")) From 195f69751469bbf7c831bb4b0f29a5337a152b92 Mon Sep 17 00:00:00 2001 From: Taylor Date: Sun, 15 Feb 2026 14:41:05 -0800 Subject: [PATCH 12/14] Add safety guardrails and data-first AI prompt philosophy MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Safety guardrails (3 layers of defense against dangerous therapy values): - LoopInsights_SafetyGuardrails struct with clinical bounds mirroring LoopKit (CR 4-28 recommended/2-150 absolute, ISF 16-400/10-500, Basal 0.05-10/0.05-30) - Post-parse validation rejects values outside absolute bounds and >25% changes - AI prompt now includes absolute bounds with clamping instructions - confirmApply() hard-blocks absolute violations - applyEditedSuggestion() validates edited blocks against absolute bounds - autoApplySuggestion() blocks anything outside recommended range (stricter) - SuggestionDetailView shows orange warning banner and color-coded values - DashboardView alert changes to "Safety Warning" with specific warnings - Suggestion cards show orange triangle badge for guardrail warnings Data-first AI prompts (all 4 AI interaction points): - Chat, Analysis, Goals/Patterns, and Trends prompts now require every answer to cite the user's specific numbers — no generic diabetes advice - Added "#1 RULE" blocks emphasizing real data over textbook answers Co-Authored-By: Claude Opus 4.6 --- .../LoopInsights/LoopInsights_Models.swift | 131 ++++++++++++++++++ .../LoopInsights_AIAnalysis.swift | 60 +++++++- .../LoopInsights_ChatViewModel.swift | 37 +++-- .../LoopInsights_DashboardViewModel.swift | 28 ++++ .../LoopInsights_DashboardView.swift | 66 +++++++-- .../LoopInsights/LoopInsights_GoalsView.swift | 22 ++- .../LoopInsights_SuggestionDetailView.swift | 56 +++++++- .../LoopInsights_TrendsInsightsView.swift | 24 +++- 8 files changed, 385 insertions(+), 39 deletions(-) diff --git a/Loop/Models/LoopInsights/LoopInsights_Models.swift b/Loop/Models/LoopInsights/LoopInsights_Models.swift index 2128c73579..5a66af3e60 100644 --- a/Loop/Models/LoopInsights/LoopInsights_Models.swift +++ b/Loop/Models/LoopInsights/LoopInsights_Models.swift @@ -68,6 +68,112 @@ enum LoopInsightsSettingStatus { case hasSuggestions // Orange — has pending suggestions } +// MARK: - Safety Guardrails + +/// Absolute and recommended clinical bounds for therapy settings. +/// Mirrors LoopKit's `Guardrail+Settings.swift` as self-contained constants +/// so LoopInsights can validate without importing LoopKit guardrail types. +struct LoopInsights_SafetyGuardrails { + + /// Classification of a value relative to guardrail bounds + enum Classification { + case withinRecommended + case belowRecommended + case aboveRecommended + case belowAbsolute + case aboveAbsolute + } + + // -- Carb Ratio (g/U) -- + static let crRecommendedMin: Double = 4.0 + static let crRecommendedMax: Double = 28.0 + static let crAbsoluteMin: Double = 2.0 + static let crAbsoluteMax: Double = 150.0 + + // -- Insulin Sensitivity Factor (mg/dL per U) -- + static let isfRecommendedMin: Double = 16.0 + static let isfRecommendedMax: Double = 400.0 + static let isfAbsoluteMin: Double = 10.0 + static let isfAbsoluteMax: Double = 500.0 + + // -- Basal Rate (U/hr) -- + static let basalRecommendedMin: Double = 0.05 + static let basalRecommendedMax: Double = 10.0 + static let basalAbsoluteMin: Double = 0.05 + static let basalAbsoluteMax: Double = 30.0 + + /// Maximum allowed percentage change per analysis step (backstop) + static let maxChangePercent: Double = 25.0 + + /// Classify a value against the guardrail bounds for a setting type + static func classify(value: Double, settingType: LoopInsightsSettingType) -> Classification { + let (recMin, recMax, absMin, absMax) = bounds(for: settingType) + + if value < absMin { return .belowAbsolute } + if value > absMax { return .aboveAbsolute } + if value < recMin { return .belowRecommended } + if value > recMax { return .aboveRecommended } + return .withinRecommended + } + + /// Human-readable warning string, or nil if value is within recommended range + static func warningMessage(value: Double, settingType: LoopInsightsSettingType) -> String? { + let classification = classify(value: value, settingType: settingType) + let (recMin, recMax, absMin, absMax) = bounds(for: settingType) + let unit = settingType.unitDescription + let name = settingType.displayName + + switch classification { + case .withinRecommended: + return nil + case .belowAbsolute: + return String( + format: NSLocalizedString( + "%@ value %.1f %@ is below the absolute minimum (%.1f %@). This value cannot be applied.", + comment: "LoopInsights guardrail: below absolute" + ), + name, value, unit, absMin, unit + ) + case .aboveAbsolute: + return String( + format: NSLocalizedString( + "%@ value %.1f %@ exceeds the absolute maximum (%.1f %@). This value cannot be applied.", + comment: "LoopInsights guardrail: above absolute" + ), + name, value, unit, absMax, unit + ) + case .belowRecommended: + return String( + format: NSLocalizedString( + "%@ value %.1f %@ is below the recommended minimum (%.1f %@). Consult your healthcare provider before applying.", + comment: "LoopInsights guardrail: below recommended" + ), + name, value, unit, recMin, unit + ) + case .aboveRecommended: + return String( + format: NSLocalizedString( + "%@ value %.1f %@ exceeds the recommended maximum (%.1f %@). Consult your healthcare provider before applying.", + comment: "LoopInsights guardrail: above recommended" + ), + name, value, unit, recMax, unit + ) + } + } + + /// Returns (recommendedMin, recommendedMax, absoluteMin, absoluteMax) for a setting type + private static func bounds(for settingType: LoopInsightsSettingType) -> (Double, Double, Double, Double) { + switch settingType { + case .carbRatio: + return (crRecommendedMin, crRecommendedMax, crAbsoluteMin, crAbsoluteMax) + case .insulinSensitivity: + return (isfRecommendedMin, isfRecommendedMax, isfAbsoluteMin, isfAbsoluteMax) + case .basalRate: + return (basalRecommendedMin, basalRecommendedMax, basalAbsoluteMin, basalAbsoluteMax) + } + } +} + // MARK: - Detected Pattern /// A glucose/insulin pattern detected from aggregated data @@ -577,6 +683,31 @@ struct LoopInsightsSuggestion: Codable, Identifiable, Equatable { } } + // MARK: - Guardrail Computed Properties + + /// Warning strings for any proposed values outside recommended bounds + var guardrailWarnings: [String] { + timeBlocks.compactMap { block in + LoopInsights_SafetyGuardrails.warningMessage(value: block.proposedValue, settingType: settingType) + } + } + + /// True if any proposed value falls outside the recommended range + var hasGuardrailWarning: Bool { + timeBlocks.contains { block in + let c = LoopInsights_SafetyGuardrails.classify(value: block.proposedValue, settingType: settingType) + return c != .withinRecommended + } + } + + /// True if any proposed value falls outside the absolute bounds (hard block) + var hasAbsoluteViolation: Bool { + timeBlocks.contains { block in + let c = LoopInsights_SafetyGuardrails.classify(value: block.proposedValue, settingType: settingType) + return c == .belowAbsolute || c == .aboveAbsolute + } + } + static func == (lhs: LoopInsightsSuggestion, rhs: LoopInsightsSuggestion) -> Bool { return lhs.id == rhs.id } diff --git a/Loop/Services/LoopInsights/LoopInsights_AIAnalysis.swift b/Loop/Services/LoopInsights/LoopInsights_AIAnalysis.swift index c094d215d9..e1881e27c4 100644 --- a/Loop/Services/LoopInsights/LoopInsights_AIAnalysis.swift +++ b/Loop/Services/LoopInsights/LoopInsights_AIAnalysis.swift @@ -66,10 +66,12 @@ final class LoopInsights_AIAnalysis { \(personality.promptInstruction) - YOUR MANDATE: Be analytically rigorous. Every recommendation must be backed by specific numbers \ - from the data. If the data does not justify a change, return zero suggestions — that is the \ - correct response when settings are working. You are not here to impress or people-please. \ - You are here to find real problems and propose precise fixes. + YOUR MANDATE: Be analytically rigorous. You have this person's REAL data — their actual \ + glucose readings, insulin delivery, carb logs, and pump settings. Every recommendation must \ + cite specific numbers from THEIR data, not generic clinical wisdom. If the data does not \ + justify a change, return zero suggestions — that is the correct response when settings are \ + working. You are not here to impress or people-please. You are here to find real problems \ + in THIS person's data and propose precise fixes grounded in THEIR numbers. CLINICAL REASONING FRAMEWORK — How AID settings interact: - BASAL RATE: Controls glucose during fasting periods. Analyze overnight (12AM-6AM) and \ @@ -99,7 +101,7 @@ final class LoopInsights_AIAnalysis { always means basal rate is too low. >70% basal may mean basal is too high. 4. GLUCOSE TRENDS: Look at the slope of hourly averages. A consistent rise over 3+ hours \ during fasting = basal too low. A consistent drop = basal too high. - 5. HIGH TIR DOES NOT MEAN PERFECT SETTINGS: If TIR is 90% but the algorithm is issuing 7 \ + 5. HIGH TIR DOES NOT MEAN PERFECT SETTINGS: If TIR is 90% but the algorithm is issuing 10 \ corrections/day to achieve that, the settings are suboptimal — the algorithm is doing \ heavy lifting to compensate. Better settings = same TIR with fewer corrections. @@ -128,10 +130,18 @@ final class LoopInsights_AIAnalysis { Only skip recommendations when TIR is good AND corrections are low AND basal/bolus is balanced. SAFETY RULES: - 1. Never suggest changes larger than 20% from current values. + 1. Never suggest changes larger than 20% from current values in a single step. 2. Conservative changes only — under-adjust rather than over-adjust. 3. If time below range is >4%, prioritize safety (raise ISF or lower basal before anything else). 4. Suggestions are advisory only — the user and their healthcare provider make final decisions. + 5. ABSOLUTE CLINICAL BOUNDS — proposed values MUST stay within these ranges. Clamp to bound if needed: + - Carb Ratio: 2.0–150.0 g/U (recommended 4.0–28.0) + - ISF: 10.0–500.0 mg/dL/U (recommended 16.0–400.0) + - Basal Rate: 0.05–30.0 U/hr (recommended 0.05–10.0) + Values outside the recommended range should only be proposed with LOW confidence and explicit justification. + 6. CUMULATIVE CHANGE AWARENESS: If recent settings changes are listed above, do NOT stack \ + additional changes on top. Settings changes need time (3-7 days minimum) to show effect in the data. \ + If the data predates a recent change, recommend waiting for new data before adjusting further. BIOMETRIC CONTEXT — When biometric data is provided: - HEART RATE: Elevated resting HR or HR spikes can indicate stress, illness, caffeine, or \ @@ -485,10 +495,46 @@ final class LoopInsights_AIAnalysis { guard !timeBlocks.isEmpty else { continue } + // Post-parse safety validation: reject blocks outside absolute bounds + // and enforce max change percentage as a code-level backstop + let validatedBlocks = timeBlocks.filter { block in + let classification = LoopInsights_SafetyGuardrails.classify( + value: block.proposedValue, settingType: settingType + ) + + // Hard reject: values outside absolute bounds + if classification == .belowAbsolute || classification == .aboveAbsolute { + LoopInsights_FeatureFlags.log.error( + "Guardrail REJECTED: \(settingType.displayName) proposed \(block.proposedValue) at \(block.startTimeFormatted) — outside absolute bounds" + ) + return false + } + + // Warn (but pass through): values outside recommended bounds + if classification != .withinRecommended { + LoopInsights_FeatureFlags.log.default( + "Guardrail WARNING: \(settingType.displayName) proposed \(block.proposedValue) at \(block.startTimeFormatted) — outside recommended range" + ) + } + + // Backstop: reject blocks with >25% change from current + let changePercent = abs(block.changePercent) + if changePercent > LoopInsights_SafetyGuardrails.maxChangePercent { + LoopInsights_FeatureFlags.log.error( + "Guardrail REJECTED: \(settingType.displayName) proposed \(String(format: "%.1f", block.proposedValue)) at \(block.startTimeFormatted) — \(String(format: "%.0f", changePercent))%% change exceeds \(String(format: "%.0f", LoopInsights_SafetyGuardrails.maxChangePercent))%% limit" + ) + return false + } + + return true + } + + guard !validatedBlocks.isEmpty else { continue } + let suggestion = LoopInsightsSuggestion( id: UUID(), settingType: settingType, - timeBlocks: timeBlocks, + timeBlocks: validatedBlocks, reasoning: reasoning, confidence: confidence, analysisPeriod: period, diff --git a/Loop/View Models/LoopInsights/LoopInsights_ChatViewModel.swift b/Loop/View Models/LoopInsights/LoopInsights_ChatViewModel.swift index f278a6d149..29fe4fc3de 100644 --- a/Loop/View Models/LoopInsights/LoopInsights_ChatViewModel.swift +++ b/Loop/View Models/LoopInsights/LoopInsights_ChatViewModel.swift @@ -115,20 +115,41 @@ final class LoopInsights_ChatViewModel: ObservableObject { return """ You are an expert diabetes and automated insulin delivery (AID) advisor embedded \ in the Loop app. The user is wearing an insulin pump managed by Loop's closed-loop \ - algorithm. You have access to their real therapy settings and recent glucose/insulin/carb \ - statistics provided below. + algorithm. You have access to their REAL therapy settings, glucose data, insulin \ + delivery data, carb logs, and biometrics — all provided below. This is not hypothetical. \ + These are this specific person's actual numbers from their actual pump and CGM. \(personality.promptInstruction) + YOUR #1 RULE — ALWAYS ANSWER FROM THEIR DATA: + The entire value of this conversation is that you can see this person's real numbers. \ + Every answer you give MUST reference their specific data. Do NOT give generic diabetes \ + advice that could apply to anyone. The user can Google generic advice — they came here \ + because you can see their TIR, their hourly glucose patterns, their basal/bolus split, \ + their correction counts, their actual settings schedules. USE THEM. + + When the user asks "why am I high overnight?", don't explain what causes overnight highs \ + in general — look at THEIR hourly averages from 12AM-6AM, THEIR basal rate during those \ + hours, THEIR overnight trend, and tell them what's happening in THEIR data specifically. + + When they ask "should I change my carb ratio?", don't explain what a carb ratio does — \ + look at THEIR post-meal glucose patterns, THEIR current CR schedule, THEIR carb stats, \ + and give them a specific assessment with specific numbers. + GUIDELINES: - - Answer questions about diabetes management, glucose patterns, therapy settings, and Loop. - - Reference the user's actual data when relevant — don't give generic advice when you have specifics. - - If asked about changing settings, explain the expected impact and always recommend conservative changes. - - You may suggest specific therapy setting adjustments. Frame them clearly as suggestions, not commands. - - Always remind users that significant therapy changes should be discussed with their healthcare provider. + - Ground every answer in their actual data. Cite specific numbers: "Your average glucose \ + between 12AM-6AM is 162 mg/dL with your basal at 0.8 U/hr" — not "overnight highs can \ + be caused by insufficient basal." + - When their data tells a clear story, say so directly. When the data is ambiguous or \ + insufficient, say that too — but explain exactly what's missing and why it matters. + - If asked about settings changes, reference their current value, explain what the data \ + suggests, and propose a specific adjustment with expected impact. + - Frame suggestions as suggestions, not commands. Significant therapy changes should be \ + discussed with their healthcare provider. - Keep responses concise but thorough. Use bullet points for multi-part answers. - - If you don't have enough data to answer confidently, say so. - Never fabricate data or statistics — only reference what's provided in the context below. + - If the data context says "No therapy data currently available", tell the user you don't \ + have their data loaded yet and suggest they run an analysis first. CURRENT DATA CONTEXT: \(therapyContext) diff --git a/Loop/View Models/LoopInsights/LoopInsights_DashboardViewModel.swift b/Loop/View Models/LoopInsights/LoopInsights_DashboardViewModel.swift index 176c816e42..4c6ebb7736 100644 --- a/Loop/View Models/LoopInsights/LoopInsights_DashboardViewModel.swift +++ b/Loop/View Models/LoopInsights/LoopInsights_DashboardViewModel.swift @@ -326,6 +326,14 @@ final class LoopInsights_DashboardViewModel: ObservableObject { func confirmApply() { guard let record = recordToApply else { return } + // Hard block: cannot apply if any proposed value is outside absolute bounds + if record.suggestion.hasAbsoluteViolation { + LoopInsights_FeatureFlags.log.error("confirmApply BLOCKED: suggestion has absolute guardrail violation") + recordToApply = nil + showingApplyConfirmation = false + return + } + let snapshotBefore = try? coordinator.captureCurrentSnapshot() // Write the therapy settings changes to Loop @@ -356,6 +364,20 @@ final class LoopInsights_DashboardViewModel: ObservableObject { func applyEditedSuggestion(editedBlocks: [LoopInsightsTimeBlock]) { guard let record = recordToApply else { return } + // Validate edited blocks against absolute bounds + let settingType = record.suggestion.settingType + for block in editedBlocks { + let classification = LoopInsights_SafetyGuardrails.classify( + value: block.proposedValue, settingType: settingType + ) + if classification == .belowAbsolute || classification == .aboveAbsolute { + LoopInsights_FeatureFlags.log.error("applyEditedSuggestion BLOCKED: edited value \(block.proposedValue) outside absolute bounds for \(settingType.displayName)") + recordToApply = nil + showingPreFillEditor = false + return + } + } + let snapshotBefore = try? coordinator.captureCurrentSnapshot() // Build a modified suggestion with the user's edited values @@ -495,6 +517,12 @@ final class LoopInsights_DashboardViewModel: ObservableObject { // MARK: - Private private func autoApplySuggestion(_ suggestion: LoopInsightsSuggestion) async { + // Stricter for automated changes: block if ANY value is outside recommended range + if suggestion.hasGuardrailWarning { + LoopInsights_FeatureFlags.log.error("autoApply BLOCKED: suggestion for \(suggestion.settingType.displayName) has guardrail warning — requires manual review") + return + } + let snapshotBefore = try? coordinator.captureCurrentSnapshot() coordinator.applyTherapyChanges(suggestion: suggestion) diff --git a/Loop/Views/LoopInsights/LoopInsights_DashboardView.swift b/Loop/Views/LoopInsights/LoopInsights_DashboardView.swift index de175ca0df..1162ccf4ca 100644 --- a/Loop/Views/LoopInsights/LoopInsights_DashboardView.swift +++ b/Loop/Views/LoopInsights/LoopInsights_DashboardView.swift @@ -114,20 +114,23 @@ struct LoopInsights_DashboardView: View { } } .alert( - NSLocalizedString("Apply Suggestion", comment: "LoopInsights apply confirmation title"), + applyAlertTitle, isPresented: showingApplyConfirmationBinding ) { - Button(NSLocalizedString("Apply", comment: "LoopInsights apply button"), role: .destructive) { - viewModel.confirmApply() - } - Button(NSLocalizedString("Cancel", comment: "Cancel button"), role: .cancel) { - viewModel.cancelApply() + if let record = viewModel.recordToApply, record.suggestion.hasAbsoluteViolation { + Button(NSLocalizedString("OK", comment: "OK button"), role: .cancel) { + viewModel.cancelApply() + } + } else { + Button(NSLocalizedString("Apply", comment: "LoopInsights apply button"), role: .destructive) { + viewModel.confirmApply() + } + Button(NSLocalizedString("Cancel", comment: "Cancel button"), role: .cancel) { + viewModel.cancelApply() + } } } message: { - Text(NSLocalizedString( - "This will modify your therapy settings. You are responsible for reviewing and verifying all changes. AI suggestions are advisory and may not be appropriate for your situation. Consult your healthcare provider for significant therapy adjustments.", - comment: "LoopInsights apply disclaimer" - )) + Text(applyAlertMessage) } .sheet(isPresented: showingPreFillEditorBinding) { if let record = viewModel.recordToApply { @@ -489,6 +492,11 @@ struct LoopInsights_DashboardView: View { .fontWeight(.medium) .foregroundColor(.primary) Spacer() + if record.suggestion.hasGuardrailWarning { + Image(systemName: "exclamationmark.triangle.fill") + .foregroundColor(.orange) + .font(.caption) + } confidenceBadge(record.suggestion.confidence) } @@ -571,6 +579,44 @@ struct LoopInsights_DashboardView: View { } } + // MARK: - Guardrail Alert Helpers + + private var applyAlertTitle: String { + guard let record = viewModel.recordToApply else { + return NSLocalizedString("Apply Suggestion", comment: "LoopInsights apply confirmation title") + } + if record.suggestion.hasAbsoluteViolation { + return NSLocalizedString("Cannot Apply", comment: "LoopInsights apply blocked title") + } + if record.suggestion.hasGuardrailWarning { + return NSLocalizedString("Safety Warning", comment: "LoopInsights apply safety warning title") + } + return NSLocalizedString("Apply Suggestion", comment: "LoopInsights apply confirmation title") + } + + private var applyAlertMessage: String { + let disclaimer = NSLocalizedString( + "This will modify your therapy settings. You are responsible for reviewing and verifying all changes. AI suggestions are advisory and may not be appropriate for your situation. Consult your healthcare provider for significant therapy adjustments.", + comment: "LoopInsights apply disclaimer" + ) + guard let record = viewModel.recordToApply else { return disclaimer } + + if record.suggestion.hasAbsoluteViolation { + let warnings = record.suggestion.guardrailWarnings.joined(separator: "\n") + return warnings + "\n\n" + NSLocalizedString( + "One or more proposed values are outside safe clinical bounds. This suggestion cannot be applied.", + comment: "LoopInsights apply absolute block message" + ) + } + + if record.suggestion.hasGuardrailWarning { + let warnings = record.suggestion.guardrailWarnings.joined(separator: "\n") + return warnings + "\n\n" + disclaimer + } + + return disclaimer + } + private func settingStatusColor(_ status: LoopInsightsSettingStatus) -> Color { switch status { case .notAnalyzed: return .gray diff --git a/Loop/Views/LoopInsights/LoopInsights_GoalsView.swift b/Loop/Views/LoopInsights/LoopInsights_GoalsView.swift index a1e861a11c..ee7391c386 100644 --- a/Loop/Views/LoopInsights/LoopInsights_GoalsView.swift +++ b/Loop/Views/LoopInsights/LoopInsights_GoalsView.swift @@ -621,26 +621,36 @@ private final class GoalsViewModel: ObservableObject { let personality = LoopInsights_FeatureFlags.aiPersonality return """ - You are an expert diabetes advisor analyzing 30 days of Loop AID data to discover patterns. \ + You are an expert diabetes advisor analyzing 30 days of this specific person's Loop AID data \ + to discover patterns. You have their REAL glucose readings, insulin delivery, carb logs, \ + pump settings, and biometrics. This is not hypothetical — these are actual numbers from \ + their actual pump and CGM. \(personality.promptInstruction) + YOUR #1 RULE — ALWAYS GROUND IN THEIR DATA: + Every pattern you identify must cite specific numbers from their data. Do NOT describe \ + generic diabetes patterns — describe what is actually happening in THIS person's data. \ + "Your average glucose between 12AM-6AM is 172 mg/dL while your basal rate is 0.8 U/hr" — \ + not "overnight highs can indicate insufficient basal." If their data doesn't show a pattern, \ + don't invent one. + RESPONSE FORMAT — you MUST use exactly this structure: PATTERNS: [TYPE] Pattern title - Description of the pattern (1-2 sentences). Include specific numbers. + Description of the pattern (1-2 sentences) citing their specific numbers. SEVERITY: high/medium/low [TYPE] Another pattern title - Description. + Description citing their specific numbers. SEVERITY: high/medium/low (List 3-6 patterns. Types can be: Overnight, Dawn, Post-Meal, Exercise, Weekend, Weekday, \ Sick Day, Negative Basal, Variability, Insulin Resistance, or any descriptive type.) TIPS: - GOAL_INDEX:0 One-line actionable tip for the first goal - GOAL_INDEX:1 One-line actionable tip for the second goal + GOAL_INDEX:0 One-line actionable tip for the first goal, referencing their data + GOAL_INDEX:1 One-line actionable tip for the second goal, referencing their data (One tip per active goal. Skip if no goals.) SPECIAL PATTERN DETECTION: @@ -651,7 +661,7 @@ private final class GoalsViewModel: ObservableObject { frequent suspensions. - Weekend vs weekday: Compare timing patterns in carb data and glucose patterns. - Exercise correlation: Look for post-activity lows followed by rebounds. - - Goal-aware tips: Reference the user's active goals in suggestions. + - Goal-aware tips: Reference the user's active goals AND their actual metrics in suggestions. """ } diff --git a/Loop/Views/LoopInsights/LoopInsights_SuggestionDetailView.swift b/Loop/Views/LoopInsights/LoopInsights_SuggestionDetailView.swift index 52190bbfd1..349b7ecc78 100644 --- a/Loop/Views/LoopInsights/LoopInsights_SuggestionDetailView.swift +++ b/Loop/Views/LoopInsights/LoopInsights_SuggestionDetailView.swift @@ -23,6 +23,9 @@ struct LoopInsights_SuggestionDetailView: View { List { headerSection reasoningSection + if record.suggestion.hasGuardrailWarning { + guardrailWarningSection + } timeBlocksSection if record.status == .pending { actionsSection @@ -109,7 +112,7 @@ struct LoopInsights_SuggestionDetailView: View { Text(String(format: "%.1f %@", block.proposedValue, record.suggestion.settingType.unitDescription)) .font(.body) .fontWeight(.bold) - .foregroundColor(block.proposedValue > block.currentValue ? .orange : .blue) + .foregroundColor(proposedValueColor(for: block)) } } @@ -227,8 +230,59 @@ struct LoopInsights_SuggestionDetailView: View { } } + // MARK: - Guardrail Warning + + private var guardrailWarningSection: some View { + Section { + VStack(alignment: .leading, spacing: 8) { + HStack(spacing: 8) { + Image(systemName: "exclamationmark.triangle.fill") + .foregroundColor(.orange) + .font(.title3) + Text(NSLocalizedString("Safety Warning", comment: "LoopInsights guardrail warning title")) + .font(.subheadline) + .fontWeight(.bold) + .foregroundColor(.orange) + } + + ForEach(record.suggestion.guardrailWarnings, id: \.self) { warning in + Text(warning) + .font(.caption) + .foregroundColor(.secondary) + } + + if record.suggestion.hasAbsoluteViolation { + Text(NSLocalizedString("One or more values are outside safe clinical bounds and cannot be applied.", comment: "LoopInsights guardrail absolute block message")) + .font(.caption) + .fontWeight(.medium) + .foregroundColor(.red) + } else { + Text(NSLocalizedString("These values are outside the typical recommended range. Consult your healthcare provider before applying.", comment: "LoopInsights guardrail consult message")) + .font(.caption) + .foregroundColor(.secondary) + } + } + .padding(.vertical, 4) + } + } + // MARK: - Helpers + /// Color for a proposed value based on guardrail classification + private func proposedValueColor(for block: LoopInsightsTimeBlock) -> Color { + let classification = LoopInsights_SafetyGuardrails.classify( + value: block.proposedValue, settingType: record.suggestion.settingType + ) + switch classification { + case .belowAbsolute, .aboveAbsolute: + return .red + case .belowRecommended, .aboveRecommended: + return .orange + case .withinRecommended: + return block.proposedValue > block.currentValue ? .orange : .blue + } + } + private var confidenceBadge: some View { Text(record.suggestion.confidence.displayName) .font(.caption2) diff --git a/Loop/Views/LoopInsights/LoopInsights_TrendsInsightsView.swift b/Loop/Views/LoopInsights/LoopInsights_TrendsInsightsView.swift index a121d768c0..16d512fa87 100644 --- a/Loop/Views/LoopInsights/LoopInsights_TrendsInsightsView.swift +++ b/Loop/Views/LoopInsights/LoopInsights_TrendsInsightsView.swift @@ -659,21 +659,31 @@ private final class TrendsViewModel: ObservableObject { let personality = LoopInsights_FeatureFlags.aiPersonality return """ - You are an expert diabetes advisor providing a trends summary for a Loop AID user. \ + You are an expert diabetes advisor providing a trends summary for a specific Loop AID user. \ + You have their REAL glucose readings, insulin delivery, carb logs, pump settings, and \ + biometrics. These are actual numbers from their actual pump and CGM — not hypothetical. \(personality.promptInstruction) + YOUR #1 RULE — ALWAYS GROUND IN THEIR DATA: + Every sentence you write must reference this person's specific numbers. Do NOT write \ + generic summaries like "maintaining good control" — write "Your TIR is **87%** with an \ + average glucose of **142 mg/dL** and only **2.1%** time below range." The user can read \ + generic diabetes content anywhere — the value here is that you're interpreting THEIR data. + RESPONSE FORMAT — you MUST use exactly this structure: SUMMARY: - Write 2-4 sentences summarizing the user's glucose control for this period. \ - Mention TIR, average glucose, and any notable patterns. Use **bold** for key numbers. + Write 2-4 sentences summarizing this person's glucose control for this period, citing \ + their specific TIR, average glucose, time below/above range, and any notable patterns. \ + Use **bold** for key numbers. HIGHLIGHTS: - - First key observation (one sentence) - - Second key observation (one sentence) - - Third key observation (one sentence) + - First key observation citing their specific data (one sentence) + - Second key observation citing their specific data (one sentence) + - Third key observation citing their specific data (one sentence) - Keep it concise and actionable. Reference actual numbers from the data. + Keep it concise and actionable. Every highlight must include at least one specific number \ + from their data. """ } From 02f475fca97b6d4cf40a28090317a64fbb5366fe Mon Sep 17 00:00:00 2001 From: Taylor Date: Sun, 15 Feb 2026 15:18:20 -0800 Subject: [PATCH 13/14] =?UTF-8?q?Fix=20Logger=20member:=20.default()=20?= =?UTF-8?q?=E2=86=92=20.warning()=20in=20guardrail=20validation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.6 --- Loop/Services/LoopInsights/LoopInsights_AIAnalysis.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Loop/Services/LoopInsights/LoopInsights_AIAnalysis.swift b/Loop/Services/LoopInsights/LoopInsights_AIAnalysis.swift index e1881e27c4..6ae69d6fb5 100644 --- a/Loop/Services/LoopInsights/LoopInsights_AIAnalysis.swift +++ b/Loop/Services/LoopInsights/LoopInsights_AIAnalysis.swift @@ -512,7 +512,7 @@ final class LoopInsights_AIAnalysis { // Warn (but pass through): values outside recommended bounds if classification != .withinRecommended { - LoopInsights_FeatureFlags.log.default( + LoopInsights_FeatureFlags.log.warning( "Guardrail WARNING: \(settingType.displayName) proposed \(block.proposedValue) at \(block.startTimeFormatted) — outside recommended range" ) } From 4957511466032aa7b67b7303b636415a22101bed Mon Sep 17 00:00:00 2001 From: Taylor Date: Mon, 16 Feb 2026 10:25:10 -0800 Subject: [PATCH 14/14] Add insulin type to LoopInsights AI analysis Passes the user's insulin type (e.g. Fiasp, Novolog) into the therapy snapshot and AI prompts so the model can distinguish timing issues from dosing issues based on pharmacokinetics. --- .../LoopInsights/LoopInsights_Models.swift | 1 + .../LoopInsights_AIAnalysis.swift | 19 +++++++++++++++++++ .../LoopInsights_DataAggregator.swift | 3 +++ 3 files changed, 23 insertions(+) diff --git a/Loop/Models/LoopInsights/LoopInsights_Models.swift b/Loop/Models/LoopInsights/LoopInsights_Models.swift index 5a66af3e60..5836cc0d8d 100644 --- a/Loop/Models/LoopInsights/LoopInsights_Models.swift +++ b/Loop/Models/LoopInsights/LoopInsights_Models.swift @@ -720,6 +720,7 @@ struct LoopInsightsTherapySnapshot: Codable { let basalRateItems: [LoopInsightsScheduleItem] let insulinSensitivityItems: [LoopInsightsScheduleItem] let carbRatioItems: [LoopInsightsScheduleItem] + let insulinTypeName: String? let capturedAt: Date struct LoopInsightsScheduleItem: Codable, Identifiable { diff --git a/Loop/Services/LoopInsights/LoopInsights_AIAnalysis.swift b/Loop/Services/LoopInsights/LoopInsights_AIAnalysis.swift index 6ae69d6fb5..c780c69b9f 100644 --- a/Loop/Services/LoopInsights/LoopInsights_AIAnalysis.swift +++ b/Loop/Services/LoopInsights/LoopInsights_AIAnalysis.swift @@ -179,6 +179,20 @@ final class LoopInsights_AIAnalysis { - CAFFEINE: Active caffeine >100mg can increase insulin resistance and glucose variability. \ Factor caffeine timing into your assessment of glucose patterns, especially morning highs. + INSULIN TYPE CONTEXT — When insulin type data is provided: + - RAPID-ACTING (Novolog/Humalog/Apidra): Onset ~15 min, peak activity ~75 min, duration ~6 hrs. \ + Standard absorption profile. Post-meal glucose should begin dropping within 60-90 min of bolus. \ + Pre-bolusing 15-20 min before meals is effective. Corrections take 2-3 hrs to fully resolve. + - ULTRA-RAPID (Fiasp/Lyumjev): Onset ~2-5 min, peak activity ~55 min, duration ~6 hrs. \ + Faster onset and earlier peak means: \ + Post-meal spikes should be smaller — if spike is still large, CR is more likely the issue (not timing). \ + Corrections resolve faster (~1.5-2 hrs) — if glucose stays high after correction, ISF is likely too high. \ + Less tail stacking risk — basal adjustments can be slightly more aggressive per time block. \ + Pre-bolusing is less critical — a large spike despite on-time bolusing strongly suggests weak CR. + - Use insulin type to distinguish TIMING issues from DOSING issues. A Novolog user with post-meal \ + spikes that resolve by hour 3 may need more pre-bolus time, not a CR change. A Fiasp user with \ + the same pattern likely needs a CR adjustment since Fiasp should already be active. + RESPONSE FORMAT: Respond with valid JSON in this exact structure: { @@ -259,6 +273,11 @@ final class LoopInsights_AIAnalysis { prompt += "- \(formatTime(item.startTime)): \(String(format: "%.1f", item.value)) g/U\n" } + if let insulinType = settings.insulinTypeName { + prompt += "\n### Insulin Type\n" + prompt += "- Currently using: \(insulinType)\n" + } + prompt += "\n" // Glucose stats diff --git a/Loop/Services/LoopInsights/LoopInsights_DataAggregator.swift b/Loop/Services/LoopInsights/LoopInsights_DataAggregator.swift index ec2e498d39..a4c2654a14 100644 --- a/Loop/Services/LoopInsights/LoopInsights_DataAggregator.swift +++ b/Loop/Services/LoopInsights/LoopInsights_DataAggregator.swift @@ -155,10 +155,13 @@ final class LoopInsights_DataAggregator { LoopInsightsTherapySnapshot.LoopInsightsScheduleItem(startTime: $0.startTime, value: $0.value) } ?? [] + let insulinTypeName = settings.insulinType?.title + return LoopInsightsTherapySnapshot( basalRateItems: basalItems, insulinSensitivityItems: isfItems, carbRatioItems: crItems, + insulinTypeName: insulinTypeName, capturedAt: Date() ) }