MealStack

Food Database

Search 9,349 foods, create custom foods with AI, scan nutrition labels, customize portions, configure ICMR exchange lists, and set allergen policies.

MealStack includes India's most comprehensive food database — the only platform combining IFCT 2017, INDB (Indian Nutritional Database), and USDA FoodData Central. Can't find a food? Type a name and AI fills everything, or scan a nutrition label photo.

Data sources

DatabaseFoodsCoverageBest for
IFCT 2017542Indian foods — dal, roti, sabzi, regional dishesIndian clients, regional cuisines
INDB1,014Indian Nutritional Database — expanded Indian foodsBroader Indian food coverage
USDA SR Legacy7,793International foods — global coverageInternational foods, packaged items

Each food includes up to 80+ nutrients: macros, 12 minerals, 15 vitamins, amino acids, fatty acids, sugars, phytate, oxalate, and more.

Free plans include the full IFCT 2017 database and can preview foods from INDB and USDA in search. Unlocking INDB and USDA for full nutrition detail and adding them to meal plans is available on Starter and above. Search results show items from all three sources with a badge indicating the source (IFCT, INDB, or USDA); locked sources show a preview with an upgrade prompt.

Custom foods (creating your own foods, cloning existing ones, label scanning, and AI nutrition estimates) are available on Starter and above.

Branded product lookup

Can't find a packaged food like Amul Butter, Britannia biscuits, or a protein bar? MealStack can look up branded products via barcode or name search using Open Food Facts — covering 13,000+ Indian packaged products.

How it works

  1. Search for a food in the meal plan builder (e.g., "amul")
  2. If local results are sparse, the Branded Products section appears automatically
  3. Results show product image, brand, macros, and serving size
  4. Click a product → review the nutrition → click Save & Add to Meal

The product is saved as a custom food in your practice. Next time you search, it appears in your local results — no repeat lookups needed.

Barcode lookup

Enter a barcode number (EAN-8 or EAN-13) to find a specific product instantly. The input validates the barcode in real-time:

  • Shows digit count as you type
  • Validates the EAN check digit
  • Auto-submits when a valid barcode is detected
  • Works with Indian product barcodes (starting with 890)

Data quality

Branded product data is community-sourced (from Open Food Facts) and marked as unverified. The food detail panel shows this status clearly. We recommend cross-checking nutrition values against the physical product label before using in client plans.

Branded lookup data is fetched externally and not permanently stored until you explicitly save it. This keeps your food database clean — only products you actually use are added. Data from Open Food Facts is provided under the Open Database License (ODbL).

Searching

The search bar supports multiple languages and fuzzy matching:

English — Type "chicken breast" → results show Chicken, breast, without skin, cooked (USDA) and Chicken, breast, raw (IFCT).

Hindi — Type "aloo" → Potato entries. Type "bhindi" → Okra / Lady's finger. Type "dahi" → Curd / Yogurt. Type "chana" → Chickpea / Bengal gram.

Regional — Type "batata" → Potato (Marathi). Type "vendakkai" → Okra (Tamil). Type "baingan" → Eggplant / Brinjal. Type "palak" → Spinach.

Search uses full-text matching with fuzzy support — typos and partial matches work. Searching "chiken" will still find "chicken". Search aliases are built in, so "cottage cheese" finds "Paneer".

Food detail view

Click any food to open the detail panel showing:

  • Macro donut chart — visual ring showing protein/fat/carb calorie ratio with total kcal centered
  • Nutrient highlights — auto-generated "Rich in" chips showing nutrients exceeding 10% of daily value (e.g., "Vit K 5×", "Calcium 90%", "Iron 40%")
  • Portion selector — choose from pre-configured portions or enter a custom gram amount
  • Full nutrient breakdown — all 80+ nutrients grouped by type (Proximates, Minerals, Vitamins, Lipids, Amino Acids, Sugars) with RDA percentage bars
  • Regional names — Hindi and regional language names for the food

The nutrient values scale automatically when you change the portion size. Select "1 katori (150g)" and all values update to show the nutrients for that serving.

Portion sizes

IFCT foods come with Indian-friendly portion sizes pre-configured:

PortionApproximate weightCommon for
Katori (small bowl)~150gDal, sabzi, rice, curd
Roti / Chapati~30gWheat roti, chapati
Paratha~60gStuffed paratha
Idli~40gIdli
Dosa~50gPlain dosa
Glass~200mlMilk, buttermilk, lassi
Cup~240mlBeverages
Tablespoon~15gOil, ghee, sugar
Teaspoon~5gSpices, honey

Select a portion when adding food to a meal plan, and the nutrients auto-calculate based on the weight.

Customizing portions

Every practice uses different portion sizes. Override any platform portion to match your standard:

  1. Go to Settings → Food Database → Portions & Measures
  2. Click the gram value next to any portion to override it
  3. Your override applies to all future meal plans

You can also create entirely new portions (like "1 palm" = 85g for protein foods) and assign them to specific food categories. See Settings → Food Database for full details.

If your katori is 100g (ICMR standard) but the platform shows 150g, override it once in settings. Every meal plan you create from then on uses YOUR katori size. No need to manually adjust gram weights each time.

Categories

Browse foods by category using the visual category grid. Each category has an emoji icon for quick scanning:

CategoryIconExamples
Cereals and Millets🌾Rice, wheat, bajra, ragi, jowar
Grain Legumes🫘Moong dal, chana, masoor, toor
Green Leafy Vegetables🥬Palak, methi, amaranth, bathua
Fruits🍎Banana, mango, guava, papaya
Milk and Milk Products🥛Milk, curd, paneer, ghee
Nuts and Oil Seeds🥜Almonds, cashews, groundnuts
Poultry🍗Chicken, eggs
Fish🐟Rohu, pomfret, mackerel, prawns
Edible Oils and Fats🫒Mustard oil, coconut oil, ghee

Use the category browser when you want to explore options — e.g., browsing "Green Leafy Vegetables" to find iron-rich greens for an anemic client.

Custom foods

Add foods that aren't in the database — branded products, regional specialties, or client-specific items. MealStack's custom food creator is AI-powered: type a food name and AI fills nutrients, portions, Hindi name, category, allergens, and more — or scan a nutrition label photo.

Open custom food form

Click Add Custom Food on the food database page.

Enter a food name

Type the food name. As you type, MealStack:

  • Checks for duplicates — shows similar foods from the database right below the name field so you don't create duplicates
  • Offers AI fill — after 3+ characters, a prompt appears: "AI can fill everything — nutrients, portions, category, and more". One click fills 20+ fields.

Click Fill with AI to have AI populate the entire form from just the food name. AI fills:

  • 16 nutrients — energy, protein, carbs, fat, fiber, sugars, calcium, iron, potassium, sodium, zinc, vitamins A, B9, B12, C, D
  • Portions — 2-4 common Indian portions with gram weights and Hindi names
  • Category — auto-selects the best matching food category
  • Dietary type — veg, non-veg, eggetarian, or vegan
  • Hindi name — Devanagari script name for search
  • Search aliases — alternate names, transliterations, regional names
  • Description — brief consumer-friendly description
  • Meal suitability — which meal slots the food fits (breakfast, lunch, dinner, etc.)
  • Glycemic index — low, medium, or high classification
  • Allergens — common allergens present (gluten, dairy, nuts, etc.)
  • Confidence level — high, medium, or low with a source note

Select a context chip before filling to improve accuracy: Homemade, Restaurant, Packaged, Raw, or Street Food. For example, selecting "Restaurant" tells AI to estimate with higher fat content.

Refine if needed

After AI fills, a refine input appears below the name field. Type additional context like "deep-fried version" or "Amul brand" and click Re-fill to update the estimates.

Review and save

All AI-filled values are editable. Review the nutrients, adjust anything that looks off, and click Create Food.

AI fill is free — it doesn't consume any AI credits. This encourages creating complete custom foods rather than leaving nutrient fields empty.

Completeness indicator

The dialog header shows a progress bar tracking how complete your food entry is: Name, Category, Diet Type, Macros, Calories, Portions, Image. After AI fill, most checks turn green immediately.

Live macro visualization

As you enter or AI-fill nutrient values, a live donut chart appears in the nutrients section header showing the protein/fat/carb ratio with total calories centered. This gives instant visual feedback on the food's macro profile.

Auto-calculated calories

If you enter protein, carbs, and fat but leave calories empty, MealStack auto-calculates energy using the Atwater formula (P×4 + C×4 + F×9) and shows a blue hint. The calculated value is saved automatically.

Allergen tagging

The Basic Info section includes allergen toggle buttons for 9 common allergens: Gluten, Dairy, Tree Nuts, Peanuts, Soy, Egg, Fish, Shellfish, Sesame. AI auto-fills these when it detects allergens in the food. Selected allergens show as red pills for clear visibility.

Glycemic index

Classify foods as Low GI (<55), Medium GI (55-69), or High GI (≥70) using toggle buttons. AI auto-fills this. Useful for diabetic client meal planning.

Meal suitability

Tag which meal slots a food is suitable for: Early Morning, Breakfast, Mid-Morning, Lunch, Evening Snack, Dinner, Bedtime. AI auto-fills based on the food type. Used by the AI meal generator to place foods in appropriate slots.

Custom foods are scoped to your practice — only your team sees them. They won't appear for other MealStack users. You can edit or delete custom foods anytime from the food detail panel.

Clone from existing

Found a USDA or IFCT food that's close to what you need? Clone it instead of creating from scratch:

  1. Open any food's detail panel
  2. Click Clone — this opens the custom food form pre-filled with all the nutrient values
  3. Modify the name, adjust any nutrients, and save

This is much faster than entering 80+ nutrient values manually.

Clone is especially useful for cooked versions of raw foods. Clone "Rice, raw" → rename to "Rice, cooked (home style)" → adjust calories from 356 to 130 kcal and update other nutrients.

Quick food creator

When you're in the middle of building a meal plan or recipe and need a food that doesn't exist, you don't have to leave your workflow. A Quick Add Custom Food sheet is available inline from three places:

  • Meal plan builder — when food search returns no results, a "Create custom food" button appears. It's also always visible as a footer link while searching.
  • Recipe builder — same pattern in the ingredient search dropdown.
  • AI day preview — when AI suggests a food that can't be matched to the database, a "Create" button appears next to each unmatched item.

The quick creator is a lightweight form with just the essentials:

FieldRequiredNotes
Food nameYesPre-filled from your search query
Dietary typeNoVeg, Non-Veg, Eggetarian, Vegan
CategoryNoSelect from platform categories
Calories (kcal/100g)NoPer 100g edible portion
Protein (g/100g)No
Carbs (g/100g)No
Fat (g/100g)No
Fiber (g/100g)No
Portion sizesNoQuick-add presets or custom

After creating, the food is automatically added to the meal slot or recipe ingredient you were working on — no need to search again.

Need more fields like scientific name, edible factor, or 80+ nutrients? Click "Need more fields? Open full custom food form" at the bottom of the quick creator to switch to the full form with your data carried over.

AI nutrient estimation

Don't know the exact nutrient values? Click Fill with AI in either the quick creator or the full custom food form. Enter just the food name and AI fills:

  • 16 commonly measured nutrients per 100g — macros (energy, protein, carbs, fat, fiber, sugars) plus minerals (calcium, iron, potassium, sodium, zinc) and vitamins (A, B9, B12, C, D)
  • Common portion sizes with gram weights and Hindi names
  • Dietary type classification (veg/non-veg/egg/vegan)
  • Food category auto-selection
  • Hindi/Devanagari name and search aliases
  • Description, meal suitability, glycemic index, and allergens
  • Confidence level — shown as a colored badge (green = high, amber = medium, red = low)
  • Source note — e.g., "Based on IFCT 2017 values for paneer tikka"

The AI handles cooked vs raw disambiguation automatically — "Rice" estimates cooked rice (~130 kcal), "Rice, raw" estimates raw (~356 kcal). For branded foods, it uses known product ranges. For homemade dishes, it estimates based on standard Indian recipes.

Context chips

Before clicking Fill with AI, select a context chip to improve accuracy:

ContextEffect on estimation
🏠 HomemadeModerate oil/ghee, standard home recipe
🍽️ RestaurantHigher fat, richer preparation
📦 PackagedCommercial product ranges
🥬 RawUncooked ingredient values
🛒 Street FoodDeep-fried, heavy preparation

Refine and re-fill

After the initial fill, a refine input appears below the food name. Type additional context and click Re-fill:

  • "deep-fried version" → re-estimates with higher fat
  • "Amul brand" → uses known Amul product values
  • "without oil" → adjusts for dry preparation
  • "South Indian style" → adjusts for regional preparation

AI-estimated values are approximations. Always verify against the nutrition label or a trusted database before using in client plans. The confidence badge helps you judge — "Low confidence" items need extra scrutiny.

AI nutrient estimation is free — it doesn't consume any AI credits. This encourages creating complete custom foods rather than leaving nutrient fields empty.

Nutrition label input

For packaged foods, there are two ways to enter nutrition data from a label:

Scan a label photo

Click Scan Label (📷) in the nutrients section header. Take a photo of the nutrition label or select one from your gallery. MealStack uses GPT-4o vision to extract all values automatically:

  • Reads all printed nutrient values (macros, minerals, vitamins)
  • Detects serving size and whether values are per-serving or per-100g
  • Extracts product name and brand name if visible
  • Detects the veg/non-veg dot symbol on Indian FSSAI labels
  • Handles kcal vs kJ conversion and sodium vs salt conversion
  • Shows confidence level (high for clear labels, low for blurry photos)

After scanning, the form auto-fills with extracted values. If the label is per-serving, MealStack switches to label input mode automatically.

Label scanning costs 1 AI credit per scan (uses GPT-4o vision). For best results, take a clear, well-lit photo of the nutrition facts panel. Avoid angles — shoot straight-on.

Manual label entry

Switch to From Label mode using the tab switcher in the nutrients section. This mode matches what you see on a food package:

  1. Enter the serving size in grams (as printed on the label)
  2. Enter nutrient values per serving (exactly as printed)
  3. MealStack auto-converts everything to per-100g for storage

A real-time conversion indicator shows the per-100g value next to each field (e.g., "→ 12.5/100g") so you can verify the math.

The label serving size is automatically added as a portion size on the food, so you can select "1 serving" when adding it to meal plans.

Label mode is ideal for branded products like protein bars, cereals, packaged snacks, and supplements where the nutrition panel is per-serving, not per-100g.

Packaged food fields

When you enter a brand name or select the "Packaged" context chip, additional fields appear:

  • Barcode — EAN/UPC barcode number for future scanning support
  • Serving Size Label — the serving size as printed on the package (e.g., "Per 30g serving")

Verification

Custom foods start as unverified. The food detail panel shows a badge:

  • 🟢 Verified — nutrient data has been reviewed and confirmed
  • 🟡 Unverified — not yet reviewed (default for new custom foods)
  • 🔵 Recipe-derived — nutrients were auto-calculated from a recipe's ingredients

Click the Verify button in the food detail footer to mark a custom food as verified after reviewing its nutrient data.

Your dashboard shows a notice when you have unverified custom foods: "X custom foods pending verification — Review nutrient data for accuracy before using in client plans." Click it to go to your food database filtered to custom foods.

Duplicate detection

When creating a custom food, MealStack checks for similar names in the database and shows a warning if a match is found. This prevents accidentally creating duplicates.

Favorites

Star frequently-used foods for quick access:

  1. Search for a food or open its detail panel
  2. Click the ★ star icon
  3. Use the Favorites filter to see only your starred items

Star the 20–30 foods you use most often — dal, rice, roti, chicken, paneer, oats, eggs, milk, common vegetables. This makes meal plan building significantly faster.

Calorie density badges

Every food in the list shows a calorie density badge — a quick visual indicator of how calorie-dense the food is per 100g:

BadgeDensitykcal/100gExamples
VL (very low)Very lowUnder 60Cucumber, lettuce, tomato, buttermilk
L (low)Low60–149Most fruits, dal, curd, moong sprouts
M (medium)Medium150–399Rice, roti, chicken, paneer, poha
H (high)High400+Ghee, oil, nuts, dried fruits, cheese

Use density badges for weight management plans. Look for VL and L foods to build volume-rich, low-calorie meals. For weight gain clients, include more M and H foods.

Macro visualization

Search results and the food list show visual macro bars for protein, carbs, and fat — colored progress indicators that give you an instant sense of the food's macro profile without reading numbers.

  • Green bar — Protein
  • Yellow bar — Carbs
  • Orange bar — Fat

The bar length is proportional to the value, making it easy to visually compare foods as you scroll.

Inline actions

Hover over any food row to reveal quick action buttons:

ActionIconWhat it does
FavoriteToggle favorite status without opening the detail panel
CompareAdd to the compare tray (select 2 foods to compare)
Copy📋Copy nutrient summary to clipboard (name, kcal, P, C, F)
Clone📄Clone as a custom food — opens the form pre-filled with all nutrients

These actions save time by eliminating the need to open the detail panel for common operations.

Food comparison

Compare any two foods side-by-side to make informed substitution decisions:

Select foods to compare

Click the ↔ compare icon on any two food rows. A sticky tray appears at the bottom showing your selections.

Open the comparison

Click Compare in the tray. A side-by-side panel opens showing:

  • Macro donuts — visual calorie ratio (protein/fat/carbs) for each food
  • Nutrient highlights — "Rich in" chips showing standout nutrients
  • Macronutrient table — calories, protein, fat, carbs, fiber with opposing bars
  • Vitamin & mineral table — all micronutrients with visual bars showing which food has more

Read the results

The food with the higher value for each nutrient is highlighted in your primary color. Opposing bars grow from the center outward, making differences immediately visible.

Use comparison when a client asks "should I eat brown rice or quinoa?" or when you need to find a higher-protein alternative to a food in their plan. The visual bars make the answer obvious at a glance.

Nutrient details

Each food includes up to 80+ nutrients, organized by type:

TypeNutrients
ProximatesEnergy, Protein, Carbohydrate, Total Fat, Fiber (total, soluble, insoluble), Water, Ash
MineralsCalcium, Iron, Magnesium, Phosphorus, Potassium, Sodium, Zinc, Copper, Manganese, Selenium, Chromium, Iodine
VitaminsVitamin A, B1, B2, B3, B5, B6, B9 (Folate), B12, C, D, E, K, Biotin, Choline, Beta-Carotene
LipidsSaturated Fat, Monounsaturated, Polyunsaturated, Trans Fat, Cholesterol, Omega-3, Omega-6, EPA, DHA
Amino AcidsAll 19 amino acids including essential amino acids
SugarsTotal Sugars, Sucrose, Glucose, Fructose, Lactose, Maltose, Galactose
OtherCaffeine, Theobromine, Alcohol, Phytate, Oxalate

The "Rich in" highlights in the food detail panel automatically flag nutrients that exceed 10% of the recommended daily allowance. Green chips indicate excellent sources (over 50% RDA), making it easy to spot nutrient-dense foods at a glance.

Practice-level controls

Every practice is different — a pediatric dietitian's "1 roti" is smaller than an adult practice's. A vegetarian clinic doesn't need non-veg foods in search. MealStack gives you full control over how the food database works for your practice.

Access these settings from Settings → Food Database.

Portion overrides

Override any platform portion size to match your practice's actual measurements:

What you can doExample
Override gram weight"My katori = 100g" (instead of platform 150g)
Override per category"Katori for cereals = 150g, for dal = 120g"
Override per food"Katori for rice specifically = 200g"
Reset to platform defaultOne click to revert any override

The override table shows all standard portions with the platform value and your custom value side-by-side. Click any value to edit inline.

Overrides apply to all new meal plans. Existing plans keep their saved gram weights — no retroactive changes.

Custom portions

Create entirely new portion types specific to your practice:

  • Name (English + Hindi) — e.g., "1 palm (protein)" / "1 हथेली"
  • Gram weight — the weight this portion represents
  • Category assignment — which food categories this portion appears for
  • Default flag — set as the default portion for assigned categories

Examples: "1 palm" (85g, for meat/fish), "1 fist" (80g, for vegetables), "1 steel glass" (250g, for beverages).

Custom portions appear alongside food-specific portions in the meal plan builder. They're marked with a ★ indicator so you can distinguish them from database portions.

Food visibility & filters

Control which foods appear when you or your team searches:

Dietary type filter — Only show foods matching selected types. A vegetarian practice can hide all non-veg foods from search results.

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 from search (e.g., alcoholic beverages, infant foods).

Search behavior — Set default scope (all foods, favorites first, or custom foods first).

If you're a vegetarian practice, set the dietary type filter to show only Veg + Vegan. Non-veg foods will never appear in search results for any team member.

ICMR food exchange lists

The Indian food exchange system (ICMR-NIN 2024) is built in. One click loads all 9 standard exchange groups:

Group1 Exchange~Calories
🌾 Cereals & Millets30g raw100 kcal
🫘 Pulses & Legumes30g raw100 kcal
🥛 Milk & Dairy100ml70 kcal
🥬 Vegetables (A)100g20 kcal
🥕 Vegetables (B)100g40 kcal
🍎 Fruits100g40 kcal
🍗 Meat & Fish50g100 kcal
🧈 Fats & Oils5g (1 tsp)45 kcal
🍬 Sugar & Jaggery5g (1 tsp)20 kcal

You can also create custom exchange groups for specialized protocols. When exchange lists are configured, the meal plan builder shows exchange counts alongside portions (e.g., "1.5 katori (225g) — 2.5 🌾 exchanges").

Food alert policies

Set practice-level rules that auto-warn or block foods when adding to meal plans:

Trigger types:

  • Allergen tag — fires when a food has specific allergen tags (nuts, gluten, dairy, etc.)
  • Nutrient threshold — fires when a nutrient exceeds a value per 100g (e.g., potassium > 300mg for renal patients)
  • Dietary type — fires when food type doesn't match (e.g., non-veg for vegetarian clients)
  • Food category — fires for specific food categories

Action types:

  • Warn — shows a dismissible warning, practitioner can add anyway
  • Block — prevents the food from being added entirely
  • Note — shows an informational notice (no action required)

Scoping — policies can apply to all clients, or only to clients with specific goals (diabetes, renal) or tags (nut-allergy, celiac).

Use the quick templates to set up common policies in one click: Renal (high potassium), Nut Allergy, Gluten Free, Diabetes (high sugar), Pregnancy (caffeine), Vegetarian (non-veg block).

Cooking method adjustments

Configure how food weight and nutrients change with different cooking methods:

Yield factors — how weight changes after cooking:

  • Rice: ×2.5 (100g raw → 250g cooked)
  • Roti: ×0.85 (30g flour → ~25g cooked)
  • Deep fried: ×0.7 (water loss, fat gain)

Nutrient retention — fraction of each nutrient retained:

  • Deep frying: fat ×1.5 (absorption), protein ×0.9
  • Boiling vegetables: vitamin C ×0.5 (heat-sensitive)
  • Pressure cooking: protein ×0.95, fiber ×0.95

Platform defaults are based on USDA Retention Factor Release 6 and Indian cooking consensus. Override any value for your practice.

Display preferences

Control how food data appears across the app:

SettingOptionsDefault
Gram roundingExact, Nearest 5g, Nearest 10gNearest 5g
Portion display"1.5 katori (225g)" or "225g (1.5 katori)" or "1.5 katori"Portion first
Show Hindi namesOn/OffOff
Energy unitkcal or kJkcal
Food name formatCleaned, Original (USDA/IFCT), HindiCleaned
Database badgeShow/HideShow
Dietary type badgeShow/HideShow

Practice-level food database controls

Every practice is different — a pediatric dietitian's "1 roti" is smaller than an adult practice's. A vegetarian clinic doesn't need non-veg foods cluttering search. A renal specialist needs potassium warnings. MealStack lets you customize the food database to match your practice.

Access these settings from Settings → Food Database.

Portion configuration

Override any platform portion size to match your practice's actual measurements:

What you can doExample
Override platform portionsChange "1 katori (small)" from 150g to 100g
Create custom portionsAdd "1 palm (protein)" = 85g for meat/fish
Assign to categoriesYour "1 fist" portion only shows for vegetables
Set defaultsMake your custom portion the default for a category
Hindi namesAdd Hindi names to all custom portions

Overrides apply to all new meal plans. Existing plans keep their saved gram weights — no retroactive changes. The platform default is always shown for reference so you know what you're overriding.

How portion resolution works

When you add a food to a meal plan, MealStack resolves portions in this priority order:

  1. Food-specific override — if you've overridden a portion for this specific food
  2. Category override — if you've overridden a portion for this food's category
  3. Global override — if you've overridden a portion for all categories
  4. Platform default — the standard value (ICMR/FDA reference)

Overridden portions show a ✦ indicator in the portion picker. Custom practice portions show a ★ indicator.

Food visibility & filters

Control which foods appear when you or your team searches:

SettingWhat it does
Dietary type filterOnly show veg, eggetarian, vegan — hide non-veg entirely
Active databasesChoose which databases are searchable (IFCT, INDB, USDA, Custom)
Hidden categoriesHide entire categories (e.g., Alcoholic Beverages, Infant Foods)
Food blacklistBlock specific foods from ever appearing in search
Unverified foodsHide foods with estimated/unverified nutrient data

If your practice is exclusively vegetarian, set the dietary type filter to "Vegetarian" and "Vegan" only. Non-veg foods will never appear in search results for any team member.

Display preferences

SettingOptionsDefault
Show gramsAlways / On hover / NeverAlways
Gram roundingExact / Nearest 5g / Nearest 10gNearest 5g
Hindi portion namesOn / OffOff
Portion display"1.5 katori (225g)" / "225g (1.5 katori)" / "1.5 katori"Portion first
Energy unitkcal / kJkcal
Decimal places0 / 1 / 21
Food name formatCleaned / Original / HindiCleaned

ICMR food exchange lists

The Indian food exchange system (ICMR-NIN 2024) is built in. One "exchange" is a measured amount of food providing approximately the same calories and macros. Foods within the same group can be substituted for each other.

Click Load ICMR Standard to set up the 9 standard exchange groups:

Group1 Exchange~CaloriesKey nutrient
🌾 Cereals & Millets30g raw100 kcalCarbs
🫘 Pulses & Legumes30g raw100 kcalProtein + Carbs
🥛 Milk & Dairy100ml70 kcalProtein + Calcium
🥬 Vegetables (A)100g20 kcalFiber
🥕 Vegetables (B)100g40 kcalCarbs
🍎 Fruits100g40 kcalCarbs + Fiber
🍗 Meat & Fish50g100 kcalProtein
🧈 Fats & Oils5g (1 tsp)45 kcalFat
🍬 Sugar & Jaggery5g (1 tsp)20 kcalCarbs

You can also create custom exchange groups for specialized protocols.

When exchange lists are configured, the meal plan builder shows exchange counts alongside portions — e.g., "1.5 katori (225g) — 2.5 🌾 exchanges". This helps practitioners plan meals using the ICMR exchange system.

Food alert policies

Set up automatic warnings or blocks when adding foods that conflict with client conditions:

Trigger types:

  • Allergen tag — warn/block when food has specific allergen tags (nuts, gluten, dairy, etc.)
  • Nutrient threshold — warn when a nutrient exceeds a value per 100g (e.g., potassium > 300mg for renal)
  • Dietary type — block non-veg foods for vegetarian clients
  • Food category — warn/block entire categories

Action types:

  • Warn — shows a dismissible warning, practitioner can add anyway
  • Block — prevents the food from being added entirely
  • Note — shows an informational 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 clinical scenarios:

TemplateTriggerAction
🫘 Renal — High PotassiumK > 300mg/100gWarn
🥜 Nut Allergyallergen:nuts, allergen:peanutsBlock
🍞 Gluten Sensitivityallergen:glutenWarn
🩺 Diabetes — High Sugarsugar > 15g/100gWarn
🤰 Pregnancy — Caffeinecontains:caffeineNote
🌱 Vegetarian Practicedietary_type: non_vegBlock

Combine multiple policies for comprehensive coverage. A renal practice might use: High Potassium Warning + High Phosphorus Warning + High Sodium Warning — all scoped to clients with the "renal" goal.

Cooking method adjustments

Configure how food weight and nutrients change with different cooking methods:

MethodYield factorWhat it means
Boiled×2.5100g raw rice → 250g cooked
Pressure Cooked×2.2100g raw dal → 220g cooked
Dry Roasted×0.8530g flour → ~25g roti
Shallow Fried×0.80Water loss, fat gain
Deep Fried×0.70Significant fat absorption
Grilled×0.75Water + fat loss
Steamed×2.3Idli, dhokla — minimal nutrient loss

Click Load Defaults to set up platform defaults based on USDA Retention Factor Release 6 and Indian cooking consensus.

Yield factors affect nutrition calculations. When a food is marked as "cooked" in a meal plan, MealStack divides the gram weight by the yield factor to get the raw equivalent, then calculates nutrients from the raw value. This ensures accurate nutrition whether you enter cooked or raw weights.

Data accuracy & verification

MealStack takes food data accuracy seriously. All imported nutrition databases are verified against their original sources using automated audit scripts.

Verification status

DatabaseFoodsVerificationResult
IFCT 2017542Every nutrient compared against CDN source (same data NIN published)100% match
INDB 20241,014Every nutrient compared against source Excel file100% match
USDA SR Legacy7,793Imported from official USDA CSV downloadsStandard import

Energy corrections

35 INDB recipes had energy values that didn't match their macronutrient breakdown (a known issue in the INDB source data, particularly soups and watery dishes). These have been corrected using the standard Atwater formula (Energy = Protein×4 + Carbs×4 + Fat×9), with the original source value preserved in a footnote for audit trail.

How to identify calculated values

In the food detail panel, nutrients that were recalculated (rather than directly from the source) show a subtle symbol next to the nutrient name. The footer shows "Energy calculated from macros" when applicable.

Reporting inaccuracies

If you spot a food with incorrect nutrition data:

  1. Open the food detail panel
  2. Note the food name, source database badge (IFCT/INDB/USDA), and the value you believe is wrong
  3. Contact support at support@workfile.io with the details

We investigate all reported inaccuracies and correct them if confirmed.

Platform foods (IFCT, INDB, USDA) cannot be edited by practitioners — this ensures data integrity across all practices. If you need different values, clone the food as a custom food and adjust the nutrients.

On this page