Skip to main content

Nutrition tracking

Nutrition tracking is the first core product loop for Moveat. Users log what they ate, Platform stores structured meal entries, and the product shows daily calorie progress.

Business goal

The goal is not perfect nutrition science at MVP stage. The goal is useful, consistent tracking with clear estimation and correction paths.

Meal entry model

A meal entry represents one food logging event. It can come from:
  • Web app.
  • Agent text message.
  • Agent image interpretation.
  • Agent audio interpretation.
A meal entry can contain multiple meal items.

Meal item model

Each item stores estimated nutrition values:
  • Name.
  • Estimated quantity.
  • Estimated unit.
  • Estimated calories.
  • Protein grams.
  • Carbs grams.
  • Fat grams.
The current model accepts estimated values inline. A future food catalog can improve precision by resolving food density and macros from trusted records.

Idempotency

Agent-driven meal logging must be idempotent. If WhatsApp retries a webhook, Platform should not double-count the same meal. For WhatsApp, the webhook message ID should be used as the idempotency key.

Daily summary

Platform updates a daily nutrition summary when a meal is logged. The summary stores:
  • User.
  • Local date.
  • Calories consumed.
  • Protein consumed.
  • Carbs consumed.
  • Fat consumed.
  • Calorie target snapshot.
The target snapshot preserves what target applied on that day.

Why daily summary exists

Daily summaries make dashboard reads cheap and provide stable historical views. They should remain rebuildable from meal entries if needed.

Estimation risk

LLMs can estimate food and portions, but they can also be wrong. Product UX should make estimates visible and correctable. A good user-facing pattern is:
  1. Agent estimates the meal.
  2. User confirms or corrects.
  3. Platform stores the final structured entry.
  4. Daily summary updates once.