MealStack

Client Portal

Give clients self-service access to meal plans, food diary, water tracking, messaging, goals, AI food scanning, and progress photos.

The Client Portal is a mobile-first web app where your clients can view their meal plans, log meals, track water intake, chat with you, track goals, scan food with AI, log weight, upload progress photos, and more — all without WhatsApp back-and-forth.

The portal lives at mealstack.io/p/your-org-slug. Each client logs in with their own Workfile ID account. You control which features each client can access.

Portal branding

The portal automatically uses your practice's branding based on the branding mode configured in Settings → Practice Profile:

Branding modePortal headerPractitioner card
Auto (solo)Your name + credentialsNot shown (you ARE the practice)
Auto (team)Clinic nameAssigned practitioner's photo, name, credentials
Clinic OnlyClinic name + bioNot shown
Clinic + PractitionerClinic nameAssigned practitioner card with visible fields
Practitioner OnlyPractitioner name + credentialsNot shown (practitioner IS the identity)

The practitioner card shows the dietitian assigned to the client (assignedTo field). What's visible on the card is controlled by the practitioner visibility toggles in Settings.

Clients always see your clinic logo and brand colors regardless of branding mode. The mode only controls the name and practitioner attribution.

Portal customization

Customize how your portal looks and feels in Settings → Client Portal. Changes apply to all clients in your practice.

Appearance

SettingAvailable onDescription
Primary colorStarter+Brand color for buttons, links, progress rings, and navigation highlights
Accent colorStarter+Secondary color for accents
Theme modeStarter+Auto (follows client's system), Light, or Dark
App nameStarter+Custom name shown in page titles and PWA install. Defaults to your practice name
Custom faviconPro+Square icon for browser tabs. Falls back to your clinic logo

The color picker shows a contrast indicator — if your chosen color has low contrast against white backgrounds, you'll see a warning. This helps ensure text remains readable.

Home page

SettingAvailable onDescription
Welcome messageStarter+Custom greeting shown on the portal home screen. Use {name} for the client's first name. Max 200 characters
Header bannerPro+16:9 banner image shown at the top of the home page

Default portal features

Set org-level defaults for the 13 feature toggles. When you enable portal for a new client, these defaults are applied automatically. Existing clients are not affected.

Push notification preferences

Control which push notifications your practice sends to clients who have installed the portal as an app:

SettingDefaultDescription
Meal remindersOnNotify clients when it's time for their next meal
Water remindersOffPeriodic reminders to drink water (configurable interval: 1–4 hours)
Streak notificationsOnCelebrate streak milestones (3, 7, 14, 30 days)
Message notificationsOnNotify when you send a message to the client
SettingAvailable onDescription
Footer textStarter+Custom text at the bottom of every portal page (e.g., "© 2026 Nourish Nutrition")
Hide MealStack brandingClinicRemove "Powered by MealStack" from the portal footer

Install as app (PWA)

The portal is a Progressive Web App (PWA) — clients can install it on their home screen for an app-like experience without downloading anything from an app store.

Android (Chrome)

After visiting the portal a couple of times, clients see an install banner:

  1. Tap Install on the banner (or use Chrome's menu → "Add to Home Screen")
  2. The portal appears on the home screen with your practice's name and icon
  3. It launches in standalone mode — no browser address bar, no tabs

iOS (Safari)

iOS doesn't show an automatic install prompt. The portal shows manual instructions:

  1. Tap the Share button (⎙) in Safari
  2. Tap Add to Home Screen
  3. Confirm the name and tap Add

Each practice gets its own app identity on the client's device. If a client works with two different practices, they get two separate apps on their home screen — each with the correct name, icon, and colors.

Offline support

When a client loses connectivity, the portal shows a "You're offline" banner. Previously loaded pages and assets remain available from the cache. Data-dependent features (meal plans, diary) show the last available data.

Push notifications

Clients who install the portal as a PWA can receive push notifications for meal reminders, water intake, streak milestones, and messages.

How clients enable notifications

  1. On the portal home page, a "Get meal reminders" card appears after the second visit
  2. The client taps Enable → the browser asks for notification permission
  3. Once granted, notifications are active on that device

What clients receive

NotificationWhenExample
Meal reminderAt the meal's scheduled time"Time for breakfast! Tap to see your meal plan"
Water reminderEvery 2 hours (configurable)"Stay hydrated! Tap to log water"
New meal planWhen you send or activate a plan"Your new meal plan is ready!"
New messageWhen you send a message"Dt. Priya sent you a message"
Streak milestoneAt 3, 7, 14, 30 day streaks"🔥 7-day streak! Keep it up!"

Client preferences

Clients can control their own notification preferences from the portal user menu → Notification Settings:

  • Toggle individual notification types on/off
  • Set quiet hours (e.g., no notifications between 10 PM and 8 AM)

Both your org-level settings AND the client's preferences must allow a notification type for it to be sent.

Push notifications on iOS require the portal to be installed as a PWA (added to home screen) and iOS 16.4 or later. Notifications won't work in Safari browser alone.

Branded emails

Portal-related emails — invitations, meal plan delivery, reminders — automatically use your practice's branding:

  • Header: Your logo and practice name on a branded color background
  • Buttons: "Download PDF", "Open Portal" etc. use your primary color
  • Footer: Practitioner name, contact info, and practice address
  • From name: Shows your practice name (e.g., "Dt. Priya via Nourish Nutrition") instead of generic "MealStack"

Colors are configured in Settings → Client Portal → Appearance. If you haven't set portal colors, emails fall back to your Export & Branding colors.

White-label practices (Clinic plan) can hide the "Powered by MealStack" line from email footers too.

Setting up portal access

Enable the portal for a client

Open a client profile → Portal tab → toggle Client Portal on.

Send the invite

Click Send Invite — the client receives an email with a link to create their Workfile ID account and access the portal.

If the client has no email but has a phone number, use the Invite via WhatsApp button to send the portal link directly.

Once the portal is enabled, the Portal tab shows the portal URL with quick actions:

  • Copy — copies the portal link to your clipboard for sharing via any channel
  • Open — opens the portal in a new tab to preview what the client sees
  • WhatsApp — sends a pre-formatted message with the portal link to the client's phone

A QR code is also generated automatically. Save it as a PNG or print it for clinic cards, printed meal plans, or in-person consultations.

Set an expiry date

Use the Expires date picker to set a time limit on portal access. When the date passes, the client sees an "Access Expired" page and can no longer use the portal. Remove the expiry anytime to restore permanent access.

Auto-linking

If the client already has a Workfile ID account with the same email or phone, their account links automatically on first login. No manual setup needed.

You don't need to wait for the client to accept the invite. Once portal is enabled, they can access it anytime by logging in at the portal URL. The invite email is just a convenience.

When you send a meal plan to a client via Send to Client, the delivery email and WhatsApp message automatically include a "View in Your Portal" link if the client's portal is enabled. The exported PDF also includes a QR code on the cover page (or at the end of the document if no cover page is used) that links directly to the portal.

Multi-clinic access

If a client has portal access with multiple practitioners (different clinics), they see a clinic picker when visiting /p/ — letting them choose which portal to open. Clients with a single clinic are redirected automatically.

My Profile

Clients can view and edit their own profile from the portal user menu → My Profile. The profile page shows:

Editable by the client:

  • Phone number and email
  • Current weight
  • Dietary preference (vegetarian, non-veg, vegan, etc.)
  • Allergies and intolerances
  • Food likes and dislikes
  • Cuisine preferences

Read-only (managed by the practitioner):

  • Name, date of birth, gender, height
  • Goal type and activity level
  • Medical conditions, medications, supplements

Each editable field has an inline edit mode — tap the pencil icon, make changes, and save. Tag fields (allergies, likes, dislikes) support type-to-add with suggestion chips.

Changes made by the client in the portal are reflected immediately in the practitioner's client detail view. The practitioner can always override any field from the full client form.

Portal sign-out

The portal header includes a user menu (avatar icon) where clients can see their name and email, and sign out. Signing out clears the session and redirects to the login page.

What clients see

The portal has a bottom navigation with four main sections plus a quick-action button:

SectionWhat it does
HomeDaily summary with calorie ring, macro progress, water tracker, next meal, and appointments
PlanDaily and weekly meal plan view with food items, portions, and nutrition
DiaryLog meals as done/modified/skipped, upload meal photos, log unplanned meals
StatsWeight logging with trend chart, body measurements, progress photos, compliance stats

The center + button opens a quick-action drawer with six shortcuts:

ActionWhat it does
Log a mealJump to the food diary
Mark meal doneJump to the meal plan
Log waterJump to the home page water tracker
Log weightJump to the stats page
Mark eventTell your dietitian about an upcoming event (party, travel, wedding)
MessagesOpen the chat with your dietitian

Home screen layout

The home screen is designed around a "dashboard-first" pattern — the most important information is visible without scrolling:

  1. Daily Summary Card — A calorie ring showing consumed vs target calories, with macro progress bars (protein, carbs, fat) and quick stats (meals completed, water intake)
  2. Water Tracker — Quick-add buttons for logging water intake throughout the day
  3. Up Next — The next unlogged meal shown as a full card with food items, portions, and action buttons (Done, Log, Skip)
  4. Later Today — Remaining meals as a compact list, tappable to expand
  5. Completed — Collapsed section showing how many meals are done, expandable to review
  6. Special Day Card — When a festival, holiday, or event is within 3 days, a contextual card shows the event emoji, dietitian's guidance, adjusted calorie target, and tips
  7. Next Appointment — Upcoming follow-up date

The calorie target resolves automatically: it uses the meal plan's target first, then falls back to the client profile's target calories, and finally uses the day's planned nutrition total as an implicit target.

Recipe previews in meal cards

When a meal contains a recipe (like "Paneer Tikka" or "Oats Smoothie"), the recipe name appears as a tappable link in the meal card. Tapping it opens a bottom drawer with:

  • Recipe image, description, and meta info (prep time, servings, difficulty)
  • Per-serving nutrition breakdown (calories, protein, carbs, fat, fiber)
  • Ingredient list with quantities
  • Quick links to the full recipe page and cooking mode

Food alternatives in meal cards

When a food item has alternatives, the primary food is shown normally and a small "X alternatives" chip appears below it. Tapping the chip expands the alternatives with an "or" prefix and a left border accent. Tapping again collapses them.

Each alternative has a "Use this" button. When the client taps it:

  • The selected food swaps to the top position (becomes the "active" item)
  • The meal's calorie and macro totals recalculate instantly to reflect the selected food's nutrients
  • The day totals and calorie ring on the home screen update too
  • The selection persists across page refreshes — no need to re-select each visit

This lets clients choose based on what's available or what they prefer, while the nutrition tracking stays accurate to what they'll actually eat.

Alternatives are set by the practitioner in the meal plan builder. Clients can select which alternative to follow but cannot add or remove alternatives from the portal.

Food info drawer

When the Food Info feature is enabled for a client, food items in meal cards become tappable links. Tapping a food opens a bottom drawer with:

  • Food name (cleaned for consumer display) with Hindi name and category
  • Dietary type badge (Vegetarian, Non-Vegetarian, Eggetarian, Vegan)
  • Available portion sizes with gram weights

When Nutrient Details is also enabled, the drawer additionally shows:

  • A macro donut chart with calorie breakdown by protein, carbs, and fat
  • Macro progress bars (protein, carbs, fat, fiber) scaled to the actual portion in the meal
  • Key micronutrient highlights (calcium, iron, zinc, vitamin C, B12, vitamin A, folate, sodium) with % Daily Value indicators

Enable both "Nutrient Details" and "Food Info" for health-conscious clients who want to understand their nutrition. Keep them off for clients who might feel overwhelmed by numbers.

Per-item nutrition in meal cards

When Nutrient Details is enabled, each food item in a meal card shows compact macro values directly below its name — e.g., 120 kcal P 8g C 15g F 4g. This gives clients instant transparency into what each food contributes without needing to tap into the detail drawer.

The display respects the Nutrient Visibility settings — if you've hidden Fat for a client, the per-item display won't show fat values either. Only non-zero values are shown to avoid clutter.

Display preferences in the portal

Your practice's display preferences (configured in Settings → Food Database → Visibility & Filters) automatically apply to the client portal:

SettingEffect on portal
Portion display: "Grams first"Shows "225g (1.5 katori)" in meal cards
Portion display: "Portion only"Shows "1.5 katori" without gram weight
Gram rounding: Nearest 10gRounds all gram values to nearest 10
Recipe portionsShows "1 serving (250g)" when gram weight is available

Display preferences are practice-wide — they affect all clients consistently. This ensures the same formatting appears in the builder, portal, and PDF exports.

Editing diary entries

After logging a meal as "Done" or "Skipped", clients can tap Change to re-log it with a different status, add a photo, or update notes. The diary entry is updated in place — no duplicates are created.

Messaging

The portal includes a full-featured real-time chat where clients can communicate directly with their practitioner. GIFs, emoji reactions, quoted replies, read receipts, and push notifications — all built in.

For the complete messaging documentation including canned responses, message search, edit/delete, and rate limiting, see the dedicated Messaging page.

How it works

  • Clients open Messages from the portal navigation or by tapping the unread messages banner on the home screen
  • Messages appear in a WhatsApp-style chat interface with date separators, timestamps, and read receipts
  • Clients type a message and press Enter (or tap Send) to deliver it
  • New messages from the practitioner trigger a push notification (if enabled)

Key features (client side)

FeatureDescription
GIF pickerInstagram-style inline panel with trending categories and search
Emoji reactionsLong-press (mobile) or hover (desktop) to react with ❤️ 👍 😂 😮 😢 🙏
Quick reactDouble-tap any message for instant ❤️
Reply-toQuote any message with sender attribution and content preview
Suggested chipsQuick-start messages for new conversations (Say hello, Request change, Ask question)
EditEdit your own messages within 5 minutes
DeleteDelete your own messages within 5 minutes (shows "deleted" placeholder)
Read receipts✓ = sent, ✓✓ (blue) = read by practitioner
Optimistic sendingMessages appear instantly, failed sends show "Tap to retry"

What practitioners see

On the dashboard side, the Messages page provides a unified inbox:

  • All client conversations in a list with unread badges and last message preview
  • Full-text message search across all conversations
  • Canned responses (slash-command / picker) for quick check-ins and motivation
  • Reactions, replies, edit (15 min window), and delete (15 min window)
  • Conversation deep-linking from notification bell

Unread indicators

  • The portal home screen shows an "unread messages" banner when new messages arrive
  • The unread count appears as a badge in the navigation
  • Messages are marked as read when the client opens the messages page

Message history is preserved indefinitely as part of the client record. Unlike WhatsApp, you never lose context — the full conversation is always accessible from the client hub.

Goals

Practitioners set measurable goals with multi-metric tracking, and clients log their progress directly in the portal.

Setting goals (practitioner side)

From the client's Goals tab or Profile → Goals section, practitioners create goals with:

  • Goal type — clinical presets (diabetes, PCOS, thyroid, cholesterol, weight, pregnancy) or custom
  • Baseline value — starting measurement for accurate progress calculation
  • Target value — the number to reach (e.g., 65 kg, HbA1c <7%)
  • Target date — optional deadline with countdown
  • Motivation — client's stated reason ("want to fit wedding outfit")
  • Clinical metrics — auto-generated per goal type (HbA1c + fasting glucose for diabetes, LDL + HDL + triglycerides for cholesterol, etc.)

See Goals & Metric Tracking for the full system.

Client experience

Clients access goals from the portal navigation. The goals page shows:

  • Active goals — with direction-aware progress bars (Baseline → Current → Target)
  • Overdue measurement alerts — amber banner when metrics need logging
  • Metric cards — each clinical metric with its own progress bar, target, frequency, and "Log Measurement" button
  • Inline logging — tap to enter new value + optional contextual note
  • Progress history — expandable timeline per metric showing all entries
  • Completed goals — auto-completed when target is reached, with celebration message
  • Deadline countdown — "Due in 12 days" or "Overdue 3 days ago"

When a client logs a measurement:

  • The progress bar animates to the new percentage
  • If the target is reached, the goal auto-completes with a 🎉 celebration and rich card in chat
  • Weight updates auto-sync across all active weight goals (no duplicate entry)
  • The practitioner sees the update immediately in their dashboard

Weight metrics auto-sync across the portal. When a client logs weight from the Stats page, all active weight goals update automatically — no duplicate entry needed. The same applies when practitioners record weight during consultations.

AI food scanning

Clients can snap a photo of their meal and let AI identify the foods and estimate nutrition — making food diary logging as easy as taking a picture.

How clients use it

  1. In the food diary, tap the camera icon (📷) to open the scanner
  2. Take a photo of the meal (or select from gallery)
  3. AI analyzes the image and returns a list of detected foods with estimated portions and calories
  4. The client reviews the results — they can remove items or adjust portions
  5. Tap Confirm & Log to save the entry to their diary

What AI detects

The scanner uses GPT-4o Vision and is trained to recognize Indian cuisine:

  • Indian staples — dal, roti, rice, sabzi, dosa, idli, paratha, upma
  • Proteins — paneer, chicken, fish, eggs, legumes
  • Snacks — samosa, pakora, chaat, bhel
  • Beverages — chai, lassi, buttermilk, juice
  • International foods — pasta, salad, sandwich, sushi

Each detected food is matched against the IFCT/INDB/USDA database for accurate nutrition values.

Gating

AI food scanning has three levels of control:

  1. Plan level — your subscription plan must include AI features (all plans include AI credits)
  2. Org level — you can disable AI scanning for your entire practice in Settings → AI
  3. Client level — the AI Food Scanning feature toggle can be disabled per client

Consider disabling AI scanning for clients with eating disorders where calorie estimation from photos may be triggering. Use the per-client toggle for this.

Credit cost

Each scan costs 2 AI credits from your practice's monthly allowance. The client doesn't see or manage credits — it's deducted from your plan quota.

Water tracking

The portal includes a dedicated water tracker that helps clients stay hydrated throughout the day.

How it works

  • The water tracker appears on the portal Home screen as a progress ring
  • Quick-add buttons let clients log common amounts (1 glass = 250ml, 1 bottle = 500ml)
  • A custom amount option allows logging any quantity
  • The progress ring fills as the client approaches their daily goal
  • When the goal is reached, a celebration animation plays

Daily goal

The water goal defaults to 2.5L but can be customized per client in their profile settings. The goal appears as a reference line on the progress ring.

Push reminders

When water reminders are enabled (Settings → Client Portal → Push Notifications), clients receive periodic nudges:

  • Configurable interval: every 1, 2, 3, or 4 hours
  • Only sent during waking hours (respects quiet hours)
  • Shows current progress: "Stay hydrated! You've had 1.2L of 2.5L today"

Practitioner view

The engagement dashboard shows a 7-day water intake bar chart with a goal-met indicator for each day. This helps you spot clients who consistently under-hydrate.

Shopping list

The portal auto-generates a grocery shopping list from the client's active meal plan.

How it works

  • The shopping list is accessible from the quick-action drawer (center + button → Shopping List)
  • Items are grouped by food category (grains, vegetables, fruits, dairy, protein, etc.)
  • Each item shows the food name and total quantity needed for the plan period
  • Clients check off items as they shop — checked items move to a "Done" section

Regeneration

The shopping list regenerates automatically when:

  • A new meal plan is activated
  • The practitioner updates the current plan

Clients can also manually regenerate for a specific date range if they only want to shop for a few days.

Checked items are stored locally on the client's device. If they switch devices, the checked state resets. The list itself (unchecked items) is always generated fresh from the meal plan.

Recipes

Clients can browse and cook recipes that are part of their meal plan.

Recipe viewer

When a meal plan includes recipes, clients can access them from:

  • The Recipes section in the quick-action drawer
  • Tapping a recipe name in any meal card

Each recipe page shows:

  • Recipe image and description
  • Prep time, cook time, total time, and difficulty level
  • Servings with per-serving nutrition (calories, protein, carbs, fat, fiber)
  • Full ingredient list with quantities
  • Step-by-step instructions

Cooking mode

Tap Start Cooking to enter a full-screen, step-by-step cooking mode:

  • One instruction per screen with large, readable text
  • Swipe or tap to advance through steps
  • Timer integration for steps that require waiting
  • Screen stays awake during cooking mode

Recipes are a great way to improve compliance. Clients who can see exactly how to prepare their meals are more likely to follow the plan.

Notification settings

Clients can manage their own notification preferences from the portal user menu → Notification Settings. This page lets them:

  • Toggle individual notification types on/off (meal reminders, water reminders, streak alerts, message alerts)
  • Set quiet hours — a time range during which no notifications are sent (e.g., 10 PM to 8 AM)
  • Choose notification sound preferences

Both the practitioner's org-level settings AND the client's personal preferences must allow a notification type for it to be delivered.

Welcome card (new clients)

When a client first accesses the portal and has no active meal plan yet, they see a Welcome Card on the home screen instead of the usual daily summary. The card:

  • Greets the client by name
  • Explains what the portal offers based on their enabled features
  • Provides quick-start guidance (e.g., "Your dietitian will share your meal plan here soon")
  • Highlights available features they can use immediately (water tracking, weight logging, messaging)

The welcome card disappears automatically once the client has an active meal plan.

Special days & events

Clients can view practitioner-set special days and mark their own upcoming events.

Viewing special days

When a holiday, festival, or event is within 3 days, the portal home shows a Special Day Card with:

  • Event emoji and title with countdown ("Tomorrow", "In 2 days", "Today")
  • Dietitian's guidance text in a highlighted box
  • Adjusted calorie target (if different from normal) with visual comparison
  • Tips list with actionable bullet points
  • Compliance note when tracking is paused

The card appears between the practitioner note and the water tracker on the home screen.

Marking events (client-initiated)

Clients can tell their dietitian about upcoming events:

  1. Tap the + button in the bottom navigation
  2. Select "Mark event" from the quick-action grid
  3. Choose a type (Party, Travel, Vacation, Wedding, Exam, Other)
  4. Set the date (and optional end date for multi-day events)
  5. Add a note for the dietitian (optional)
  6. Tap "Send to Dietitian"

This notifies the practitioner via chat message and appears on their calendar. The practitioner can then respond with guidance, adjust the plan, or add tips.

Encouraging clients to mark events ahead of time creates proactive communication touchpoints. You can prepare tips before a wedding or travel day instead of reacting after the fact.

Flexible days

On special days where the practitioner has enabled "Skip compliance tracking":

  • The diary shows a "Flexible Day" banner
  • Logging is optional — no pressure to track
  • Compliance scores exclude that day from calculations
  • The client sees "Compliance tracking paused. Enjoy!" on their home card

This prevents planned celebrations from artificially dropping adherence scores.

Feature toggles

You control exactly which features each client can access. Open a client → Portal tab → expand Portal Features.

FeatureDefaultWhat it controls
Meal PlanOnView assigned meal plans
Food DiaryOnLog meals and compliance
Water TrackingOnLog daily water intake
Weight LoggingOnTrack weight and measurements
Shopping ListOnAuto-generated grocery list
RecipesOnView recipes with cooking mode
Progress PhotosOffUpload before/after photos
Nutrient DetailsOffShow macro breakdown per meal and per item
Food InfoOffTap food items to see detailed nutrition info
MessagingOnChat with practitioner
GoalsOnTrack goals with multi-metric logging, overdue alerts, progress history, and auto-complete
AI Food ScanningOffSnap meal photos to auto-log food with AI
AppointmentsOnView upcoming follow-ups
Fasting TimerOffIntermittent fasting tracker (coming soon)
PaymentsOnView invoices and pay online (coming soon)

When a feature is disabled, the client sees a locked screen with a message to contact their dietitian. They can't access the feature at all.

Nutrient visibility

Separate from the feature toggles above, Nutrient Visibility controls which specific nutrients the client sees — not whether they see nutrients at all. This is configured in the Nutrient Visibility card below the Portal Features section.

For example, you might enable Nutrient Details (so the client sees macro breakdowns) but hide Fat and Fiber — the client would only see calories, protein, and carbs.

The visibility setting affects:

  • Portal daily summary card (calorie ring and macro bars)
  • Portal meal cards (per-meal calorie count and macro pills)
  • Portal day totals
  • Portal food info drawer (macro donut and bars)
  • Portal recipe drawer (per-serving nutrition)
  • PDF exports (all nutrient displays)

This is especially useful for clients recovering from eating disorders, where showing calorie or fat numbers may be counterproductive. Hide the triggering nutrients while still tracking them internally for your clinical records.

The setting cascades: practice default → per-client override → per-plan override. Click Reset to practice defaults to remove a client-level override.

Engagement dashboard

The Portal tab in the client hub shows a real-time engagement dashboard so you can monitor how actively each client is using the portal.

Metrics shown

MetricWhat it tells you
StreakConsecutive days with at least one diary entry
CompliancePercentage of planned meals marked as done or modified — toggleable between 7-day and 30-day periods
Days LoggedHow many days in the selected period had any diary activity
Portal ActivityTotal portal events (meal logs, weight entries, photo uploads) in the last 7 days
Water chartDaily water intake bar chart for the last 7 days with goal-met indicator
30-day summaryMonthly compliance percentage and days logged

Compliance trend

A weekly bar chart showing compliance percentage over the last 8 weeks. Color-coded:

ColorMeaning
Green80%+ compliance — client is following the plan well
Amber50–79% — needs attention
RedBelow 50% — client may need a check-in
GrayNo diary data for that week

Compliance is calculated as: meals followed ÷ total planned meals for that period. The denominator uses the actual number of meals in the client's plan (not just the number of diary entries), so a client who logged 2 out of 6 meals shows 33%, not 100%.

The compliance calendar also shows days with zero diary activity as red (0%) if the plan was active on that day. This gives you an honest view of which days were completely missed vs partially followed.

If a client's compliance drops below 50% for two consecutive weeks, consider scheduling a check-in call. The compliance trend makes this pattern easy to spot.

Weight trend

The Portal tab shows all weight entries — both practitioner-logged and client self-logged — in a single timeline. Each entry shows:

  • Weight in kg with BMI
  • A Self-logged or Practitioner badge showing who recorded it
  • Delta from the previous entry (green for loss, orange for gain)
  • Date of the entry

Progress photos

Client-uploaded progress photos appear in the Portal tab with date and angle labels (front, left side, right side, back). Photos require client consent before upload.

Daily compliance browser

Browse any day's diary entries using the date navigator at the bottom of the Portal tab. Each entry shows:

  • Meal type (breakfast, lunch, dinner, etc.)
  • Status (done, modified, skipped, extra)
  • Mood emoji and hunger level (if the client logged them)
  • Time the entry was logged
  • Meal photo (if uploaded)
  • Macro breakdown (if available)

Activity timeline

Every action the client takes on the portal — logging a meal, recording weight, uploading photos, reaching their water goal — automatically appears in the client's Timeline tab with a "via portal" badge. This gives you a complete picture of client engagement without asking them.

Portal activity events use the same timeline as practitioner actions (consultations, notes, billing). Filter by category to see only portal events, or view everything together for the full picture.

Plans tab compliance

The Plans tab in the client hub shows per-plan compliance data:

  • Compliance percentage
  • Meals followed vs total
  • Skipped meals count
  • Days the client was active on the plan
  • Last diary activity date

This helps you see which plans are being followed and which ones the client may have abandoned.

On this page