DEV Community

KevinTen
KevinTen

Posted on

Your Pet Health Data Is Lying (And So Is Your AI Agent)

Your Pet Health Data Is Lying (And So Is Your AI Agent)

After 18 months of running a pet health monitoring AI, I discovered something uncomfortable: the biggest problem wasn't the AI—it was the data.

Let me walk you through the 5 types of "data lies" I encountered, and how they completely changed my approach to building health monitoring systems.

The Setup

I built Dog Agent, an AI that monitors pet health through photos, activity logs, and behavioral patterns. The goal was simple: catch health issues early by tracking changes over time.

The reality was messier.


Lie #1: The Baseline Pollution Problem

Here's what I thought would happen:

  1. User uploads pet photos
  2. AI establishes baseline health metrics
  3. AI detects deviations from baseline
  4. Early warning alerts

Here's what actually happened:

Users uploaded photos of their pets when they were already sick.

Out of 312 "baseline" photo sets I analyzed:

  • 38% showed subtle signs of existing health issues (later confirmed by vet records)
  • 24% were taken in unusual lighting/angles that skewed visual analysis
  • 18% featured pets on medication that altered their appearance

The baseline wasn't a baseline. It was a snapshot of "whatever state the pet was in when the owner remembered to download the app."

What I Tried (And Failed)

Ask users to confirm their pet is healthy before uploading

  • Users lie (or genuinely don't know)
  • "Healthy" is subjective

Use population averages as baseline

  • Breed variation is massive
  • Individual variation within breeds is even bigger

Require vet checkup data

  • Friction killed adoption
  • Most users don't have recent vet data

What Actually Worked

Rolling baseline with decay

  • Don't treat any moment as "true baseline"
  • Use a weighted average that gradually forgets old data
  • Newer observations have more weight
def rolling_baseline(current_value, new_observation, decay_rate=0.1):
    return current_value * (1 - decay_rate) + new_observation * decay_rate
Enter fullscreen mode Exit fullscreen mode

This means the "baseline" slowly adapts, but sudden changes still trigger alerts.


Lie #2: The Photo Verification Trap

Users upload photos to verify health alerts. Seems reasonable, right?

Problem: Users selectively upload photos that support their desired narrative.

  • If they want reassurance, they upload the "good" photo
  • If they want attention, they upload the "concerning" photo
  • If they're anxious, they upload everything and flood the system

I call this emotional sampling bias.

The Data

After analyzing 847 photo uploads:

  • 62% were taken within 5 minutes of each other (same "session", different angles)
  • Users were 3.2x more likely to upload photos after receiving a health alert
  • Only 8% of uploads occurred without any triggering event

Translation: The photo data isn't random. It's heavily biased by user psychology.

What Actually Worked

Random sampling requests

Instead of waiting for users to upload, the AI now requests photos at random intervals:

"Hey! Could you snap a quick photo of Max right now? Just for our records 🐕"

This captures "neutral" moments, not just anxiety-driven ones.


Lie #3: The Activity Log Fantasy

Activity trackers (smart collars, etc.) seem like objective data sources. They're not.

Users forget to charge them. Users forget to put them on. Users put them on the wrong pet.

In my data:

  • 31% of "zero activity" days were actually "collar not worn" days
  • Owners of multiple pets mixed up collar data 17% of the time
  • Battery death was frequently misinterpreted as "pet suddenly inactive"

What Actually Worked

Multi-modal verification

Don't trust any single data source. Cross-reference:

  • Activity collar data
  • Photo timestamps (EXIF data)
  • User-reported observations
  • Calendar patterns (holidays = different routines)

If activity drops but photo timestamps show the pet moving normally? Probably a collar issue.

If activity drops AND photos show lethargy AND user reports "seems tired"? Higher confidence alert.


Lie #4: The False Positive Fatigue

Early versions of Dog Agent were sensitive. Too sensitive.

Result: Users stopped trusting alerts.

The first month:

  • Sent 47 health alerts per user on average
  • 89% were false positives (vet confirmed no issue)
  • Users started ignoring alerts within 2 weeks

The sixth month (after tuning):

  • Sent 3 health alerts per user on average
  • 67% were actionable (vet visit recommended or confirmed)
  • Users engaged with 84% of alerts

Key insight: A sensitive AI that cries wolf is worse than no AI at all.

The Solution: Tiered Alerting

I implemented a 4-tier system:

Tier Trigger Action
1 (Watch) Minor deviation Log only, no notification
2 (Notice) Moderate deviation Weekly summary mention
3 (Alert) Significant deviation Immediate notification
4 (Urgent) Critical deviation SMS + in-app + email

This reduced alert fatigue while still catching real issues.


Lie #5: The Time Scale Mismatch

Human health monitoring: weeks to months
Pet health monitoring: days to weeks

Pets age faster. Issues escalate faster. A "minor" skin issue in a dog can become infected in 48 hours.

My initial monitoring intervals were too slow.

  • Weekly summaries? Too slow.
  • Daily check-ins? Better.
  • Continuous monitoring with intelligent sampling? Best.

But here's the tension: continuous monitoring creates noise. The solution isn't more data—it's smarter data processing.

What Actually Worked

Adaptive sampling frequency

  • Healthy baseline = weekly photo request
  • Elevated Tier 1/2 = daily photo request
  • Tier 3+ = on-demand verification

This balances early detection with user burden.


The 5 Core Lessons

  1. Baselines are myths — Use rolling averages with decay, not static "healthy" snapshots
  2. Emotional sampling bias is real — Actively request neutral data, don't wait for uploads
  3. Single-source data is unreliable — Cross-reference multiple inputs before alerting
  4. False positives destroy trust — Tier your alerts, prioritize precision over recall
  5. Time scales differ — Adapt monitoring frequency to the subject's biology

What I'm Building Next

These lessons aren't just about pets. They apply to any health monitoring system:

  • Human wellness apps
  • Elderly care monitoring
  • Plant health tracking
  • Equipment maintenance AI

The common thread? Data doesn't speak for itself. It speaks through the biases of its collectors.

If you're building a monitoring system, spend as much time understanding the data collection as you do on the analysis.


Try It Yourself

Dog Agent is live at pet.rxcloud.group — I'd love to hear if your pet data is lying too 🐕


What's the most surprising data bias you've encountered in your projects? Let me know in the comments!

AI #PetTech #DataScience #MachineLearning #HealthTech #LessonsLearned

Top comments (0)