Skip to content
EnaResearch
Data quality

Different sources, one measurement language

EnaResearch validates, de-duplicates and standardizes measurements from sources such as HealthKit and Health Connect on the server, against a versioned metric catalog. Invalid values are rejected at ingest; suspicious values are flagged without changing them. Completeness is reported per participant and metric.

Versioned metric catalog

About 197 device metrics, each with unit, sampling type, valid range and source mapping. The catalog changes by new versions.

Validation and de-duplication at ingest

Schema, unit and catalog range are checked on the server; resent batches and repeated measurements are not written twice.

Invalid and suspicious kept apart

Invalid values are rejected. Suspicious values are flagged: out of range, sudden jump, source conflict, low wear time.

Completeness

Per participant and metric: the share of days in the period that have data.

Data quality page

Completeness and flag counts per metric and participant for the study team, with the rules explained.

Sync status

Last measurement, last receipt, record counts and errors per source and metric.

A shared metric language: the versioned catalog

The same heart rate can arrive from two sources with different units, frequencies and time formats. In EnaResearch each metric is defined in a canonical catalog: its unit, sampling type (continuous, interval or spot), valid value range and which sources can provide it from which platform data. The catalog holds about 197 device metrics today; manually entered measurements (such as pain scales and lab values) have been added as a separate source type.

The catalog is versioned. When a definition or transformation changes, the old one is not overwritten; a new version is added, and you know which transformation version produced each measurement. The source’s own unit, measurement time and device or app identity are preserved.

  • Unit and sampling type
  • Valid value range
  • Source mapping
  • Versioned transformation

Validation and de-duplication at ingest

The mobile app sends data in batches; validation, normalization, de-duplication and durable storage are the server’s job. Batches pass schema and size checks. Records outside the catalog range or outside the contract are rejected at ingest with a reason, which is reported in the batch status.

A resent batch is not written again. A measurement key consists of person, metric, start time and source, so the same measurement arriving twice stays a single record. Cumulative metrics such as steps and active energy are collected as 5-minute buckets through the platform’s de-duplicating aggregate query, so overlapping phone and watch samples are not counted twice.

Time is resolved to UTC, and each measurement is linked to the person’s participation window and the study’s permitted metrics and sources. Data for the period after a study ends is rejected; late data for the period before is accepted for the window set on the study.

Invalid versus suspicious: reject and flag are separate

An invalid value (for example outside the catalog range) never enters the data. A value that is accepted but looks suspicious is flagged. A flag never changes or deletes the value; raw and standardized data stay as they are, and flags are computed at read time with the same rules. The rules are versioned and their thresholds are explained in the interface.

  • Out of plausible range (for example heart rate outside 35–200)
  • Sudden jump (a large change within a short time from the same source)
  • Source conflict (daily totals of two sources differ markedly)
  • Low wear time (less than 10 hours of heart rate data per day)

Completeness and the Data quality page

Completeness is the share of days in the selected period that have data, computed per participant and metric. The study’s Data quality page shows, for each metric, the number of participants with data, the median completeness and flag counts, plus a summary per participant; the period can be 30 days, 90 days or 1 year. Only the study team sees the page.

The participant panel also shows completeness and flagged days per metric; measurement values are not shown there. Completeness uses the same count as the data-coverage strip in the participant panel.

Sync status

For each source, the last batch, the last processed batch, total rejections and the last error are kept; for each source and metric, the last measurement time, last receipt time and record count. Researchers see only the study’s permitted metrics in the Data transfer window on the participant row. The participant web area shows connected sources, last sync and a daily summary of the last 7 days; individual measurements are not shown.

Quality information in exports

In measurement datasets, raw rows carry their flags and aggregated rows carry the number of flagged samples. Every export includes quality.csv with days, days with data, completeness, samples and flag counts per participant and metric; the manifest records the rules applied and the totals. Quality information is computed from the data as of the cut-off; the same definition and cut-off give the same content hash.

Raw events are kept for 90 days and are never changed while kept. Standardized data is a separate record derived from them and is kept according to the study’s retention policy.

Not clinical validation

Data quality checks support the consistency of research data. They do not claim clinical accuracy or medical validity of measurements; whether data is fit for a study is assessed by the research team under the protocol.

Standardization & data quality

Versioned metric catalog, validation, de-duplication, quality flags, completeness and sync status.

  1. 01

    The batch is received

    The server checks schema and size; invalid records are rejected with a reason.

  2. 02

    Standardized

    Unit, time and source are processed against the catalog version and duplicates are removed.

  3. 03

    Flagged and measured

    Suspicious values are flagged without changing them; completeness is computed.

  4. 04

    Reported

    The Data quality page, the participant panel and quality.csv in exports.

Related pages

Frequently asked questions

Is a flagged value changed or deleted?
No. A flag never changes or deletes the value. Variables leave flagged data out by default; in exports flags come as a separate column and the research team decides.
What happens if the same data arrives twice?
A resent batch is not written again. Because the measurement key consists of person, metric, start time and source, the same measurement stays a single record.
How is completeness calculated?
As the share of days in the selected period that have data, per participant and metric. The data-coverage strip in the participant panel uses the same count.
How long is raw data kept?
Raw events are kept for 90 days and are not changed during that time. Standardized measurements are kept according to the study’s retention policy.
Do data quality checks mean clinical validation?
No. The checks support research data quality, such as unit, range, time and source consistency. EnaResearch makes no claim of clinical accuracy or medical device validation.
Does our data share a database with other organizations?
No. Each organization runs in its own application environment with its own PostgreSQL and ClickHouse databases.

Let's talk about your research data

We'll show what EnaResearch does today, share the roadmap openly and look at your studies and data sources together.

A separate deployment for every organization · Turkish and English