Skip to main content

Overview

Device Reliability reports whether Junction has been receiving data consistently for each provider, source type, and resource connected to a user. A complete dataset and one missing most days each week look identical downstream. Device Reliability makes that difference visible, so you can decide how much to trust a user’s data before feeding it into a risk model or clinical workflow, and detect when a device has gone quiet. The reliability table returns the latest 30-day snapshot. An ungrouped query contains one row per user for each monitored combination of:
  • source_provider
  • source_type
  • resource
Each row includes coverage, gap, and recency diagnostics; a reliability_status; and the provider’s current connection_status.
Device Reliability is available only through Continuous Query. You cannot use the reliability table with the synchronous Query API, even though Reliability expressions appear in the shared Query DSL schema.

How the snapshot works

Each snapshot covers exactly 30 completed floating calendar days, including both window_start_date and window_end_date:
The window fields are returned in every row. Use them to identify the dates represented by a result rather than assuming a particular refresh time. Creating a Device Reliability Continuous Query queues its initial snapshot. Junction then refreshes it daily. Each refresh updates the current result table; it does not append a history of earlier windows.

Available columns

Reliability status

A combination means one source_provider, source_type, and resource for one user. Each status is a plain verdict on the current window:
  • reliable: Data is arriving consistently. Gaps in the data are meaningful.
  • degraded: Data is arriving, but with enough missing days to warrant caution in coverage-sensitive use cases.
  • sparse_by_pattern: Data arrives intermittently but recently. This often reflects an occasionally used device, such as a smart scale, rather than a failure.
  • stale: The combination produced data before and has gone quiet. Prompt the user to sync or reconnect.
  • insufficient_history: Data for the combination has not yet been observed.
Junction assigns reliability_status by evaluating the following rules in order. The first matching rule wins. connection_status is reported separately and does not change reliability_status. For example, a disconnected provider can retain a reliability classification based on presence during the current window.

Create a Device Reliability query

The following example selects the complete Device Reliability snapshot and uses a customer-owned device-reliability slug.

Query rules

Device Reliability uses direct identity columns rather than time buckets:
  • An ungrouped query must directly select source_provider, source_type, and resource. It can also select any other Reliability columns.
  • A grouped query must group by a unique, non-empty subset of source_provider, source_type, and resource, and it must select every group key. Other selected expressions must be aggregates over Reliability columns.
  • A where clause can filter only source_provider, source_type, and resource.
  • A Reliability query cannot reference another table.
Device Reliability does not support a DateTrunc or index expression, filters over calculated values, cross-table joins, ALIGN or carry, FHIR export, provider priority overrides, configurable windows, or historical result snapshots.

Aggregate by provider

The following grouped query returns the lowest sleep coverage per provider for each user:
The result contains group_key.0 for source_provider and min for the lowest presence_coverage across that provider’s source types.

Limitations

  • Presence means that at least one normalized record or sample exists on a date. It does not measure whether optional fields are complete, and a real numeric zero counts as present.
  • Reliability thresholds are cadence-agnostic. Healthy episodic, weekly, or monthly resources can therefore be classified as sparse_by_pattern, degraded, or stale.
  • Expected resources are determined per provider, not per device model. A provider and source-type combination may therefore show insufficient_history for resources its specific device never produces—for example, a smart scale may be listed with insufficient_history for sleep. A row leaves insufficient_history once Junction has observed that resource for the same provider and source type at least once.
  • Device Reliability excludes profile, device, device_legacy, workout_stream, hypnogram, and sleep_stream.