Insights

Open Wearables 0.6.2: Wearable Data Accuracy for Multi-Device Health Apps

Author
Bartosz Michalak
Published
June 30, 2026
Last update
June 30, 2026

Table of Contents

EXCLUSIVE LAUNCH
AI Implementation in Healthcare Masterclass
Start the course

Key Takeaways

  1. Step count and energy summaries now correctly handle Garmin and Oura, which each send both a daily total and granular intraday records for the same period. Previously the platform summed all records together, producing inflated totals. The fix applies automatically via the summary API. Apple Health sends only intraday data and was not affected by this issue.
  2. Active minutes are now retrieved directly from Garmin, Oura, Polar, and Ultrahuman instead of being approximated from step count. The old step-based method remains the fallback for providers that do not supply this metric. Existing historical data requires resynchronization to reflect accurate values: Garmin requires deleting stored data first, other providers overwrite on historical sync.
  3. The /users/{user_id}/events/sleep events endpoint now supports an optional filter_by_priority flag to remove duplicate sleep sessions. The summary endpoint already filtered duplicates before this release. By default, the events endpoint continues to return all sessions; the filter must be enabled explicitly.
  4. Garmin respiratory rate now saves correctly to the database. It was being searched under the wrong field name in the raw payload and was not being stored at all.
  5. A new connection.revoked webhook event notifies applications immediately when a provider connection is removed.

Is Your HealthTech Product Built for Success in Digital Health?

Download the Playbook

Health and fitness applications depend on one thing above everything else: wearable data accuracy. A step count built on incorrect aggregation undermines every dashboard, streak, and coaching recommendation that builds on it. A sleep record duplicated across two paths produces unreliable nightly summaries.

Data quality problems in wearable applications are rarely obvious at launch. They surface gradually as users connect multiple devices, as providers change how they format their responses, or as edge cases accumulate at scale.

Open Wearables 0.6.2, released June 26, 2026, focuses directly on wearable data accuracy: correcting aggregation logic for steps and energy, pulling active minutes from providers that track them natively, and filtering duplicate sleep sessions. Six bug fixes address additional accuracy issues in specific provider configurations.

Steps and Energy: Handling Mixed Granularity Data

Some wearable providers send data at more than one granularity level at the same time. Garmin and Oura both supply a daily step total alongside granular intraday records for the same period. Before 0.6.2, the platform aggregated all records together, which produced inflated totals in user-facing summaries. Apple Health sends only intraday data and was not affected by this issue.

The fix introduces a new is_daily_total column in the data layer. Daily records are flagged and used as the authoritative value. When no daily total exists, the platform falls back to summing the intraday records. Applications calling the summary API receive corrected values automatically after upgrading, with no integration changes required.

This change affects both step count and energy summaries.

A note on the migration: On the next startup after upgrading, an automated script flags existing daily records. Intraday records are not explicitly flagged to avoid performance impact at startup. If you query the data layer directly, treat a null value in the is_daily_total column the same as false.

Active Minutes: From Estimation to Direct Retrieval

The previous active minutes calculation was a heuristic: any minute in which more than 30 steps were recorded counted as an active minute. Garmin, Oura, Polar, and Ultrahuman each supply active minutes directly, and their values are more representative than a step-count approximation. From 0.6.2, Open Wearables retrieves them as a first-class metric from these providers. The step-based fallback remains for providers that do not supply active minutes natively.

The platform's science team is developing an improved method for calculating active minutes, which will be implemented in a future release.

Important for product teams: This change does not automatically correct historical data already stored in the database. To get accurate active minutes for data collected before upgrading, the data needs to be resynchronized. With Garmin, this requires deleting the stored data before resyncing. With other supported providers, a historical sync will overwrite the existing values.

Sleep Sessions: One Record Per Night When Multiple Sources Overlap

Some devices connect to Open Wearables through more than one path. Oura, for example, can send sleep data directly to Open Wearables and also via Apple Health, producing two session records for the same night.

Applications using the summary API endpoint already received deduplicated sleep data before this release. 0.6.2 extends this to the events endpoint: /users/{user_id}/events/sleep now accepts an optional filter_by_priority flag. By default, the events endpoint continues to return all sessions from the database, including duplicates. When the flag is enabled, duplicate sessions are filtered out. The hosted frontend gained a toggle for this in the data summary view.

Garmin Respiratory Rate

Respiratory rate data from Garmin was not being saved to the database at all. The platform was looking for this parameter under the wrong field name in Garmin's raw payload. The field lookup is now correct, and respiratory rate will be stored on sync going forward.

Additional Improvements

Data summary: The visual design of the per-user data summary has been updated, and time filters have been added. You can now filter summaries by a specific day or a defined time period.

Manual invitation links: When an email account is not configured, it is now possible to manually copy invitation links. This was contributed by a first-time contributor to the project.

connection.revoked webhook: A new outgoing webhook event fires when a provider connection is revoked. Applications can use this to update connection state without polling the status endpoint.

iOS/Android coverage: The platform now splits iOS and Android coverage tracking separately.

Community and Project Status

Open Wearables 0.6.2 shipped with contributions from six developers, including one first-time contributor to the project. The project is at 1,997 GitHub stars, 361 forks, and 31 total contributors.

Upgrading to 0.6.2

docker pull ghcr.io/the-momentum/open-wearables:0.6.2

The is_daily_total migration runs automatically on startup. Applications using the summary API receive corrected step and energy data immediately. If your application queries the data layer directly, treat null in is_daily_total as false.

For active minutes: if accurate historical data matters for your users, plan a resync after upgrading. Garmin requires deleting existing data before resyncing. Other supported providers can be resynced without deletion.

Full upgrade guide at docs.openwearables.io. New to the platform: docs.openwearables.io/quickstart.

From Wearable Data to Health Intelligence

If your team has the data flowing and is now figuring out what to build on top of it, that is the starting point for Signal - Momentum's delivery framework for wearable health intelligence. Blueprint maps your use case, Foundation connects the data sources and deploys the intelligence layer, Intelligence lands coaching, insights, or dashboards inside your app. Momentum brings the integrations, the data layer, and the intelligence. Your team ships the experience.

Frequently Asked Questions

What is Open Wearables?
Open Wearables is an open-source, self-hosted platform that collects wearable health data from multiple providers, normalizes it into a unified format, and exposes it through a consistent API. It is MIT-licensed with no per-user fees.
Which types of applications benefit most from the step and energy fix?
Any application that shows users daily activity totals, streak counts, or comparisons against previous days. The fix is most visible for users whose connected providers supply data at mixed granularities, such as Garmin or Oura users whose devices send both a daily total and 15-minute interval data simultaneously.
Do I need to change my integration code to receive corrected step data?
For applications using the summary API, no changes are needed. The aggregation logic runs at the platform level. If you query the data layer directly, review how you handle the is_daily_total column and treat null as false.
Will existing active minutes data be corrected automatically?
No. The change applies to newly synced data only. To correct historical active minutes, trigger a resync. For Garmin, delete the stored data before resyncing. For Oura, Polar, and Ultrahuman, a historical sync will pull native active minutes values from the provider.
What is the sleep session priority filter and when should I enable it?
The filter removes duplicate sleep sessions when a device sends data through more than one path. A typical case is Oura, which can connect both directly to Open Wearables and via Apple Health, producing two records for the same night. Enabling filter_by_priority on the /users/{user_id}/events/sleep endpoint returns one session per night. It is disabled by default, so existing integrations are unaffected.
Does the Garmin respiratory rate fix apply retroactively?
No. Because respiratory rate was not being stored at all before 0.6.2, there is no historical data to correct. Going forward, respiratory rate will be saved correctly on each sync. Historical values are not available unless the data is resynced.
Where can I get enterprise support for Open Wearables?
Momentum offers enterprise support for Open Wearables including custom integrations, SLAs, HIPAA compliance guidance, and direct engineering access. Visit themomentum.ai/contact to discuss requirements.

Written by Bartosz Michalak

Director of Engineering
He drives healthcare open-source development at the company, translating strategic vision into practical solutions. With hands-on experience in EHR integrations, FHIR standards, and wearable data ecosystems, he builds bridges between healthcare systems and emerging technologies.

See related articles

Wearable data that your users can trust

Let's Create the Future of Health Together

Open Wearables handles the integration and data quality layer. Momentum's team provides enterprise support, custom provider integrations, and HIPAA compliance guidance for teams moving to production.

Looking for a partner who not only understands your challenges but anticipates your future needs? Get in touch, and let’s build something extraordinary in the world of digital health.

Newsletter

Bartosz Michalak