Blog · Founder Story

My Cat Was Sick for 3 Weeks. I Had No Idea.

7 min read Published May 21, 2026
A quiet cat resting on a soft cream blanket near a sunlit windowsill, eyes half-closed, posture subtly tucked — beside her on the floor a softly-glowing phone showing an abstract descending line graph; hero illustration for a founder story about missed cat illness signals

For three weeks, my cat was telling me she didn't feel well. I missed it every day.

Not because I'm a careless owner. I'd built an entire app — CatMD — for exactly this kind of thing. I'd written the health-tracking module, designed the longitudinal-trend view, and shipped the daily check-in card. I knew, theoretically, what to look for. I missed it anyway. The story of what happened, and what I changed afterward, is the rest of this post.

Week 1: nothing seemed off

Lily is a 7-year-old short-haired tortie. Normal weight, normal appetite, sleeps in the same three places, wakes me up at the same time. She's a Curious-Introvert archetype on the Feline Five — confident in her own house, reserved with strangers, deeply bonded to me.

Week 1, the only thing I noticed was that she was sleeping a little more than usual. That's not a useful signal — cats sleep 12-16 hours a day, and "a little more" can mean a 30-minute drift that I'm reading as anomalous because I expected to find something.

I logged the daily check-ins in my own app like always. Mood: normal. Appetite: full. Litter: normal. Five seconds, every day. The cards looked fine.

Week 2: the graph showed it before I did

On day 11, I opened the Health Rhythm view — the longitudinal-trend page in CatMD that plots mood, weight, appetite, water, litter, and pain-face score against time. I open it about once a week, mostly to sanity-check the app's rendering.

The mood line was trending down. Not dramatically. Just "normal" on days 1-3, "normal" on days 4-7, then a slow tilt toward "off" on days 8-11. The check-ins themselves had felt the same to me — I'd tapped "normal" every day. But the cumulative pattern was visible.

The grooming score (which the app derives from photo metadata) had also drifted. Not enough to flag on any single day. Enough to slope on the graph.

I sat with the screen for a minute and thought: oh.

What I'd been missing in real time

I went back through 14 days of photos and watched for the pattern the graph had caught. There it was:

None of these were dramatic. Each one, in isolation, was within normal cat variation. Cats hide pain — that's a foundational fact of feline medicine — and the way they hide it is by reducing intensity, not changing kind. She was still doing all her normal behaviours. Just less. Each less.

The vet visit

I booked her in. The vet did a hands-on exam (gentle palpation, mouth check, gum colour, hydration test), bloodwork, and a urinalysis. The diagnosis: a low-grade urinary inflammation, likely feline idiopathic cystitis (FIC) — a stress-driven condition that's notoriously hard for owners to spot because cats often don't strain visibly until it's severe.

Treatment was straightforward: a 7-day course of anti-inflammatory pain relief, environmental enrichment changes to reduce her low-grade stress, and a wet-food shift to increase her water intake.

Within four days she was back on her perch, head-bumping me at the right time, and the Health Rhythm graph showed mood tilting back up.

What I changed in how I track

The lesson wasn't "I should check more often." I was already checking daily.

The lesson was: the human eye, even an attentive one, is structurally bad at noticing slow drifts. We're built to catch sharp changes. A cat who goes from healthy to limping in one day — we catch that. A cat who shifts from "normal" to "slightly off" across 11 days — we don't. Each day looks like the day before; the cumulative slope is invisible at the day-to-day timescale.

The graph is what makes the slope visible. The Health Rhythm view in CatMD isn't a fancy dashboard for engagement metrics — it's the visualisation that turns slow drift into a perceptible line. That's the entire value of longitudinal tracking. Not the individual data points. The shape they make over weeks.

Three things changed in my daily flow after this:

  1. Health Rhythm weekly check. Every Sunday evening I look at the graph. Two minutes. I'm looking for slopes, not values. Has the mood line tilted? Has the grooming score dropped? Has weight drifted >2% over a month?
  2. Posture photos. I started taking one photo per week of Lily sitting upright, head-on. Pain postures (tucked shoulders, head slightly low) are visible in side-by-side comparisons that aren't visible day-to-day. The Feline Grimace Scale is the clinical version of this.
  3. Trust the graph over the day. When the cumulative line says something's off but each individual day says fine, the line wins. Cats are evolutionary prey animals — they mask pain by reducing intensity, not changing kind. The day-level signal is noisy. The week-level signal is the real one.

The honest framing

CatMD doesn't diagnose. It can't. No app can — that's veterinary care, which requires hands-on examination, lab values, and trained judgment.

What CatMD can do is change what a vet visit looks like. I walked into the vet's office with a 14-day mood graph, a list of specific behavioural drifts I'd observed (with dates), a pain-face score from the app's Feline Grimace check, and a hypothesis. The vet's job was easier because I'd done the noticing. The diagnosis came faster. Lily got treated sooner.

If you're trying to be a more attentive cat parent, the answer isn't to watch harder. It's to instrument the slope. Daily check-ins, weekly graph reviews, and the discipline to trust the line when your eyes say nothing's wrong.

That's the actual value of longitudinal health tracking. Not the dashboard. The fact that the dashboard catches what you can't.

CatMD is free to download on Google Play. The Health Rhythm view is in Triage tab. Get it here.

Try CatMD

The cat AI this post is about. 14-day free trial with full Pro access. No card on file.

Get on Google Play