Sugarfit helps members manage and reverse type-2 diabetes. What it knows about each patient is scattered across very different domains: a continuous glucose monitor, doctor consultations, lab reports, coach meetings, and the member’s own in-app activity, including the meals they log every day.
The question wasn’t “build one model.” It was whether we could fuse all of that into a single rich profile of the patient, a per-patient context graph we call a digital twin, that every feature reads from, instead of each feature building its own thin, partial view of the same person.
A single per-patient profile, assembled from five streams: CGM, doctor consultations, lab reports, coach meetings, and in-app activity such as logged meals. On top of that one profile sit multiple services, each consuming the same twin: meal logging, an LLM “Doctor’s Co-Pilot” for medication suggestions, daily member-facing insights, SugarGPT, and the glycemic response prediction model. The meals a member logs feed the twin, and the meal-logging service reads it back: the loop that makes the profile richer the more it’s used.
Every signal you fold into the twin makes every service on top of it better.
Predicting a meal’s glucose spike is the most demanding consumer of the twin, because every body answers the same plate differently. Members wear a CGM only briefly, so once the sensor is off you’re estimating the patient’s metabolic state from the profile alone. A transformer turns each patient’s history into a compact metabolic fingerprint (cleanly separating diabetic, prediabetic, and non-diabetic patterns), trained on a large corpus of clean meal samples.After the sensor comes off, the system approximates that fingerprint from past meals by nearest-vector matching.
Data quality was the ceiling, not the architecture. A large share of logged meals had to be discarded as unclean, which is why meal-time detection became its own feature: infer the true meal time from the glucose-rise curve, nudge the user to confirm, and feed cleaner labels back into training. Cleaning the food catalog meant collapsing it to roughly a third of its raw size with a two-layer matcher.
A shared digital twin compounds, the same way a context graph does. Because every service read from the same profile, each new signal we added paid off everywhere at once. The way to make the agents smarter was to make the twin richer, not to keep tuning each model in isolation.