• Unified API
  • Mobile SDK
  • Connection Widget
  • Streaming
  • Lab Reports API
  • Graph API
  • Health Scores
  • Health Rewards
  • Planned Workouts
  • Lab Testing
  • AI Interface
  • Enterprise
  • Insurance
  • Integrations
  • Research
  • Podcast
  • Blog
  • Reports
  • Events
  • Documentation
  • Community
  • Example apps
  • Wearable Data
  • About
  • Customers
  • Partners
  • Careers
  • Support
  • Pricing
Terra
Pricing
Become an integrationGet started

Cookie Preferences

Essential CookiesAlways On
Advertisement Cookies
Analytics Cookies

Crunch Time: Embrace the Cookie Monster Within!

We use cookies to enhance your browsing experience and analyse our traffic. By clicking “Accept All”, you consent to our use of cookies according to our Cookie Policy. You can change your mind any time by visiting out cookie policy.

Cookies Policy
All papers

Terra Smart Fill

Terra Smart Fill: Solving Missing Health Data

How we use tabular machine learning research to fill in missing wearable data more accurately than your own average.


Faraaz Akhtar
Faraaz AkhtarAI and Health Researcher
·
Kyriakos Eleftheriou
Kyriakos EleftheriouCEO

August 18, 2026

Key takeaways

  • The model beats your own average. Against assuming you sit at your personal baseline, error drops 9% on overnight HRV, 18% on daily heart rate, and 28% on workout heart rate.
  • Every filled metric lands inside the human spread. Imputation error is smaller than the natural variation between people, so a filled value is closer to the truth than a population average would be.
  • It works on devices it has never seen. Dropping a whole device family from training raises HRV error by at most 1.2 ms, so new integrations don't need to wait for a device-inclusive retrain.

Get the latest Terra Research reports and insights every week as soon as they're published.

By continuing, I agree to the Privacy Policy and Terms of Service.

Wearable data is a data engineering nightmare. Charge on device, position on body, software settings or cross-API technicalities leads to data being partly or even completely missing. Naturally, this affects every bit of downstream analysis or presentation using this data.

But data doesn’t exist in isolation. Certain values can be derived from others, while some other values almost never move, or move in entirely predictable ways from day-to-day. This led us to ask the question; to what extent can we predict missing health information from information that already exists?

fig1_what_devices_report (1).png

At Terra, we’ve noticed that machine learning techniques do extremely well when trying to uncover patterns within high-dimensional data, exactly the kind of data health devices report. How does HR relate to HRV, and how would that relate to the breathing rate at night? ML algorithms do extremely well at this kind of task.

So we decided to build it. A tabular model that fills in health information that a wearable never gave at all. We considered using tabular foundation models but felt our data had very specific tendencies that we wanted to build around.

Much of our inspiration came from a 2020 NeurIPS paper titled 'Handling Missing Data with Graph Representation Learning' that details a framework where tabular data is modeled as a graph, column identities are nodes and the values they hold are edges. Then, a missing value simply becomes an edge regression task.

A couple tweaks to this adding in personalization as well as a method to accommodate seen and unseen devices, and you end up with a model that works fairly well.

How well, you ask? Well. Against the strongest simple alternative, which is assuming you are at your own average, error drops 9% on overnight HRV, 18% on daily heart rate and 28% on workout heart rate. Against a properly tuned classical setup on the same data, 5.91 against 7.08 ms.

handbook_ranges.png

handbook_smartfill.png

It also holds up on devices it was never trained on: drop a whole device family out of training and error rises by at most 1.2 ms of HRV, still matching or beating that person's own average, which never lost access to the device. A new integration does not mean waiting for a device-inclusive retrain.

handbook_devices.png

To check how important personalization is to this, we also looked at how error drops as amount of data increases—which showed us that a simple average’s error is somewhat U-shaped, whereas SmartFill error continues to decrease with increased datapoints. Predictions based on no history remained at a constant error.

handbook_history.png

We also checked whether these imputations helped our own ML models’ abilities to predict certain conditions and found an increased accuracy across conditions like sleep-apnea as well as improved representation qualities in more general-purpose models. One of the failures we saw while doing this was that of conditions related to menstruation; it turns out that predicting temperate offsets, the primary signal for menstruation, from surrounding information is a pretty difficult task.

We quantify the uncertainty in every prediction, so the accuracy of anything you choose to use is known rather than assumed. Each filled value comes back with a range, and we report a confidence tier alongside it: high, medium or low. The tier comes from how wide that value's own range turned out to be, compared to the ranges we typically produce for that device. The narrowest third are high confidence, the middle third medium, the widest third low. Values we can derive exactly from others are always high, and a device whose accuracy we have not been able to confirm never reports as high.

None of this makes a filled value a measurement. It is an estimate, it says so, and it comes with a range and a rating so you can decide per value whether to use it, show it, or ignore it. That distinction matters more to us than the error numbers: a model that quietly guesses is worse than a gap, because a gap is at least honest about itself.

What we would rather not do is pretend missingness is an edge case. It is the normal condition of wearable data, and every product built on it is already making an implicit decision about how to handle the holes, usually by dropping the row or carrying the last value forward. SmartFill is our attempt to make that decision explicit, measured, and yours.

SmartFill is live in the Terra dashboard. If you are working around missing data today, we would like to hear which gaps hurt most, because that is what decides where this goes next.

Summary questions

How much missing data is actually normal in wearable feeds?
Missingness isn't an edge case — it's the default condition of wearable data. Charging cycles, body position, software settings, and cross-API quirks routinely leave values partly or completely absent, and every product built on wearables is already making an implicit choice about how to handle those holes (usually by dropping rows or carrying the last value forward). SmartFill's premise is to make that choice explicit and measured rather than hidden.
Can missing wearable metrics really be predicted from surrounding data?
Yes, and meaningfully so. Against the strongest simple baseline — assuming you're at your own average — SmartFill reduces error by 9% on overnight HRV, 18% on daily heart rate, and 28% on workout heart rate. Against a properly tuned classical setup on the same data, HRV error drops from 7.08 ms to 5.91 ms.
How does the model actually work under the hood?
It's inspired by a 2020 NeurIPS paper, 'Handling Missing Data with Graph Representation Learning,' which frames tabular data as a graph — column identities are nodes and their values are edges, so imputing a missing value becomes an edge regression task. Terra extended this with personalization and a mechanism to handle both seen and unseen devices, rather than using a generic tabular foundation model.
Does the model break when I connect a device it's never seen before?
No. When an entire device family is dropped from training, HRV error rises by at most 1.2 ms and still matches or beats that user's own average — which, unlike the model, had full access to the device. That means a new integration doesn't require waiting for a device-inclusive retrain to get useful imputations.
How much does personalization matter for accuracy?
A lot. As user history grows, SmartFill's error keeps decreasing, while a simple personal-average baseline follows a U-shaped curve and eventually degrades. Predictions made with no history stay at a constant error floor — usable, but clearly worse than what personalization unlocks over time.
How do I know whether to trust any individual filled value?
Every prediction ships with a range and a confidence tier: high, medium, or low, assigned by comparing that value's range width against typical ranges for the same device. The narrowest third are high, the middle third medium, the widest third low — values derivable exactly from others are always high, and unverified devices never report high. This lets you decide per value whether to use it, display it, or ignore it.
Do these imputations actually help downstream models, or just fill gaps cosmetically?
They help downstream performance. Feeding SmartFill imputations into Terra's own ML models improved accuracy on conditions like sleep apnea and boosted representation quality in more general-purpose models. The one clear failure was menstruation-related prediction, since temperature offsets — the primary signal — are genuinely hard to reconstruct from surrounding metrics.
Isn't filling in missing health data risky or misleading?
Only if you pretend it's a measurement. SmartFill labels every filled value as an estimate, ships it with a range, and attaches a confidence tier — the philosophy is that a model that quietly guesses is worse than a gap, because a gap is at least honest. The goal is to make the imputation decision explicit and auditable, not to disguise estimates as ground truth.
Faraaz Akhtar
Faraaz Akhtar

Faraaz Akhtar is an AI & Health Researcher at Terra API, where he develops statistical and machine-learning methods to extract insights from large-scale wearable health data.

Kyriakos Eleftheriou
Kyriakos Eleftheriou

Kyriakos Eleftheriou is the Founder and CEO of Terra API.

next ventures
pioneer fund
samsung next
y combinator
general catalyst

The world's best health apps run on Terra data

Get started
ProductsIntegrations AI Interface Authentication Mobile Development Documentation GraphAPI
DocumentationAPI SDK Quickstart
CommunityBlog Research Community Podcast Github
CompanyAboutCareersCustomersBecome an IntegrationCookies PolicyGDPRPrivacy PolicyTerms of Purchase
© Terra API. 2026 — All rights reserved.
Previous

Continue reading

How I came second in The World's Hardest Triathlon
Norseman Power Data

How I came second in The World's Hardest Triathlon

What a two-time olympic triathlon champion's power and pace files reveal about how to pace the world's hardest triathlon.

August 4, 2026

Cycling Is Good for You, But is it Faster Than Public Transport?
London Data

Cycling Is Good for You, But is it Faster Than Public Transport?

What 2,168 London morning bike commutes reveal about whether cycling beats the tube and the car.

July 31, 2026

What Winning the World Cup Does to Your Health
World Cup 2026

What Winning the World Cup Does to Your Health

What the heart rates and step counts of thousands of Spaniards reveal about how a nation celebrated winning the World Cup.

July 23, 2026

Running in 30°C Heat Barely Raises Your Heart Rate
Heat Exposure

Running in 30°C Heat Barely Raises Your Heart Rate

What 130,000 run activities reveal about how heat changes running.

July 21, 2026