All posts
TrendwellFrom Signal to System · Part 9 of 9

What structured data makes possible — a personal AI workflow.

Claes Parflo

This post describes a personal workflow designed and used by the author during his own recovery. It is not medical advice, not a recommended protocol, and not something Trendwell promotes as a product feature. Trendwell produces structured health state descriptions — it does not connect to any AI service or provide a health assessment.

One of the less obvious things about AI is that output quality is almost entirely determined by input quality.

Ask a general AI tool "how am I recovering?" while pasting in three numbers from a fitness tracker and you'll get a response shaped like medical analysis but containing almost nothing useful. The model has no structure to reason against, so it pattern-matches to generic fitness advice and returns something that sounds plausible but isn't grounded in your actual situation.

The output from Trendwell is structurally different. It's not a summary or a score — it's a classified, deterministic breakdown of health state across fifteen structured sections: resting profile, sleep architecture, session data, terrain and efficiency, drift, instability classification, confidence level. Every value is labelled. Every section follows a consistent format. The classification work is already done; what ends up on the page is structured signal, not raw numbers.

That changes what an AI can do with it.

The setup

I configured a ChatGPT session with a system prompt that defines the role and operating constraints before any data is introduced. The persona is a cardiologist specialising in electrophysiology and post-ablation recovery. The prompt specifies a hierarchy of what matters — electrical stability first, then signal morphology, then load response, then recovery behaviour, then absolute values — and defines how each should be interpreted in context. Terrain, pacing, time of day, metabolic state: the prompt encodes the reasoning framework explicitly, so the model applies it consistently rather than improvising.

A key section of the operating principles reads:

Focus on: rhythm stability, smoothness of HR response, proportionality to load, trend over time. Ignore or downweight: isolated metrics without context, recovery metrics if rest conditions are not clean, artifacts from terrain, movement, or sampling gaps.

This matters because raw health data is full of signals that look concerning out of context and are entirely normal in context. A heart rate drift during an uphill late in a session is mechanical load, not fatigue. A low recovery reading when the baseline is invalid is noise, not signal. The prompt tells the model how to distinguish them.

The input

Each day, I paste the Trendwell daily report directly into the conversation, along with brief context: what the session was, how it felt, what I'm considering for the next day. The Trendwell output on one representative day included:

Instability state: Absent
Burst fraction: 0
One-Hz fraction: 0
MASD: 1 bpm
Classification: Absent

Primary session — Mean HR: 88.7 bpm · p95: 95 bpm
Terrain: Uphill mean 91 bpm · Late segment 89.3 bpm
True drift: 0 bpm · Drift validity: LOW
Training recommendation: Maintain

Fifteen structured sections. Consistent labels. Explicit confidence levels. Flags for what to downweight. That's what the model receives.

What comes back

The response is medically grounded in a way that generic AI interactions rarely produce:

System remains stable. Today supports continued progression, not caution escalation. For tomorrow's swim, +100 m is the right step. That means 700 m, not a larger jump.

The model works through each relevant signal in the order of the hierarchy defined in the prompt, explicitly downweights metrics flagged as invalid (drift validity LOW, baseline invalid), and concludes with a failure mode statement:

Main failure mode in this conclusion: if tomorrow follows a poor night, an unusually elevated resting pattern, or any new irregularity signal, then the same progression would become less attractive. Based on today's data alone, that failure mode is not present.

That last element is what separates structured analysis from generic advice. It tells you under what conditions the conclusion holds and under what conditions it shouldn't be trusted.

Why this is only possible with structured input

The analysis above isn't possible with a score or a summary. If the input had been "recovery score: 72, HRV: 37, steps: 8,200" — the three numbers most consumer apps surface — the model would have no basis for distinguishing meaningful signal from noise, no way to downweight invalid metrics, no way to apply terrain context to heart rate interpretation.

Trendwell's output is structured because the classification layer is deterministic. The same input always produces the same classified output, in the same format, with the same labels. That consistency is what makes it useful as AI input — not just once, but every day, as a running record the model can compare against.

The app describes. What you choose to do with that is your own decision.

Three months on: a Holter monitor confirmed what the watch had been tracking the whole time — not a single disturbance across ninety days. Was it the careful tracking, balancing my progress as best I could against what the data showed, with a ChatGPT setup acting as a kind of AI cardiologist alongside my own? Or was it just chance? I don't know, and I never will. But why take the risk of not paying attention?