Ayurveda · 7 min read

Reading Ayurveda Food Properties in the App: Personalized Fit, Dosha Bars, and Preparation Modifiers

See how the Ayurveda card on every food in Ayurveda & Asana Yoga calculates your personalized profile fit, displays Vata/Pitta/Kapha bars, and shows Rasa, Virya, Vipaka, Gunas, and preparation modifiers.

Practice this guide inside Ayurveda & Asana Yoga on iPhone & iPad 908 illustrated postures, guided prāṇāyāma timers, and personalized dosha meal plans with USDA macros.
Download on the App Store
App guide illustration showing the Ayurveda food card with Personalized Fit banner, Vata/Pitta/Kapha bars, and Rasa/Virya/Vipaka/Guna chips.

App guide illustration showing the Ayurveda food card with Personalized Fit banner, Vata/Pitta/Kapha bars, and Rasa/Virya/Vipaka/Guna chips.

Quick Answer

{'heading': 'How to read the Ayurveda card on a food or recipe in the app', 'summary': "On any food detail screen, `AyurvedaSectionView` resolves the item's Ayurvedic profile (`AyurvedaResolver.resolve`) and renders an `AyurvedaDisplayCard`. For edible foods, the card shows: (1) a personalized profile fit banner (`Supportive`, `Mixed fit`, or `Less supportive` when you have a saved constitution), (2) three `DoshaBarsView` scales (`-2` to `+2` for Vata, Pitta, and Kapha), and (3) property chip groups for `Rasa (taste)`, `Virya (energy)`, `Vipaka (post-digestive)`, `Gunas (qualities)`, and `Preparation modifiers`.", 'bullets': ['Personalized Fit math: `target.doshaFit` computes `vataWeight * (-vata) + pittaWeight * (-pitta) + kaphaWeight * (-kapha)`; scores `>= 0.45` show `Supportive for your current profile` and `<= -0.45` show `Less supportive`.', 'Dosha bar scale (`-2` to `+2`): Negative numbers (`-1`, `-2`) pacify/reduce a dosha; `0` is neutral; positive numbers (`+1`, `+2`) increase/aggravate it.', 'Computed-tier transparency: For multi-ingredient recipes or computed items (`display.tierLabel == "Computed"`), the card displays `DoshaBarsView` and `Virya (energy)` without fabricating single-ingredient `Rasa`, `Vipaka`, or `Guna` chips.', 'Safety warning banner: Items marked `engineExcluded` display an explicit `Health warning` row and are never recommended in meal plans.']}

On any food detail screen, `AyurvedaSectionView` resolves the item's Ayurvedic profile (`AyurvedaResolver.resolve`) and renders an `AyurvedaDisplayCard`. For edible foods, the card shows: (1) a personalized profile fit banner (`Supportive`, `Mixed fit`, or `Less supportive` when you have a saved constitution), (2) three `DoshaBarsView` scales (`-2` to `+2` for Vata, Pitta, and Kapha), and (3) property chip groups for `Rasa (taste)`, `Virya (energy)`, `Vipaka (post-digestive)`, `Gunas (qualities)`, and `Preparation modifiers`.

Personalized Fit math: `target.doshaFit` computes `vataWeight * (-vata) + pittaWeight * (-pitta) + kaphaWeight * (-kapha)`; scores `>= 0.45` show `Supportive for your current profile` and `<= -0.45` show `Less supportive`.

Dosha bar scale (`-2` to `+2`): Negative numbers (`-1`, `-2`) pacify/reduce a dosha; `0` is neutral; positive numbers (`+1`, `+2`) increase/aggravate it.

Computed-tier transparency: For multi-ingredient recipes or computed items (`display.tierLabel == "Computed"`), the card displays `DoshaBarsView` and `Virya (energy)` without fabricating single-ingredient `Rasa`, `Vipaka`, or `Guna` chips.

Safety warning banner: Items marked `engineExcluded` display an explicit `Health warning` row and are never recommended in meal plans.

How the Personalized Profile Fit Banner Is Calculated

At the top of `AyurvedaDisplayCard`, `AyurvedaPersonalizedFoodFitView` compares the food's Vata, Pitta, and Kapha integers (`-2...2`) against your active constitution target (`AyurvedaConstitutionStore.activeTarget()`). In the app's mathematical convention, a negative food value (such as `pitta = -1`) means the food *pacifies* (reduces) that dosha, while a positive value (`pitta = +1`) means it *increases* (aggravates) that dosha.

The function `target.doshaFit(vata:pitta:kapha:)` multiplies your profile's normalized Vata, Pitta, and Kapha proportions (`0.0` to `1.0`) by the negated food values (`self.vata * Double(-vata) + self.pitta * Double(-pitta) + self.kapha * Double(-kapha)`). If the resulting score is `>= 0.45`, `AyurvedaFoodFitPresentation` displays **"Supportive for your current profile"**; if the score is `<= -0.45`, it displays **"Less supportive for your current profile"**; and scores between `-0.45` and `+0.45` display **"Mixed fit for your current profile"**, accompanied by a plain-English explanation such as *"Cooling and Sweet — supports Pitta and Vata, but may increase Kapha."*

  • Score `>= +0.45` (`Supportive`): The food predominantly pacifies your leading constitution/check-in doshas.
  • Score between `-0.45` and `+0.45` (`Mixed fit`): The food supports one of your doshas while increasing another, or is largely neutral.
  • Score `<= -0.45` (`Less supportive`): The food predominantly increases your leading doshas (best balanced with spices, cooking method, or smaller portions).

Reading Dosha Bars and the Five Property Chip Groups

Below the personalized fit summary, `DoshaBarsView` renders the food's baseline Vata, Pitta, and Kapha effects on the five-point `-2, -1, 0, +1, +2` scale. Underneath the bars, `propertyGroups` organizes traditional dravyaguna attributes into up to five labeled chip rows, each with custom SF Symbol icons and semantic color tints (`AyurvedaPacify` for cooling/gunas, `AyurvedaAggravate` for heating, and `AyurvedaChipTint` for tastes and vipaka).

For single catalog ingredients, you will see `Rasa (taste)` (`Sweet`, `Sour`, `Salty`, `Pungent`, `Bitter`, `Astringent`), `Virya (energy)` (`Cooling`, `Heating`, or neutral), `Vipaka (post-digestive)` (`Sweet`, `Sour`, `Pungent`), `Gunas (qualities)` (such as `Light`, `Heavy`, `Oily`, `Dry`, `Warm`, `Smooth`, `Soft`, `Dense`, `Liquid`, `Sharp`, `Rough`, `Slimy`), and—when applicable—`Preparation modifiers` (such as cooked, soaked, or spiced adjustments).

  • Why `Computed` items show fewer chips: When viewing a multi-ingredient recipe (`display.tierLabel == "Computed"`), `propertyGroups` intentionally shows only `Virya (energy)` below `DoshaBarsView`, because summing six tastes and twenty gunas across ten ingredients into a single word would be misleading.
  • Preparation modifiers (`slider.horizontal.3`): Show how soaking, boiling, roasting, or spicing shifted the resolved profile from its raw state.
  • Reduce Motion support: `AyurvedaDisplayCard` respects iOS `accessibilityReduceMotion` by disabling bar animations when enabled.

What the "Health Warning" Banner Means on Excluded Items

Because the bundled food catalog contains 14,487 food records—including raw culinary ingredients, alcoholic beverages, and reference entries—some items are flagged with `engineExcluded == true` in `AyurvedaRecommendationGate` and `AyurvedaProfile`.

When you open one of those items, `AyurvedaDisplayCard` renders an `AyurvedaDisplayWarningRow` titled `Health warning` at the very top of the card. If the item is marked edible (`display.edible == true`), the warning states: *"Traditional sources and modern evidence advise against consuming this. Shown for reference only — never recommended."* If `display.edible == false`, it states: *"Not available as food. Shown for reference only — no serving or recommendation is provided,"* and suppresses all dosha bars and property chips.

  • Never auto-recommended: `AyurvedaRecommendationGate` blocks `engineExcluded` records from appearing in generated meal plans.
  • Reference transparency: Keeping the entry visible with a clear warning explains *why* an item is excluded rather than silently failing search.
  • Combine with modern nutrition: Scroll between the `Ayurveda` card and the `Recipe Nutrition` / macro panel on the same screen to see both perspectives.

Frequently Asked Questions

Why does a multi-ingredient recipe show Dosha Bars and Virya, but not Rasa or Vipaka chips?

In `AyurvedaSectionView.swift`, recipes resolve with `display.tierLabel == "Computed"`. The app computes weighted Vata/Pitta/Kapha bars and net `Virya (energy)` across ingredients, and omits single-ingredient `Rasa`, `Vipaka`, and `Guna` chips so it never invents a fake single post-digestive label for a complex dish.

Does a "-1" or "-2" on the Pitta bar mean the food is bad for Pitta?

The opposite: in the app's scale, `-1` and `-2` mean the food *pacifies* (reduces/cools) Pitta, which is supportive when Pitta is elevated. Positive numbers (`+1`, `+2`) mean the food *increases* that dosha.

Why don't I see the "Supportive for your current profile" banner on food cards yet?

`AyurvedaPersonalizedFoodFitView` appears once you have saved a baseline constitution (or self-declared type) in `AyurvedaConstitutionStore`. Until then, the card displays the universal Vata, Pitta, and Kapha bars and property chips.

iOS App for iPhone & iPad

Practice with 908 illustrated postures, custom prāṇāyāma timers & dosha meal plans

Combine classical Vata, Pitta, and Kapha balance, Six Tastes (Shad Rasa), and seasonal Ritucharya routines with verified USDA calorie, macronutrient, vitamin, and mineral tracking.

Sources & Classical References

  1. Ayurvedic Medicine: In Depth — National Center for Complementary and Integrative Health (NCCIH)
  2. Charaka Samhita Sutrasthana Chapter 26 (Atreyabhadrakapyiya Adhyaya — Rasa, Virya, Vipaka) — WisdomLib Primary Text

Related Guides