Urja
Features Articles Privacy Support
← All articles

Building a health assistant that can't invent your numbers

7 min read · from the team building Urja

Language models are good at explaining things and bad at not making things up. For a health app, that's a serious problem: an assistant that confidently states the wrong resting heart rate, or invents an HRV trend, is worse than no assistant at all. Here's the design principle we built Urja around — the model is never allowed to be the source of a number.

Deterministic engines own every value

Every number Urja shows — your readiness score, its components, lab marker values, trends — is computed by plain, testable, deterministic code. Not by a model. Those engines are the single source of truth. The score is a fixed function of your inputs: give it the same HRV, resting heart rate, and sleep, and it returns the same result every time, and you can tap the ring to see exactly how it was derived.

The model explains; it does not calculate

Ask Urja, the conversational coach, runs on Apple's on-device foundation model on supported iPhones. It's given the numbers the deterministic engines already produced and is asked to explain and contextualize them — not to compute anything. The distinction matters: "explain this HRV trend in plain language" is a job models do well; "what is my HRV trend" is a job we never hand to a model.

A numeric-consistency guard around generated prose

Even a well-prompted model can drift, so the morning briefing — which can be AI-polished for readability — passes through a numeric-consistency check. If the generated prose disagrees with the deterministic values it's supposed to describe, the polished version is rejected in favor of text that matches the real numbers. The model gets to improve the wording; it does not get to change the facts.

A complete experience with no AI at all

Apple Intelligence isn't available on every device, and features can be turned off. So the non-AI path isn't a degraded fallback — it's the foundation. On any supported device, Urja shows its full deterministic Morning Briefing and readiness experience; the conversational layer is an enhancement on top. If the model is unavailable, you lose the chat, not your numbers or your guidance.

Why this also helps privacy

Because the model runs on the iPhone and the numbers come from on-device engines, Urja needs no account and sends no health data to its own servers. Keeping computation deterministic and local isn't only about trust in the numbers — it's what lets the whole app stay private by design. Even our marketing site runs no analytics or tracking scripts.

The takeaway for anyone building with LLMs

The pattern generalizes beyond health: let deterministic code own the facts, let the model own the language, and put a validator between them so generated text can't silently contradict ground truth. It's less magical than "the AI does everything," and far more trustworthy.

A coach that explains your numbers — and can't rewrite them

Urja's scores are deterministic and inspectable; the on-device model only helps explain them. Join the beta →

Ask Urja requires an Apple Intelligence-capable iPhone with Apple Intelligence enabled; other supported devices show the deterministic experience. Educational wellness information only — not a diagnosis or medical advice.

© 2026 Urja
Privacy Support Contact