Settings
Configure your practice profile, branding, billing, team, and subscription.
Settings is where you configure everything about your practice. Access it from Settings in the sidebar.
Set up your practice profile and billing configuration first — they're used across exports, invoices, and client-facing materials.
Practice profile
Your clinic or practice identity. What you see here depends on whether you're a solo practitioner or a clinic with a team.
Solo practitioners
A single form covers everything — your name, credentials, specializations, bio, contact, and address. This information appears on PDFs, invoices, and the client portal.
| Field | Example | Used in |
|---|---|---|
| Practice name | Dt. Priya Sharma Nutrition | Exports, invoices, portal |
| Title | Dt. | PDF header, portal |
| Credentials | RD, CDE | PDF header, portal |
| License number | ICDA-12345 | PDF footer |
| Specializations | PCOS, Weight Management | Profile |
| Bio | Registered dietitian specializing in... | Client portal |
| Phone / Email | +91 98765 43210 | Exports, invoices |
| Address | 204, Health Plaza, Bangalore | Invoices |
| Timezone | Asia/Kolkata (IST) | Scheduling |
| Business hours | Mon-Sat 9:00-18:00 | Portal, scheduling |
Clinics (2+ team members)
The settings page splits into three sections:
Clinic Information — your clinic's identity (name, specializations, bio, contact, address, hours). This is the org-level brand.
Client-Facing Branding — controls how your practice appears on PDFs, the client portal, and emails. See Branding mode below.
Your Profile — your individual professional identity (title, credentials, license, specializations, bio). Each team member fills in their own profile.
Branding mode
Branding mode only appears when your practice has 2 or more team members. Solo practitioners don't need it — the system auto-detects and uses your personal identity.
Controls which identity appears on client-facing materials:
| Mode | PDF header | "Prepared by" line | Portal identity | Best for |
|---|---|---|---|---|
| Auto (default) | Clinic name | Practitioner name + credentials | Clinic + practitioner card | Most clinics |
| Clinic Only | Clinic name | Hidden | Clinic name + bio | Consistent brand, staff turnover resilience |
| Clinic + Practitioner | Clinic name | "Prepared by: Dt. Priya, RD" | Clinic + practitioner card | Personal rapport + clinic trust |
| Practitioner Only | Practitioner name | Hidden (redundant) | Practitioner profile | Shared-space clinics, independent practitioners |
Practitioner visibility controls
When the branding mode includes practitioner information, you can control exactly what clients see:
| Toggle | Default | What it controls |
|---|---|---|
| Photo | On | Practitioner photo on portal |
| Credentials | On | "RD, CDE" after name |
| Bio | On | Practitioner bio on portal |
| Specializations | On | Practitioner specializations |
| Direct phone | Off | Practitioner's personal phone |
| Direct email | Off | Practitioner's personal email |
Most clinics keep photo, credentials, and bio visible but hide direct phone and email — clients contact the clinic, not individual practitioners.
Practitioner profiles
Each clinical team member (owner, lead dietitian, dietitian, intern) has their own professional profile:
- Title — Dr., Dt., Mr., Ms., Prof.
- Display name — override for how their name appears (optional)
- Credentials — RD, CDE, CNSC, MSc Nutrition, etc.
- License number — registration/license number
- Specializations — individual areas of expertise
- Bio — personal about section shown to their clients
- Signature — individual signature image for PDFs
Profiles are edited from Settings → Practice Profile → Your Profile (for your own) or Settings → Team → Edit Profile (admin editing a team member's profile).
Practice defaults
Configure default units and targets that apply to all new clients. Individual clients can override these in their profile.
| Setting | Default | Description |
|---|---|---|
| Unit system | Metric (cm, kg, ml) | Choose between Metric and Imperial (ft/in, lbs, fl oz). Controls the default unit shown on height, weight, and body measurement fields across the app. |
| Default water goal | 2,500 ml | Daily water intake target used in the client portal's water tracker. Quick presets: 2.0L, 2.5L, 3.0L, 3.5L. |
The unit system setting controls the default unit for new fields. Each measurement field has its own inline unit dropdown — practitioners can switch between kg and lbs (or cm and inches) on any individual field regardless of the practice default.
Clients can also have their own unit system and water goal overrides, set in their profile under Body & Goals. When set, the client's preference takes priority over the practice default.
Food database
Customize how the food database works for your practice — portion sizes, visibility, exchange lists, alerts, and cooking adjustments. Access from Settings → Food Database.
This is a tabbed settings page with five sections:
| Tab | What it controls |
|---|---|
| Portions & Measures | Override platform portion sizes, create custom portions |
| Visibility & Filters | Dietary type filter, database selection, display preferences |
| Exchange Lists | ICMR food exchange groups and food-to-group mappings |
| Alerts & Restrictions | Auto-warn or block foods based on allergens, nutrients, or dietary type |
| Cooking Factors | Yield factors and nutrient retention by cooking method |
Food database settings require the Settings → Edit permission. Team members with view-only access can see the settings but not modify them.
For full details on each section, see Food Database → Practice-level controls.
Food database
Customize how the food database works for your practice — portion sizes, visibility, exchange lists, allergen policies, and cooking adjustments. Access from Settings → Food Database.
This is a comprehensive configuration module with 5 sub-tabs:
| Tab | What it controls |
|---|---|
| Portions & Measures | Override platform portion sizes (katori, roti, etc.) and create custom portions |
| Visibility & Filters | Control which foods appear in search — dietary type, databases, categories |
| Exchange Lists | ICMR food exchange groups with daily tracking |
| Alerts & Restrictions | Auto-warn or block foods based on allergens, nutrients, or dietary type |
| Cooking Factors | Yield factors and nutrient retention by cooking method |
Food Database settings require the "Settings: Edit" permission. Team members with view-only access can see the settings but not modify them. See Team Management for role details.
For full documentation on each sub-tab, see Food Database → Practice-level controls.
Meal structure
Customize the default meal slots for new plans:
| Default slot | Typical time | Can customize? |
|---|---|---|
| Early Morning | 6:00 AM | ✓ Rename, reorder, remove |
| Breakfast | 8:00 AM | ✓ |
| Mid-Morning | 10:30 AM | ✓ |
| Lunch | 1:00 PM | ✓ |
| Evening Snack | 4:30 PM | ✓ |
| Dinner | 8:00 PM | ✓ |
| Bedtime | 10:00 PM | ✓ |
You can also add custom slots like "Pre-Workout", "Post-Workout", or "Midnight Snack".
Meal structure is organization-level — all practitioners in your team share the same default slots. Changes apply to new plans only; existing plans keep their original structure. Individual clients can override times and disable slots in their profile — see Client Management → Meal Schedule.
Food database
Customize how the food database works for your practice. Access from Settings → Food Database.
Portions & measures
Override platform portion sizes to match your practice. Every dietitian uses different katori sizes, roti weights, and serving standards — configure yours once and it applies everywhere.
Standard portion overrides — change the gram weight of any platform portion:
| Portion | Platform default | Your override |
|---|---|---|
| 1 katori (small) | 150g | Set your value (e.g., 100g for ICMR standard) |
| 1 katori (medium) | 200g | Set your value |
| 1 roti | 30g | Set your value (e.g., 40g for larger rotis) |
| 1 cup | 240g | Set your value |
Overrides apply to all new meal plans. Existing plans keep their saved gram weights.
Custom portions — create portions specific to your practice:
- "1 palm (protein)" = 85g — for meat/fish categories
- "1 fist (veggies)" = 80g — for vegetables
- "1 steel glass" = 250g — for beverages
- "1 small bowl" = 120g — for pulses/dal
Assign custom portions to specific food categories so they only appear for relevant foods. Set a default portion per category.
The "katori problem" is regional variation — ICMR defines small katori as 100g, but many practices use 150g or 200g katoris. Override it to match YOUR practice standard rather than debating which is "correct".
Visibility & filters
Control which foods appear in search results across your practice:
Dietary type filter — hide food types that don't apply to your practice. A vegetarian practice can hide all non-veg foods from search.
Database selection — choose which databases are active (IFCT, INDB, USDA, Custom). Disable databases you don't use. You can only activate databases your plan includes; locked sources stay preview-only until you upgrade.
Hidden categories — hide entire food categories (e.g., alcoholic beverages, infant foods, supplements).
Display preferences:
These settings control how food portions and gram weights are displayed across the meal plan builder, client portal, and PDF exports — ensuring consistent formatting everywhere.
| Setting | Options | Default | Affects |
|---|---|---|---|
| Show grams | Always / On hover / Never | Always | Builder, Portal, PDF |
| Gram rounding | Exact / Nearest 5g / Nearest 10g | Nearest 5g | Builder, Portal, PDF |
| Show Hindi names | On / Off | Off | Builder |
| Portion display | "1.5 katori (225g)" / "225g (1.5 katori)" / "1.5 katori" | Portion first | Builder, Portal, PDF |
| Energy unit | kcal / kJ | kcal | Builder |
| Food name format | Cleaned / Original / Hindi | Cleaned | Builder |
Choose "Grams first" for clients who prefer metric precision (e.g., bodybuilders, athletes). Choose "Portion only" for clients who find gram weights overwhelming — they'll see friendly names like "1.5 katori" without numbers.
Exchange lists
Built-in ICMR-NIN 2024 food exchange system. One click loads the 9 standard exchange groups:
| Group | 1 Exchange | ~Calories |
|---|---|---|
| 🌾 Cereals & Millets | 30g raw | 100 kcal |
| 🫘 Pulses & Legumes | 30g raw | 100 kcal |
| 🥛 Milk & Dairy | 100ml | 70 kcal |
| 🥬 Vegetables (A) | 100g | 20 kcal |
| 🥕 Vegetables (B) | 100g | 40 kcal |
| 🍎 Fruits | 100g | 40 kcal |
| 🍗 Meat & Fish | 50g | 100 kcal |
| 🧈 Fats & Oils | 5g (1 tsp) | 45 kcal |
| 🍬 Sugar & Jaggery | 5g (1 tsp) | 20 kcal |
Create custom exchange groups for specialized protocols. Map foods to groups with grams-per-exchange values. Exchange counts appear alongside portions in the meal plan builder.
Exchange lists are optional. If you don't use the ICMR exchange system, simply don't load them — the meal plan builder works the same without them.
Alerts & restrictions
Set practice-level food policies that auto-warn or block foods when adding them to meal plans:
Trigger types:
- Allergen tag — warn/block when food has specific allergen tags (nuts, gluten, dairy, soy, egg, fish, shellfish)
- Nutrient threshold — warn when a nutrient exceeds a value per 100g (e.g., potassium > 300mg for renal patients)
- Dietary type — block non-veg foods for vegetarian clients
- Food category — restrict entire categories
Action types:
- Warn — shows a dismissible warning, practitioner can add anyway
- Block — prevents the food from being added
- Note — shows an info notice (no action required)
Scoping — policies can apply to all clients, or only to clients with specific goals (diabetes, renal, pregnancy) or tags (nut-allergy, celiac, vegetarian).
Quick templates — one-click setup for common policies: Renal (high potassium), Nut Allergy, Gluten Free, Diabetes (high sugar), Pregnancy (caffeine), Vegetarian (non-veg block).
Start with 2-3 policies that match your most common client conditions. You can always add more later. Policies only trigger for clients whose goals or tags match the policy scope.
Cooking factors
Configure how food weight and nutrients change with cooking methods. Platform defaults are based on USDA Retention Factor Release 6 and Indian cooking consensus.
Yield factors — how weight changes after cooking:
- Rice (boiled): ×2.5 — 100g raw becomes 250g cooked
- Dal (pressure cooked): ×2.2 — 100g raw becomes 220g cooked
- Roti (dry roasted): ×0.85 — 30g flour becomes ~25g roti
- Deep fried: ×0.7 — significant water loss
Nutrient retention — fraction of nutrient retained:
- Deep frying: fat ×1.5 (absorption), protein ×0.9 (slight loss)
- Boiling: energy ×1.0 (no change), fiber ×0.95 (minimal loss)
- Grilling: fat ×0.8 (drips off), protein ×0.95
Available cooking methods: Raw, Boiled, Pressure Cooked, Steamed, Shallow Fried, Deep Fried, Dry Roasted, Grilled, Baked, Sautéed, Tempered (Tadka).
Service packages
Define the packages you offer to clients. See Client Billing for full details.
Billing & tax
Configure your billing defaults for GST-compliant invoicing:
| Setting | Default | Description |
|---|---|---|
| Tax type | GST | GST, VAT, Sales Tax, or None |
| Tax rate | 18% | Default rate (0%, 5%, 12%, 18%, 28%) |
| Tax inclusive | Yes | Prices include tax |
| Currency | INR (₹) | 8 currencies supported |
| GSTIN | (your number) | Shown on invoices |
| SAC code | 9993 | Service Accounting Code |
| Place of supply | (your state) | For CGST/SGST vs IGST |
| Invoice prefix | WN | Custom numbering (e.g., WN-2026-0001) |
| Due days | 7 | Default payment due period |
| Financial year | April | April (India) or January |
If your practice is not GST-registered, set tax type to "None" or tax rate to 0%. Invoices generate without tax lines. Many solo dietitians under ₹20L turnover are GST-exempt.
Payment collection details
Configure your payment details so clients know how to pay:
| Field | Description |
|---|---|
| UPI ID | Your UPI address (shown on shared invoices) |
| Bank name | Bank name for NEFT/RTGS |
| Account name | Account holder name |
| Account number | Bank account number |
| IFSC | Bank IFSC code |
| Payment instructions | Free-text instructions shown to clients |
Export & branding
Control how your PDF exports look — logo, colors, contact info, signature, section visibility, and layout options.
Default nutrient visibility
Set which nutrients are shown to clients by default across all PDFs and the portal. Click any nutrient pill to toggle it off. All five nutrients (calories, protein, carbs, fat, fiber) are visible by default.
This is the practice-level default — the lowest priority in the cascade. Per-client and per-plan overrides take priority when set.
| Cascade level | Where to set | Priority |
|---|---|---|
| Practice default | Settings → Export & Branding | Lowest (fallback) |
| Per-client | Client → Portal tab → Nutrient Visibility | Overrides practice |
| Per-plan | Plan Settings → Client Nutrient Visibility | Overrides client |
| Per-export | Export dialog → Visible Nutrients | Highest (one-time) |
If most of your clients don't need to see fiber, set the practice default to hide it. Then enable it only for the specific clients who need it via the per-client override.
Notifications
Configure which emails MealStack sends:
| Notification | Default | Description |
|---|---|---|
| Welcome email | On | Sent when a new client is created |
| Meal plan delivery | On | Sent when a meal plan is shared via "Send to Client" |
| Plan activation email | On | Automatically sent when a meal plan is activated |
| Follow-up reminder | On | Sent before scheduled follow-ups |
| Consultation reminder | On | Sent before scheduled consultations |
| Invoice reminders | On | Automated payment reminders (1 day before, 3/7/14 days overdue) |
| Include PDF | On | Attach PDF to meal plan delivery emails |
Client Portal
Customize how your client portal looks and feels. Access from Settings → Client Portal.
The Client Portal settings tab is available on all paid plans. Some features (favicon, header banner) require the Pro plan. White-label (hide branding) requires the Clinic plan.
Appearance
Configure the portal's visual identity:
| Setting | Description |
|---|---|
| Primary color | Brand color for buttons, links, progress rings, and navigation. Includes a WCAG contrast indicator |
| Accent color | Secondary color for highlights |
| Theme mode | Auto (follows client's system preference), Light, or Dark |
| App name | Custom name for page titles and PWA install prompt. Leave blank to use your practice name |
| Custom favicon | Square icon for browser tabs (Pro+ plan). Falls back to your clinic logo |
Home page
| Setting | Description |
|---|---|
| Welcome message | Custom greeting on the portal home screen. Supports {name} placeholder for the client's first name. Max 200 characters |
| Header banner | 16:9 banner image at the top of the home page (Pro+ plan) |
Default portal features
Set org-level defaults for the 14 feature toggles. When you enable portal for a new client, these defaults are applied. Existing clients keep their current settings.
Intake form steps
Choose which sections appear in the client intake form. Toggle individual steps on or off — "About You" is always required. Changes apply to new intake form links only.
| Step | What it collects |
|---|---|
| About You | Name, date of birth, gender (always on) |
| Body & Goals | Height, weight, goal, activity level |
| Diet & Food | Dietary type, allergies, food preferences |
| Medical History | Conditions, medications, supplements |
| Lifestyle | Sleep, stress, cooking skill, eating out |
| Women's Health | Pregnancy, menstrual cycle, menopause |
| Typical Diet | Current eating habits |
| Anything Else | Concerns, motivation, expectations |
Push notifications
Control which push notifications are sent to clients who install the portal as an app:
| Setting | Default | Description |
|---|---|---|
| Meal reminders | On | Notify at meal times |
| Water reminders | Off | Periodic hydration reminders (1h / 2h / 3h / 4h interval) |
| Streak notifications | On | Celebrate logging streaks |
| Message notifications | On | Notify when you send a message |
Footer & branding
| Setting | Description |
|---|---|
| Footer text | Custom text at the bottom of every portal page |
| Hide MealStack branding | Remove "Powered by MealStack" (Clinic plan only) |
Preview
The settings page includes an inline preview showing how the portal header, calorie ring, and bottom navigation look with your chosen colors. Updates in real-time as you change settings.
Team
Manage your practice team. See Team Management for full details.
AI Assistant
Configure AI-powered features for your practice. Access from Settings → AI Assistant.
Enabling AI
AI must be enabled at the organization level before any practitioner can use it. This is a one-time consent step for DPDP compliance.
When enabled, AI can:
- Generate meal plans from client profiles
- Suggest foods based on nutrient gaps
- Swap items with context-aware alternatives
- Generate complete recipes with ingredients and steps
Food database preference
Select which food databases AI should prefer when matching food names. Indian dietitians should select IFCT and INDB for culturally relevant results.
Usage tracking
View your monthly AI credit usage:
| Plan | Monthly credits | Free operations |
|---|---|---|
| Free | 10 | Suggestions & swaps |
| Starter | 150 | Suggestions & swaps |
| Pro | 750 | Suggestions & swaps |
| Clinic | 2,500 | Suggestions & swaps |
Food suggestions and swap suggestions are always free — they don't consume credits. Only generation actions (day generation, recipe generation, label scanning) use credits.
Bonus credit packs
Purchase additional credits if you exceed your monthly allowance:
| Pack | Credits | Price |
|---|---|---|
| 100 credits | 100 | ₹499 |
| 500 credits | 500 | ₹1,999 |
| 2,000 credits | 2,000 | ₹5,999 |
Bonus credits are valid for 12 months and are used automatically when your plan allowance runs out.
Food name mappings
View and customize how AI food names map to your food database. Platform-level mappings cover common foods (113+ entries). You can add org-level overrides for foods specific to your practice.
AI disclaimer in exports
Toggle whether MealStack automatically adds an AI disclaimer to PDF exports when a plan contains AI-generated items. Enabled by default. When on, the text "Some items in this plan were generated with AI assistance" is appended to the PDF footer. Turn it off if you prefer not to show this to clients.
Privacy
- Client names and contact info are never sent to AI
- All AI outputs are drafts — practitioners review before applying
- Data is processed with zero retention
- You can disable AI anytime from this settings page
Subscription billing
Manage your MealStack subscription:
- Current plan — view plan name, usage bars (clients, team members, storage), billing cycle, and renewal date
- Trial status — days remaining if on a trial, with upgrade prompt
- Cancel / reactivate — cancel at end of billing period (keeps access until then) or reactivate a pending cancellation
- Billing history — download past invoices as PDF
- Payment method — update your card/UPI via Razorpay
- Billing details — legal entity name, GSTIN, PAN, billing address (shown on your subscription invoices from Workfile)
- Discount codes — enter a promo code during upgrade checkout
This is your practice's subscription to MealStack (the platform), not client billing. For client billing, see Client Billing.