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.
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.
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.
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.
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.
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 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.
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.