Skip to main content

Onboarding

Onboarding converts a newly registered user into an active Moveat user with enough data to calculate targets and render the product dashboard.

Purpose

Onboarding creates three connected pieces of product state:
AreaPurpose
ProfilePhysical baseline and preferences.
GoalsDesired outcome and activity assumptions.
Nutrition settingsCalorie and macro target configuration.
These are separate because they change for different reasons. A user can update their weight without changing their goal. A user can change calorie targets without changing their birth date or height.

Required business inputs

Onboarding should collect:
  • Unit system.
  • Birth date.
  • Sex.
  • Height.
  • Current weight.
  • Timezone.
  • Primary goal.
  • Activity level.
  • Training days per week.
  • Target weight.
  • Target mode: calculated or manual.

Metric and imperial handling

The user can operate in metric or imperial units. Platform converts input into canonical metric storage.
User inputStored value
Height in cmheight_cm
Height in feet/inchesconverted to height_cm
Weight in kgweight_kg
Weight in lbconverted to weight_kg
Responses should return display values according to the user’s profile preference.

Calculated target mode

When target mode is calculated, Platform estimates the daily calorie target from profile and goals. This supports a low-friction onboarding because the user does not need to know their exact calorie target.

Manual target mode

When target mode is manual, the user provides their desired calorie and macro targets. This is useful for advanced users or users already working with a coach.

Transaction rule

Onboarding should be written atomically. Profile, goals and nutrition settings must be created or updated together. Partial onboarding state creates confusing product behavior.