{
  "research_date": "2026-10-07",
  "method": "Public-source desk research; zero native tests. Inventory mixes screens, dialogs, historical and external surfaces. Unknown is not absent.",
  "apps": [
    {
      "slug": "calai",
      "name": "Cal AI",
      "researched_at": "2026-10-07",
      "scope": "Public-source desk research of calai.app, Apple ID 6480417616 and Android com.viraldevelopment.calai. No signup, purchase, installed-app testing or shared browser use. Artwork is vendor marketing, annotated separately.",
      "positioning": "Camera-first calorie and macro logging with correction, a daily remaining-budget dashboard, reuse and progress views. Vendor ease/accuracy claims are not efficacy findings.",
      "mental_model": "Capture or describe a meal → inspect estimated nutrition → correct portions or results → daily remaining allowance → revisit saved entries and progress. Account recovery, billing channel and health-data provenance form separate operational loops.",
      "platforms": [
        "iPhone (iOS 18+ per current Apple metadata)",
        "Android (Android 10+ per official FAQ)",
        "Apple Watch listed by Apple; capabilities not verified",
        "Web login and subscription management only verified"
      ],
      "limitations": [
        "No native app was run; navigation is documented or inferred, never measured.",
        "Twelve curated visuals are marketing artwork with unknown creation version/date, not current-version proof.",
        "iOS store seller Viral Development LLC differs from Google Play/website entity Cal AI, Inc.; official website links establish product identity.",
        "FAQ July 2026 and older blog February 2025 make inconsistent accuracy claims; neither gives a benchmark protocol.",
        "Complete native help, onboarding/paywall sequence, recipes, voice UI, correction persistence and export path remain undocumented.",
        "Public docs.calai.app API endpoint failed DNS; archive lookup found no snapshot. Search snippets were not treated as app behavior evidence.",
        "Vendor-linked Instagram returned only a minimal page; TikTok returned HTTP 403. Google Play embedded video identities investigated separately in sources/video-*-oembed.json.",
        "Searches did not establish an identity-verified official native walkthrough video; generic same-name calendar tutorials excluded.",
        "Store prices were not normalized into a universal subscription plan.",
        "Status not-found means evidence missing, not feature absent."
      ],
      "sources": [
        {
          "id": "calai-01",
          "title": "Cal AI | Download Today",
          "url": "https://www.calai.app/",
          "retrieved_at": "2026-10-07",
          "evidence_type": "official-marketing",
          "published_or_updated": null
        },
        {
          "id": "calai-02",
          "title": "FAQ | Cal AI",
          "url": "https://www.calai.app/faq",
          "retrieved_at": "2026-10-07",
          "evidence_type": "official-help",
          "published_or_updated": "July 2026"
        },
        {
          "id": "calai-03",
          "title": "‎Cal AI - Calorie Tracker App - App Store",
          "url": "https://apps.apple.com/us/app/cal-ai-calorie-tracker/id6480417616",
          "retrieved_at": "2026-10-07",
          "evidence_type": "store-listing",
          "published_or_updated": "Version 26.39.0; September 29, 2026"
        },
        {
          "id": "calai-04",
          "title": "Cal AI - Food Calorie Tracker - Apps on Google Play",
          "url": "https://play.google.com/store/apps/details?hl=en_US&id=com.viraldevelopment.calai",
          "retrieved_at": "2026-10-07",
          "evidence_type": "store-listing",
          "published_or_updated": "September 25, 2026"
        },
        {
          "id": "calai-05",
          "title": "Cal AI | Privacy Notice",
          "url": "https://calai.app/privacy",
          "retrieved_at": "2026-10-07",
          "evidence_type": "official-help",
          "published_or_updated": "May 21, 2026"
        },
        {
          "id": "calai-06",
          "title": "Cal AI | Terms of Service",
          "url": "https://www.calai.app/tos",
          "retrieved_at": "2026-10-07",
          "evidence_type": "official-help",
          "published_or_updated": "November 28, 2025"
        },
        {
          "id": "calai-07",
          "title": "Cal AI | Washington Consumer Health Data Privacy Policy",
          "url": "https://www.calai.app/washington-health-data",
          "retrieved_at": "2026-10-07",
          "evidence_type": "official-help",
          "published_or_updated": "May 21, 2026"
        },
        {
          "id": "calai-08",
          "title": "Community Guidelines | Cal AI",
          "url": "https://www.calai.app/community-guidelines",
          "retrieved_at": "2026-10-07",
          "evidence_type": "official-help",
          "published_or_updated": "September 2026; V5"
        },
        {
          "id": "calai-09",
          "title": "Cal AI | Accessibility Statement",
          "url": "https://www.calai.app/accessibility",
          "retrieved_at": "2026-10-07",
          "evidence_type": "official-help",
          "published_or_updated": null
        },
        {
          "id": "calai-10",
          "title": "Login | Cal AI",
          "url": "https://www.calai.app/login",
          "retrieved_at": "2026-10-07",
          "evidence_type": "official-marketing",
          "published_or_updated": null
        },
        {
          "id": "calai-11",
          "title": "Apple lookup metadata: Cal AI",
          "url": "https://itunes.apple.com/lookup?id=6480417616&country=us",
          "retrieved_at": "2026-10-07",
          "evidence_type": "store-listing",
          "published_or_updated": "2026-09-29T19:18:15Z; version 26.39.0"
        },
        {
          "id": "calai-12",
          "title": "Blog | Cal AI",
          "url": "https://www.calai.app/blog",
          "retrieved_at": "2026-10-07",
          "evidence_type": "official-marketing",
          "published_or_updated": null
        },
        {
          "id": "calai-13",
          "title": "Press | Cal AI",
          "url": "https://www.calai.app/press",
          "retrieved_at": "2026-10-07",
          "evidence_type": "official-marketing",
          "published_or_updated": null
        },
        {
          "id": "calai-14",
          "title": "Cal AI | Download Today",
          "url": "https://www.calai.app/manage-subscription",
          "retrieved_at": "2026-10-07",
          "evidence_type": "official-help",
          "published_or_updated": null
        },
        {
          "id": "calai-15",
          "title": "Health Recommendations | Cal AI",
          "url": "https://www.calai.app/citations",
          "retrieved_at": "2026-10-07",
          "evidence_type": "official-help",
          "published_or_updated": "August 2026"
        },
        {
          "id": "calai-16",
          "title": "14 Best Free Calorie And Macro Trackers for Meal Planning | Cal AI",
          "url": "https://www.calai.app/blog/best-free-calorie-and-macro-tracker",
          "retrieved_at": "2026-10-07",
          "evidence_type": "official-marketing",
          "published_or_updated": "February 16, 2025"
        },
        {
          "id": "calai-17",
          "title": "Cal AI | Accessibility Statement",
          "url": "https://www.calai.app/access",
          "retrieved_at": "2026-10-07",
          "evidence_type": "official-help",
          "published_or_updated": null
        },
        {
          "id": "calai-18",
          "title": "Cancel a subscription from Apple - Apple Support",
          "url": "https://support.apple.com/118428",
          "retrieved_at": "2026-10-07",
          "evidence_type": "official-help",
          "published_or_updated": "September 29, 2026"
        },
        {
          "id": "calai-19",
          "title": "Cancel, pause, or change a subscription on Google Play - Android - Google Play Help",
          "url": "https://support.google.com/googleplay/answer/7018481",
          "retrieved_at": "2026-10-07",
          "evidence_type": "official-help",
          "published_or_updated": null
        },
        {
          "id": "calai-20",
          "title": "Cal AI - Food Calorie Tracker - Apps on Google Play",
          "url": "https://play.google.com/store/apps/datasafety?id=com.viraldevelopment.calai",
          "retrieved_at": "2026-10-07",
          "evidence_type": "store-listing",
          "published_or_updated": null
        },
        {
          "id": "calai-21",
          "title": "Official image: Daily calorie dashboard",
          "url": "https://is1-ssl.mzstatic.com/image/thumb/PurpleSource211/v4/66/dd/5c/66dd5cab-7622-7caf-84c1-5fc5c16f5b39/28f8bc10-b990-4c88-be57-5003ba5d6483_SS1Small__U00281_U0029.png/392x696bb.png",
          "retrieved_at": "2026-10-07",
          "evidence_type": "official-marketing",
          "published_or_updated": null
        },
        {
          "id": "calai-22",
          "title": "Official image: Photo scanner",
          "url": "https://is1-ssl.mzstatic.com/image/thumb/PurpleSource221/v4/33/52/fd/3352fd96-00a2-d63b-9362-f1fdaa21fe31/e93b538a-fce8-4568-94db-b2b5f69644e2_SS2Small__U00282_U0029.png/392x696bb.png",
          "retrieved_at": "2026-10-07",
          "evidence_type": "official-marketing",
          "published_or_updated": null
        },
        {
          "id": "calai-23",
          "title": "Official image: Nutrition result and correction",
          "url": "https://is1-ssl.mzstatic.com/image/thumb/PurpleSource211/v4/9f/b6/cd/9fb6cdca-5494-1a6e-f352-f7ed45756b38/06c53f71-a783-49ef-aeb8-2716c4a2e083_SS3Small__U00281_U0029.png/392x696bb.png",
          "retrieved_at": "2026-10-07",
          "evidence_type": "official-marketing",
          "published_or_updated": null
        },
        {
          "id": "calai-24",
          "title": "Official image: Weight and nutrition analytics",
          "url": "https://is1-ssl.mzstatic.com/image/thumb/PurpleSource221/v4/16/ca/3b/16ca3b16-fdd8-74e6-f0f6-b6070ee8547c/4ff1e0d2-b596-4b09-a8c0-99accd0d5c85_SS2Small__U00283_U0029.png/392x696bb.png",
          "retrieved_at": "2026-10-07",
          "evidence_type": "official-marketing",
          "published_or_updated": null
        },
        {
          "id": "calai-25",
          "title": "Official image: Android-marketed progress dashboard",
          "url": "https://play-lh.googleusercontent.com/_LKArRkRzv59CX2VrC3TU0syd_oIdskYI8RV3SgVAbdHYrnd8g1-HhXlvsMTuXxNbtnCkDHR854br-s7ubiWdg=s0",
          "retrieved_at": "2026-10-07",
          "evidence_type": "official-marketing",
          "published_or_updated": null
        },
        {
          "id": "calai-26",
          "title": "Official image: Progress-photo comparison",
          "url": "https://play-lh.googleusercontent.com/l4MpxdkI78j3j9gyGCACcj9GWAryGMrF9n4_VbaQvNNDTpYJw7yRlFTFVC21xXNX-rz23MWkbrCFIpxzP_eK4Kc=s0",
          "retrieved_at": "2026-10-07",
          "evidence_type": "official-marketing",
          "published_or_updated": null
        },
        {
          "id": "calai-27",
          "title": "Official image: Scanner-to-result marketing pair",
          "url": "https://www.calai.app/hero-image.webp",
          "retrieved_at": "2026-10-07",
          "evidence_type": "official-marketing",
          "published_or_updated": null
        },
        {
          "id": "calai-28",
          "title": "Official image: Website progress design variant",
          "url": "https://www.calai.app/food-db.webp",
          "retrieved_at": "2026-10-07",
          "evidence_type": "official-marketing",
          "published_or_updated": null
        },
        {
          "id": "calai-29",
          "title": "Official image: Dark home design variant",
          "url": "https://www.calai.app/dark-iphone-preview.webp",
          "retrieved_at": "2026-10-07",
          "evidence_type": "official-marketing",
          "published_or_updated": null
        },
        {
          "id": "calai-30",
          "title": "Official image: Expanded nutrition result",
          "url": "https://www.calai.app/analyzed.webp",
          "retrieved_at": "2026-10-07",
          "evidence_type": "official-marketing",
          "published_or_updated": null
        },
        {
          "id": "calai-31",
          "title": "Official image: Food database and reuse entry",
          "url": "https://www.calai.app/search-food-db.webp",
          "retrieved_at": "2026-10-07",
          "evidence_type": "official-marketing",
          "published_or_updated": null
        },
        {
          "id": "calai-32",
          "title": "Official image: Activity and water dashboard",
          "url": "https://www.calai.app/water.webp",
          "retrieved_at": "2026-10-07",
          "evidence_type": "official-marketing",
          "published_or_updated": null
        }
      ],
      "features": [
        {
          "key": "onboarding",
          "label": "Lifestyle-based onboarding",
          "status": "documented",
          "tier": "Exact entitlement not established",
          "platforms": "iOS documented; Android sequence unverified",
          "detail": "Store explains lifestyle questions used to build a plan; exact questionnaire and paywall order unobserved.",
          "sources": [
            "calai-03",
            "calai-15"
          ]
        },
        {
          "key": "goal_setting",
          "label": "Goals and targets",
          "status": "documented",
          "tier": "Exact entitlement not established",
          "platforms": "Platform parity unverified",
          "detail": "Goal calculations and nutrition targets have an official research-reference page. No published exact adjustment screen sequence.",
          "sources": [
            "calai-15",
            "calai-28"
          ]
        },
        {
          "key": "calorie_budget",
          "label": "Daily calorie allowance",
          "status": "documented",
          "tier": "Exact entitlement not established",
          "platforms": "Platform parity unverified",
          "detail": "Calories-left dashboard and separate exercise-burn display are visible. Budget arithmetic and exercise credit switches not verified.",
          "sources": [
            "calai-21",
            "calai-32"
          ]
        },
        {
          "key": "macro_targets",
          "label": "Macronutrient targets",
          "status": "documented",
          "tier": "Exact entitlement not established",
          "platforms": "Platform parity unverified",
          "detail": "Goal splits documented; protein/carbs/fats status visible. Editing units, ratios and limits require native verification.",
          "sources": [
            "calai-15",
            "calai-21"
          ]
        },
        {
          "key": "micronutrients",
          "label": "Micronutrient targets",
          "status": "limited",
          "tier": "Exact entitlement not established",
          "platforms": "Platform parity unverified",
          "detail": "Official science page expressly references setting micronutrient targets; complete supported nutrient list and diary displays not found.",
          "sources": [
            "calai-15"
          ]
        },
        {
          "key": "food_search",
          "label": "Food database search",
          "status": "documented",
          "tier": "Exact entitlement not established",
          "platforms": "Platform parity unverified",
          "detail": "Database supports name/brand lookup; screenshot shows suggestion units and plus actions.",
          "sources": [
            "calai-01",
            "calai-31"
          ]
        },
        {
          "key": "verified_database",
          "label": "Verified food provenance",
          "status": "not-found",
          "tier": "Exact entitlement not established",
          "platforms": "Platform parity unverified",
          "detail": "Database size claim does not establish curation, verified badges or laboratory provenance. No verification policy located.",
          "sources": [
            "calai-01",
            "calai-31"
          ]
        },
        {
          "key": "barcode_scan",
          "label": "Barcode scanning",
          "status": "documented",
          "tier": "Exact entitlement not established",
          "platforms": "Platform parity unverified",
          "detail": "Barcode capture is advertised; unknown-code result and entitlement unverified.",
          "sources": [
            "calai-02",
            "calai-01"
          ]
        },
        {
          "key": "label_scan",
          "label": "Nutrition label scanning",
          "status": "documented",
          "tier": "Exact entitlement not established",
          "platforms": "Platform parity unverified",
          "detail": "Accessibility statement and 2025 vendor article explicitly describe label capture. No inspected label-results screen.",
          "sources": [
            "calai-09",
            "calai-16"
          ]
        },
        {
          "key": "photo_logging",
          "label": "Photo analysis",
          "status": "documented",
          "tier": "Analysis results require subscription per iOS listing",
          "platforms": "iOS and Android marketed",
          "detail": "Camera-to-nutrition sequence depicted; AI estimates are approximations.",
          "sources": [
            "calai-22",
            "calai-23",
            "calai-06"
          ]
        },
        {
          "key": "voice_logging",
          "label": "Voice input",
          "status": "limited",
          "tier": "Exact entitlement not established",
          "platforms": "Platform parity unverified",
          "detail": "Privacy notice names voice logging; microphone UI, platforms and correction semantics undocumented.",
          "sources": [
            "calai-05"
          ]
        },
        {
          "key": "text_ai",
          "label": "Describe meal",
          "status": "documented",
          "tier": "Exact entitlement not established",
          "platforms": "Platform parity unverified",
          "detail": "Vendor describes typing meal details, particularly hidden ingredients. Dedicated editor not visually inspected.",
          "sources": [
            "calai-01",
            "calai-16"
          ]
        },
        {
          "key": "quick_add",
          "label": "Manual empty food",
          "status": "limited",
          "tier": "Exact entitlement not established",
          "platforms": "Platform parity unverified",
          "detail": "Log empty food is visible. Whether subsequent screen supports calorie-only entry or required macro fields is unknown.",
          "sources": [
            "calai-31",
            "calai-09"
          ]
        },
        {
          "key": "portion_edit",
          "label": "Portion correction",
          "status": "documented",
          "tier": "Exact entitlement not established",
          "platforms": "Platform parity unverified",
          "detail": "Apple art has serving stepper; website result has editable serving value. Unit picker and recalculation behavior untested.",
          "sources": [
            "calai-23",
            "calai-30"
          ]
        },
        {
          "key": "meal_correction",
          "label": "Correct AI result",
          "status": "documented",
          "tier": "Exact entitlement not established",
          "platforms": "Platform parity unverified",
          "detail": "Fix Results accepts a description of what is wrong per vendor article; per-nutrient pencils visible in Apple art. No evidence of future scans remembering a personal correction.",
          "sources": [
            "calai-16",
            "calai-23",
            "calai-30"
          ]
        },
        {
          "key": "history_favorites",
          "label": "Recent items and saved scans",
          "status": "documented",
          "tier": "Exact entitlement not established",
          "platforms": "Platform parity unverified",
          "detail": "Recent entries, bookmark and Saved scans tab visible; rename/delete/reorder behavior unknown.",
          "sources": [
            "calai-21",
            "calai-30",
            "calai-31",
            "calai-09"
          ]
        },
        {
          "key": "copy_meals",
          "label": "Copy meals across dates",
          "status": "not-found",
          "tier": "Exact entitlement not established",
          "platforms": "Platform parity unverified",
          "detail": "Recent/saved reuse is supported, but no documented multi-select or date-to-date copy operation located.",
          "sources": [
            "calai-31"
          ]
        },
        {
          "key": "saved_meals",
          "label": "Reusable meals",
          "status": "documented",
          "tier": "Exact entitlement not established",
          "platforms": "Platform parity unverified",
          "detail": "My meals tab is visible; Play claims frequent-meal memory. Create/edit/share paths remain unobserved.",
          "sources": [
            "calai-31",
            "calai-04"
          ]
        },
        {
          "key": "recipes",
          "label": "Custom recipes",
          "status": "limited",
          "tier": "Exact entitlement not established",
          "platforms": "Platform parity unverified",
          "detail": "Homepage expressly permits adding foods and recipes. Ingredient builder, yield and cooked-weight workflow not documented.",
          "sources": [
            "calai-01"
          ]
        },
        {
          "key": "recipe_import",
          "label": "Recipe URL import",
          "status": "not-found",
          "tier": "Exact entitlement not established",
          "platforms": "Platform parity unverified",
          "detail": "No primary evidence of importing a recipe URL or recipe image into a structured recipe.",
          "sources": []
        },
        {
          "key": "meal_planning",
          "label": "Meal planning",
          "status": "limited",
          "tier": "Exact entitlement not established",
          "platforms": "Platform parity unverified",
          "detail": "A February 2025 vendor blog claims meal plans without a workflow. Current product/help sources did not corroborate a planner screen.",
          "sources": [
            "calai-16"
          ]
        },
        {
          "key": "water",
          "label": "Water logging",
          "status": "documented",
          "tier": "Exact entitlement not established",
          "platforms": "Platform parity unverified",
          "detail": "Dashboard has amount, cup equivalent, plus/minus and settings gear. Goal/reminder editor not observed.",
          "sources": [
            "calai-32"
          ]
        },
        {
          "key": "weight_trend",
          "label": "Weight progress",
          "status": "documented",
          "tier": "Exact entitlement not established",
          "platforms": "Platform parity unverified",
          "detail": "Weight chart, date ranges and Log Weight visible; smoothing or trend-weight algorithm not established.",
          "sources": [
            "calai-25",
            "calai-28"
          ]
        },
        {
          "key": "body_metrics",
          "label": "Body measurements",
          "status": "limited",
          "tier": "Exact entitlement not established",
          "platforms": "Platform parity unverified",
          "detail": "Vendor mentions measurements; privacy notice names height, weight and BMI. Circumference/body-fat entry screens not found.",
          "sources": [
            "calai-01",
            "calai-05"
          ]
        },
        {
          "key": "progress_photos",
          "label": "Progress photos",
          "status": "documented",
          "tier": "Exact entitlement not established",
          "platforms": "Google Play marketing visual; privacy policy product-wide",
          "detail": "Compare view has paired photos, weights/dates, Hide weight, thumbnail strip and Share.",
          "sources": [
            "calai-26",
            "calai-05"
          ]
        },
        {
          "key": "exercise_logging",
          "label": "Exercise log",
          "status": "documented",
          "tier": "Exact entitlement not established",
          "platforms": "Platform parity unverified",
          "detail": "Home shows weight-lifting entry with intensity/duration plus exercise calories. Input editor and exercise library unobserved.",
          "sources": [
            "calai-32",
            "calai-01"
          ]
        },
        {
          "key": "wearable_sync",
          "label": "Wearable integration",
          "status": "limited",
          "tier": "Exact entitlement not established",
          "platforms": "Platform parity unverified",
          "detail": "See calai-f-health for documented hub routes. A direct Garmin connection remains unverified. Apple lists Watch support; scope untested.",
          "sources": [
            "calai-02",
            "calai-03"
          ]
        },
        {
          "key": "health_platform_sync",
          "label": "Health platform connections",
          "status": "documented",
          "tier": "Exact entitlement not established",
          "platforms": "Platform-specific branches: see calai-f-health",
          "detail": "See calai-f-health for connection instructions and duplicate-step constraints. No confirmed Health Connect migration or full read/write matrix.",
          "sources": [
            "calai-02"
          ]
        },
        {
          "key": "adaptive_targets",
          "label": "Automatic expenditure adaptation",
          "status": "not-found",
          "tier": "Exact entitlement not established",
          "platforms": "Platform parity unverified",
          "detail": "Personalized goal calculations and suggestions do not establish intake/weight-derived expenditure adaptation.",
          "sources": [
            "calai-15",
            "calai-01"
          ]
        },
        {
          "key": "weekly_review",
          "label": "Weekly analytics",
          "status": "limited",
          "tier": "Exact entitlement not established",
          "platforms": "Platform parity unverified",
          "detail": "Weekly nutrient chart and comparison visible; no documented guided weekly check-in with target recalibration.",
          "sources": [
            "calai-24"
          ]
        },
        {
          "key": "fasting",
          "label": "Fasting timer",
          "status": "not-found",
          "tier": "Exact entitlement not established",
          "platforms": "Platform parity unverified",
          "detail": "Google Play mentions use during intermittent fasting, not a timer or fasting-state workflow.",
          "sources": [
            "calai-04"
          ]
        },
        {
          "key": "reminders",
          "label": "Notifications and reminders",
          "status": "limited",
          "tier": "Exact entitlement not established",
          "platforms": "Platform parity unverified",
          "detail": "See calai-s-notifications. Meal scheduling, reminder types and in-app controls unverified.",
          "sources": [
            "calai-02",
            "calai-16"
          ]
        },
        {
          "key": "widgets",
          "label": "Home/lock-screen widgets",
          "status": "not-found",
          "tier": "Exact entitlement not established",
          "platforms": "Platform parity unverified",
          "detail": "No primary widget documentation or inspected widget art found.",
          "sources": []
        },
        {
          "key": "offline_logging",
          "label": "Offline operation",
          "status": "not-found",
          "tier": "Exact entitlement not established",
          "platforms": "Platform parity unverified",
          "detail": "Recovery evidence does not establish offline logging, cached database access or on-device photo inference.",
          "sources": [
            "calai-02"
          ]
        },
        {
          "key": "data_export",
          "label": "Export and portability",
          "status": "limited",
          "tier": "Exact entitlement not established",
          "platforms": "Platform parity unverified",
          "detail": "See calai-f-export for the two distinct routes. CSV format and export entry path unknown.",
          "sources": [
            "calai-02",
            "calai-05"
          ]
        },
        {
          "key": "data_delete",
          "label": "Account/data deletion",
          "status": "documented",
          "tier": "Exact entitlement not established",
          "platforms": "Platform parity unverified",
          "detail": "Privacy requests can be sent to privacy@calai.app; in-app destructive action and final confirmation not inspected.",
          "sources": [
            "calai-05",
            "calai-07",
            "calai-20"
          ]
        },
        {
          "key": "subscription_cancel",
          "label": "Cancel and restore",
          "status": "documented",
          "tier": "Purchase channel dependent",
          "platforms": "Apple, Google Play, and direct web billing routes",
          "detail": "Store cancellation is separate from uninstall; web purchases have email-based management. See calai-f-restore for entitlement-transfer limits.",
          "sources": [
            "calai-02",
            "calai-14",
            "calai-18",
            "calai-19"
          ]
        },
        {
          "key": "web_app",
          "label": "Web account surface",
          "status": "limited",
          "tier": "Exact entitlement not established",
          "platforms": "Platform parity unverified",
          "detail": "Public Apple/Google login and web subscription management exist; no verified browser food diary or nutrition dashboard.",
          "sources": [
            "calai-10",
            "calai-14"
          ]
        },
        {
          "key": "social",
          "label": "Groups and community",
          "status": "documented",
          "tier": "Exact entitlement not established",
          "platforms": "Platform parity unverified",
          "detail": "Policy identifies public/private Groups; guidelines describe posting, comments, reactions, auto-review and long-press Report.",
          "sources": [
            "calai-05",
            "calai-08"
          ]
        },
        {
          "key": "coaching",
          "label": "Nutrition guidance",
          "status": "limited",
          "tier": "Exact entitlement not established",
          "platforms": "Platform parity unverified",
          "detail": "Vendor advertises personalized AI suggestions and depicts health score. No human coaching service established; terms disclaim nutritional counseling.",
          "sources": [
            "calai-01",
            "calai-06",
            "calai-30"
          ]
        }
      ],
      "screens": [
        {
          "id": "calai-s-plan",
          "name": "Lifestyle questions and generated plan",
          "area": "Onboarding",
          "entry": "Initial setup per iOS listing; exact preceding screen unknown",
          "primary_actions": [
            "Answer lifestyle questions"
          ],
          "states": [
            "Question sequence unobserved",
            "Generated plan documented, appearance unknown"
          ],
          "platform": "iOS documented",
          "tier": "Entitlement unverified",
          "evidence": "documented",
          "sources": [
            "calai-03",
            "calai-15"
          ],
          "visual_ids": []
        },
        {
          "id": "calai-s-home",
          "name": "Calorie home",
          "area": "Daily tracking",
          "entry": "Home tab in artwork",
          "primary_actions": [
            "Inspect remaining calories and macros",
            "Review recent meals",
            "Use plus entry affordance"
          ],
          "states": [
            "Light design",
            "Dark design",
            "Today/Yesterday design variant"
          ],
          "platform": "Native platform parity unverified",
          "tier": "Entitlement unverified",
          "evidence": "visual",
          "sources": [
            "calai-21",
            "calai-29"
          ],
          "visual_ids": [
            "calai-v01",
            "calai-v09"
          ]
        },
        {
          "id": "calai-s-activity",
          "name": "Activity and water home page",
          "area": "Daily tracking",
          "entry": "Secondary carousel page indicated by dots; gesture not tested",
          "primary_actions": [
            "Adjust water with plus/minus",
            "Open water gear",
            "Review exercise and meal cards"
          ],
          "states": [
            "Steps and burned calories",
            "Water amount",
            "Mixed recent history"
          ],
          "platform": "Native platform parity unverified",
          "tier": "Entitlement unverified",
          "evidence": "visual",
          "sources": [
            "calai-32"
          ],
          "visual_ids": [
            "calai-v12"
          ]
        },
        {
          "id": "calai-s-scanner",
          "name": "Scanner",
          "area": "Food capture",
          "entry": "Photo entry documented; exact plus menu not shown",
          "primary_actions": [
            "Capture photo",
            "Change mode",
            "Flash",
            "Back"
          ],
          "states": [
            "Food camera mode shown",
            "Other mode icons visible but unlabeled"
          ],
          "platform": "Native platform parity unverified",
          "tier": "Food analysis results require paid subscription",
          "evidence": "visual",
          "sources": [
            "calai-22",
            "calai-27"
          ],
          "visual_ids": [
            "calai-v02",
            "calai-v07"
          ]
        },
        {
          "id": "calai-s-result",
          "name": "Nutrition result",
          "area": "Food detail",
          "entry": "Following food analysis in marketing sequence",
          "primary_actions": [
            "Edit serving",
            "Fix Results",
            "Done",
            "Bookmark in website variant",
            "Share in website variant"
          ],
          "states": [
            "Stepper and per-nutrient pencils in Apple art",
            "Ingredient section and serving-pencil in website art",
            "No error/loading state inspected"
          ],
          "platform": "Native platform parity unverified",
          "tier": "Food analysis results require paid subscription",
          "evidence": "visual",
          "sources": [
            "calai-23",
            "calai-30"
          ],
          "visual_ids": [
            "calai-v03",
            "calai-v10"
          ]
        },
        {
          "id": "calai-s-database",
          "name": "Food Database",
          "area": "Search and reuse",
          "entry": "Exact menu path unknown",
          "primary_actions": [
            "Describe/search field",
            "Select All/My meals/My foods/Saved scans",
            "Log empty food",
            "Plus on suggestion"
          ],
          "states": [
            "All selected",
            "Other tab labels visible; contents unobserved"
          ],
          "platform": "Native platform parity unverified",
          "tier": "Entitlement unverified",
          "evidence": "visual",
          "sources": [
            "calai-31"
          ],
          "visual_ids": [
            "calai-v11"
          ]
        },
        {
          "id": "calai-s-progress",
          "name": "Progress / Analytics",
          "area": "Review",
          "entry": "Bottom Progress or Analytics tab, variant-dependent",
          "primary_actions": [
            "Change date range",
            "Inspect chart point",
            "Log Weight in Android art"
          ],
          "states": [
            "Apple nutrition bars",
            "Website days-logged/cheat chip",
            "Google Play streak/weight variant"
          ],
          "platform": "Native platform parity unverified",
          "tier": "Entitlement unverified",
          "evidence": "visual",
          "sources": [
            "calai-24",
            "calai-25",
            "calai-28"
          ],
          "visual_ids": [
            "calai-v04",
            "calai-v05",
            "calai-v08"
          ]
        },
        {
          "id": "calai-s-photos",
          "name": "Compare progress photos",
          "area": "Review",
          "entry": "Entry into photo comparison unknown",
          "primary_actions": [
            "Choose thumbnails",
            "Toggle Hide weight",
            "Share",
            "Back"
          ],
          "states": [
            "Side-by-side selected photos",
            "Weight/date overlays"
          ],
          "platform": "Android-marketed artwork",
          "tier": "Entitlement unverified",
          "evidence": "visual",
          "sources": [
            "calai-26"
          ],
          "visual_ids": [
            "calai-v06"
          ]
        },
        {
          "id": "calai-s-settings",
          "name": "Settings entry",
          "area": "Account",
          "entry": "Bottom Settings tab visible; contents not inspected",
          "primary_actions": [
            "Unknown settings contents"
          ],
          "states": [
            "Tab entry only; no full settings page screenshot"
          ],
          "platform": "Native platform parity unverified",
          "tier": "Entitlement unverified",
          "evidence": "documented",
          "sources": [
            "calai-21",
            "calai-32"
          ],
          "visual_ids": [
            "calai-v01",
            "calai-v12"
          ]
        },
        {
          "id": "calai-s-paywall",
          "name": "Subscription gate and restore",
          "area": "Billing",
          "entry": "Restore route: see calai-f-restore",
          "primary_actions": [
            "Recovery action documented in calai-f-restore"
          ],
          "states": [
            "Gate when unsubscribed; entitlement recognition may fail"
          ],
          "platform": "Native platform parity unverified",
          "tier": "Unsubscribed or entitlement error",
          "evidence": "documented",
          "sources": [
            "calai-02",
            "calai-03"
          ],
          "visual_ids": []
        },
        {
          "id": "calai-s-applehealth",
          "name": "Connect with Apple Health prompt",
          "area": "Integrations",
          "entry": "See calai-f-health; exact native navigation unverified",
          "primary_actions": [
            "Connection action: see calai-f-health"
          ],
          "states": [
            "Permissions and denial screen unobserved"
          ],
          "platform": "iPhone",
          "tier": "Entitlement unverified",
          "evidence": "documented",
          "sources": [
            "calai-02"
          ],
          "visual_ids": []
        },
        {
          "id": "calai-s-fit",
          "name": "Google Fit connection setting",
          "area": "Integrations",
          "entry": "See calai-f-health; nested path unverified",
          "primary_actions": [
            "Connection action: see calai-f-health"
          ],
          "states": [
            "Permission UI unobserved; sync timing and duplicates addressed in calai-f-health"
          ],
          "platform": "Android",
          "tier": "Entitlement unverified",
          "evidence": "documented",
          "sources": [
            "calai-02"
          ],
          "visual_ids": []
        },
        {
          "id": "calai-s-export",
          "name": "PDF export function",
          "area": "Data",
          "entry": "See calai-f-export; entry path unverified",
          "primary_actions": [
            "Export control wording unknown"
          ],
          "states": [
            "Troubleshooting: see calai-f-export",
            "Successful file content unobserved"
          ],
          "platform": "Native platform parity unverified",
          "tier": "Entitlement unverified",
          "evidence": "documented",
          "sources": [
            "calai-02"
          ],
          "visual_ids": []
        },
        {
          "id": "calai-s-groups",
          "name": "Groups and community",
          "area": "Social",
          "entry": "Native entry unknown",
          "primary_actions": [
            "Post",
            "Comment",
            "React"
          ],
          "states": [
            "Public and private groups named in policy",
            "Automated review and restrictions documented"
          ],
          "platform": "Native platform parity unverified",
          "tier": "Entitlement unverified",
          "evidence": "documented",
          "sources": [
            "calai-05",
            "calai-08"
          ],
          "visual_ids": []
        },
        {
          "id": "calai-s-report",
          "name": "Report group post",
          "area": "Social moderation",
          "entry": "Long-press post per community guidelines",
          "primary_actions": [
            "Report"
          ],
          "states": [
            "Support review",
            "Removal/restriction possible; dialog not inspected"
          ],
          "platform": "Native platform parity unverified",
          "tier": "Entitlement unverified",
          "evidence": "documented",
          "sources": [
            "calai-08"
          ],
          "visual_ids": []
        },
        {
          "id": "calai-s-login",
          "name": "Website sign-in",
          "area": "Web account",
          "entry": "Public Login link",
          "primary_actions": [
            "Continue with Google",
            "Continue with Apple"
          ],
          "states": [
            "Logged-out form; authentication not performed"
          ],
          "platform": "Web",
          "tier": "Public entry",
          "evidence": "documented",
          "sources": [
            "calai-10"
          ],
          "visual_ids": []
        },
        {
          "id": "calai-s-billing",
          "name": "Manage Subscription email form",
          "area": "Web billing",
          "entry": "Website Manage Subscription link",
          "primary_actions": [
            "Enter subscribed email",
            "Send"
          ],
          "states": [
            "Web-purchase management only",
            "Email receipt and authenticated destination untested"
          ],
          "platform": "Web",
          "tier": "Direct web subscriber",
          "evidence": "documented",
          "sources": [
            "calai-14"
          ],
          "visual_ids": []
        },
        {
          "id": "calai-s-applecancel",
          "name": "Apple subscription cancellation",
          "area": "External billing",
          "entry": "iPhone Settings → name → Subscriptions → Cal AI",
          "primary_actions": [
            "Cancel Subscription"
          ],
          "states": [
            "Already-canceled indication",
            "Subscription missing/wrong Apple Account"
          ],
          "platform": "iOS Settings; external to Cal AI",
          "tier": "Apple-billed",
          "evidence": "documented",
          "sources": [
            "calai-18",
            "calai-02"
          ],
          "visual_ids": []
        },
        {
          "id": "calai-s-playcancel",
          "name": "Google Play cancellation",
          "area": "External billing",
          "entry": "Play subscriptions → Cal AI",
          "primary_actions": [
            "Cancel subscription",
            "Follow confirmation steps"
          ],
          "states": [
            "Wrong-account lookup",
            "Paid access continues through paid period per Google"
          ],
          "platform": "Google Play; external to Cal AI",
          "tier": "Google Play-billed",
          "evidence": "documented",
          "sources": [
            "calai-19",
            "calai-02"
          ],
          "visual_ids": []
        },
        {
          "id": "calai-s-notifications",
          "name": "OS notification controls",
          "area": "External settings",
          "entry": "OS settings → Cal AI notifications",
          "primary_actions": [
            "Adjust notifications"
          ],
          "states": [
            "In-app granular scheduling not documented"
          ],
          "platform": "iOS/Android OS settings",
          "tier": "Entitlement unverified",
          "evidence": "documented",
          "sources": [
            "calai-02"
          ],
          "visual_ids": []
        },
        {
          "id": "calai-s-privacy",
          "name": "Privacy-request email channel",
          "area": "External privacy",
          "entry": "Policy → privacy@calai.app; not a native screen",
          "primary_actions": [
            "Request access/portability/deletion",
            "Appeal where applicable"
          ],
          "states": [
            "Verification and exceptions",
            "Native account-deletion confirmation unobserved"
          ],
          "platform": "Email; external to Cal AI",
          "tier": "Entitlement unverified",
          "evidence": "documented",
          "sources": [
            "calai-05",
            "calai-07"
          ],
          "visual_ids": []
        },
        {
          "id": "calai-s-native-reauth",
          "name": "Native reauthentication — unknown appearance",
          "area": "Native account recovery",
          "entry": "Reinstall recovery context: see calai-f-restore; exact native navigation unverified",
          "primary_actions": [
            "Reauthenticate; provider-button layout unobserved"
          ],
          "states": [
            "Documented destination, no inspected native screen",
            "Do not confuse with calai-s-login (website only)"
          ],
          "platform": "Native iOS/Android recovery context; parity unverified",
          "tier": "Account recovery; entitlement outcome unverified",
          "evidence": "documented",
          "sources": [
            "calai-02"
          ],
          "visual_ids": []
        }
      ],
      "flows": [
        {
          "id": "calai-f-setup",
          "name": "Build an initial plan",
          "job": "Get a starting nutrition target",
          "preconditions": [
            "New user; no onboarding performed"
          ],
          "steps": [
            {
              "screen": "calai-s-plan",
              "action": "Answer lifestyle questions",
              "result": "Vendor says a plan is built"
            },
            {
              "screen": "calai-s-home",
              "action": "Transition to daily targets: exact intervening screens unknown",
              "result": "Budget home shown separately in marketing"
            }
          ],
          "branches": [
            "Paywall location relative to plan/account remains unknown",
            "Referral cannot be retroactively applied per FAQ"
          ],
          "persistence": "Plan creation documented; account and goal durability untested",
          "friction": "No screen-complete questionnaire, units, safety floor or consent sequence",
          "evidence": "documented",
          "sources": [
            "calai-03",
            "calai-15",
            "calai-02",
            "calai-21"
          ],
          "visual_ids": [
            "calai-v01"
          ]
        },
        {
          "id": "calai-f-photo",
          "name": "Photograph and inspect a meal",
          "job": "Reduce manual identification work",
          "preconditions": [
            "Camera permission; subscription needed for analysis results"
          ],
          "steps": [
            {
              "screen": "calai-s-scanner",
              "action": "Frame food and use shutter",
              "result": "Marketing pairs capture with nutrition result; upload/processing transitions unobserved"
            },
            {
              "screen": "calai-s-result",
              "action": "Inspect serving and nutrients",
              "result": "Correction controls visible"
            },
            {
              "screen": "calai-s-result",
              "action": "Use Done",
              "result": "Commit/close action visible; exact save timing unverified"
            }
          ],
          "branches": [
            "Use description for hidden ingredients per vendor article",
            "No-food/error state unobserved"
          ],
          "persistence": "No live save tested; result and recent history are separate visual evidence",
          "friction": "Accuracy claims are unbenchmarked; speed and correction burden not measured",
          "evidence": "visual",
          "sources": [
            "calai-22",
            "calai-23",
            "calai-27",
            "calai-16",
            "calai-03"
          ],
          "visual_ids": [
            "calai-v02",
            "calai-v03",
            "calai-v07"
          ]
        },
        {
          "id": "calai-f-search",
          "name": "Search and add food",
          "job": "Use a known food rather than an image",
          "preconditions": [
            "Food Database accessible; exact gate unknown"
          ],
          "steps": [
            {
              "screen": "calai-s-database",
              "action": "Use search field or suggestions",
              "result": "Vendor documents name/brand search"
            },
            {
              "screen": "calai-s-database",
              "action": "Use row plus",
              "result": "Add affordance visible; quantity sheet or immediate-add transition unknown"
            },
            {
              "screen": "calai-s-home",
              "action": "Inspect recent log and totals as a verification step",
              "result": "Expected verification, not an observed transition"
            }
          ],
          "branches": [
            "Log empty food fallback shown",
            "No-result UX unobserved"
          ],
          "persistence": "Database/recent items documented, exact insertion semantics not tested",
          "friction": "Duplicate suggestions in supplied art lack visible provenance badges",
          "evidence": "visual",
          "sources": [
            "calai-01",
            "calai-31",
            "calai-21"
          ],
          "visual_ids": [
            "calai-v11",
            "calai-v01"
          ]
        },
        {
          "id": "calai-f-barcode",
          "name": "Log a packaged food",
          "job": "Identify a product via barcode",
          "preconditions": [
            "Package barcode available"
          ],
          "steps": [
            {
              "screen": "calai-s-scanner",
              "action": "Choose barcode scan; exact mode control not confirmed",
              "result": "Capability documented, barcode view unobserved"
            },
            {
              "screen": "calai-s-result",
              "action": "Inspect returned nutrition; exact transition unknown",
              "result": "Validation needed before relying on product match"
            }
          ],
          "branches": [
            "Unknown barcode fallback undocumented",
            "Do not assume serving size equals package size"
          ],
          "persistence": "Barcode capability documented, durability untested",
          "friction": "No official failure, duplicate-code or correction walkthrough",
          "evidence": "documented",
          "sources": [
            "calai-02",
            "calai-01",
            "calai-22",
            "calai-23"
          ],
          "visual_ids": [
            "calai-v02",
            "calai-v03"
          ]
        },
        {
          "id": "calai-f-label",
          "name": "Read a nutrition label",
          "job": "Use explicit package nutrition",
          "preconditions": [
            "Readable label"
          ],
          "steps": [
            {
              "screen": "calai-s-scanner",
              "action": "Choose label scanning; specific UI not inspected",
              "result": "Accessible feature described in official statement"
            },
            {
              "screen": "calai-s-result",
              "action": "Validate extracted portions and values; transition unknown",
              "result": "No label-specific result screenshot available"
            }
          ],
          "branches": [
            "Glare, partial label and unit conversion behavior unknown"
          ],
          "persistence": "No label-result save tested",
          "friction": "Alternative is documented but detailed repair semantics missing",
          "evidence": "documented",
          "sources": [
            "calai-09",
            "calai-16"
          ],
          "visual_ids": []
        },
        {
          "id": "calai-f-describe",
          "name": "Describe food in text or voice",
          "job": "Communicate hidden ingredients",
          "preconditions": [
            "Meal details known"
          ],
          "steps": [
            {
              "screen": "calai-s-database",
              "action": "Select describe input; dedicated editor route unknown",
              "result": "Typed meal-description capability documented"
            },
            {
              "screen": "calai-s-result",
              "action": "Inspect AI output; transition unknown",
              "result": "Nutrition output concept supported, description-specific result unobserved"
            }
          ],
          "branches": [
            "For the policy-only voice evidence see voice_logging; microphone UI and parity remain unknown",
            "Text ambiguity repair needs native test"
          ],
          "persistence": "General vendor learning claims do not prove personal correction memory",
          "friction": "Voice cannot be promoted to a fully verified native flow",
          "evidence": "documented",
          "sources": [
            "calai-01",
            "calai-16",
            "calai-05"
          ],
          "visual_ids": []
        },
        {
          "id": "calai-f-correct",
          "name": "Correct an estimate",
          "job": "Make a wrong result usable",
          "preconditions": [
            "Nutrition result available"
          ],
          "steps": [
            {
              "screen": "calai-s-result",
              "action": "Inspect serving control and nutrient pencils",
              "result": "Manual correction affordances visible"
            },
            {
              "screen": "calai-s-result",
              "action": "Choose Fix Results and describe the error",
              "result": "Vendor article says AI can fix result; actual correction editor unobserved"
            },
            {
              "screen": "calai-s-result",
              "action": "Review revised values and use Done",
              "result": "Revised-save behavior not exercised"
            }
          ],
          "branches": [
            "Serving edit versus ingredient correction may differ",
            "Undo and retry semantics unknown"
          ],
          "persistence": "Current-result repair described; future reuse and re-analysis persistence not proven",
          "friction": "Main test priority: whether one repair alters calories, macros and later reuse consistently",
          "evidence": "documented",
          "sources": [
            "calai-23",
            "calai-30",
            "calai-16"
          ],
          "visual_ids": [
            "calai-v03",
            "calai-v10"
          ]
        },
        {
          "id": "calai-f-reuse",
          "name": "Reuse a familiar meal",
          "job": "Avoid repeated capture and correction",
          "preconditions": [
            "Prior meal or saved item exists"
          ],
          "steps": [
            {
              "screen": "calai-s-database",
              "action": "Open My meals or Saved scans",
              "result": "Tab labels visible; list contents unobserved"
            },
            {
              "screen": "calai-s-database",
              "action": "Select reusable item; exact action unknown",
              "result": "Frequent meal memory documented"
            },
            {
              "screen": "calai-s-home",
              "action": "Verify inserted date, portion and totals",
              "result": "Verification task, not observed save behavior"
            }
          ],
          "branches": [
            "Bookmark exists on result",
            "Copy across dates and bulk reuse remain unknown"
          ],
          "persistence": "Reusable categories exist; whether they store snapshots or shared templates unknown",
          "friction": "A saved corrected meal may behave differently from rerunning AI; do not conflate",
          "evidence": "visual",
          "sources": [
            "calai-31",
            "calai-30",
            "calai-04"
          ],
          "visual_ids": [
            "calai-v11",
            "calai-v10"
          ]
        },
        {
          "id": "calai-f-recipe",
          "name": "Create a personal recipe: incomplete boundary",
          "job": "Build a repeatable multi-ingredient item",
          "preconditions": [
            "Vendor permits adding recipes"
          ],
          "steps": [
            {
              "screen": "calai-s-database",
              "action": "Locate recipe creation entry; not identified in public evidence",
              "result": "Blocked transition: do not assume My meals equals recipe builder"
            }
          ],
          "branches": [
            "Ingredient source, batch yield, cooked weight and edit propagation unknown"
          ],
          "persistence": "Recipe existence claimed; recipe save and serving model not established",
          "friction": "A complete native recipe walkthrough cannot be responsibly supplied",
          "evidence": "inferred",
          "sources": [
            "calai-01",
            "calai-31"
          ],
          "visual_ids": [
            "calai-v11"
          ]
        },
        {
          "id": "calai-f-water",
          "name": "Adjust water intake",
          "job": "Keep a simple daily hydration record",
          "preconditions": [
            "Activity/water home page available"
          ],
          "steps": [
            {
              "screen": "calai-s-activity",
              "action": "Inspect water amount and cup equivalent",
              "result": "Quantity is visible"
            },
            {
              "screen": "calai-s-activity",
              "action": "Use plus or minus",
              "result": "Increment controls visible; increment size and persistence untested"
            },
            {
              "screen": "calai-s-activity",
              "action": "Open gear if configuration needed",
              "result": "Gear visible; destination unknown"
            }
          ],
          "branches": [
            "Unit and goal configuration unknown"
          ],
          "persistence": "No cross-session water test",
          "friction": "One-tap counter is visible, but accidental taps and undo need validation",
          "evidence": "visual",
          "sources": [
            "calai-32"
          ],
          "visual_ids": [
            "calai-v12"
          ]
        },
        {
          "id": "calai-f-review",
          "name": "Review weight and nutrition",
          "job": "Understand recent progress",
          "preconditions": [
            "Previously recorded intake/weight"
          ],
          "steps": [
            {
              "screen": "calai-s-progress",
              "action": "Choose period",
              "result": "90-day through all-time weight ranges depicted"
            },
            {
              "screen": "calai-s-progress",
              "action": "Inspect chart point or weekly nutrient bars",
              "result": "Tooltip and chart visuals available in different artwork"
            },
            {
              "screen": "calai-s-progress",
              "action": "Use Log Weight where supplied",
              "result": "Input sheet unobserved"
            }
          ],
          "branches": [
            "Progress and Analytics labels vary by artwork",
            "No proof of smoothing or automatic recalibration"
          ],
          "persistence": "Historical trends depicted; incomplete-day handling unknown",
          "friction": "Weight and nutrition ranges use different controls; no native usability test",
          "evidence": "visual",
          "sources": [
            "calai-24",
            "calai-25",
            "calai-28"
          ],
          "visual_ids": [
            "calai-v04",
            "calai-v05",
            "calai-v08"
          ]
        },
        {
          "id": "calai-f-goals",
          "name": "Adjust targets after review: incomplete boundary",
          "job": "Change a plan deliberately",
          "preconditions": [
            "Existing plan"
          ],
          "steps": [
            {
              "screen": "calai-s-progress",
              "action": "Inspect goal-edit pencil in website art",
              "result": "Affordance visible"
            },
            {
              "screen": "calai-s-settings",
              "action": "Find nutrition target editor; route not documented",
              "result": "Blocked transition pending native verification"
            }
          ],
          "branches": [
            "Changing body goal may differ from directly editing calories/macros",
            "No evidence of adaptive weekly target recalculation"
          ],
          "persistence": "Official science page supports target-setting concept, not change history",
          "friction": "Cannot assert whether historical budget displays are rebased",
          "evidence": "inferred",
          "sources": [
            "calai-28",
            "calai-15"
          ],
          "visual_ids": [
            "calai-v08"
          ]
        },
        {
          "id": "calai-f-photos",
          "name": "Compare progress photos",
          "job": "Review or share visible change",
          "preconditions": [
            "At least two images available; consent matters"
          ],
          "steps": [
            {
              "screen": "calai-s-photos",
              "action": "Select photos from filmstrip",
              "result": "Comparison selections depicted"
            },
            {
              "screen": "calai-s-photos",
              "action": "Adjust Hide weight",
              "result": "Privacy-related presentation toggle visible"
            },
            {
              "screen": "calai-s-photos",
              "action": "Use Share if desired",
              "result": "Share button visible; OS sheet/destination unknown"
            }
          ],
          "branches": [
            "Weights hidden does not prove date or identifying background removed"
          ],
          "persistence": "Storage and export behavior untested",
          "friction": "Shared image privacy requires review beyond a weight toggle",
          "evidence": "visual",
          "sources": [
            "calai-26",
            "calai-05"
          ],
          "visual_ids": [
            "calai-v06"
          ]
        },
        {
          "id": "calai-f-health",
          "name": "Connect health data and diagnose steps",
          "job": "Bring activity into daily view",
          "preconditions": [
            "Appropriate health account and permissions"
          ],
          "steps": [
            {
              "screen": "calai-s-applehealth",
              "action": "iPhone: swipe right on calories → Connect with Apple Health",
              "result": "FAQ route; permission sheet uninspected"
            },
            {
              "screen": "calai-s-fit",
              "action": "Android alternative: settings → Google Fit",
              "result": "Sync may take minutes"
            },
            {
              "screen": "calai-s-activity",
              "action": "For duplicate steps, disable extra upstream writers (including Garmin/Health Sync)",
              "result": "FAQ: duplicate writers are summed; steps cannot be manually adjusted"
            }
          ],
          "branches": [
            "iOS and Android are alternatives, not sequential steps",
            "Health Connect support not established"
          ],
          "persistence": "Full directionality and interval contract unverified",
          "friction": "Test whether users can diagnose which upstream writer to disable",
          "evidence": "documented",
          "sources": [
            "calai-02",
            "calai-32"
          ],
          "visual_ids": [
            "calai-v12"
          ]
        },
        {
          "id": "calai-f-exercise",
          "name": "Review a manually logged activity boundary",
          "job": "Account for exercise beside food",
          "preconditions": [
            "Exercise data exists"
          ],
          "steps": [
            {
              "screen": "calai-s-activity",
              "action": "Inspect exercise entry",
              "result": "Weight lifting with intensity/duration depicted"
            },
            {
              "screen": "calai-s-activity",
              "action": "Use plus to seek exercise editor; menu not shown",
              "result": "Input route unknown rather than an invented workout builder"
            }
          ],
          "branches": [
            "Exercise calories and steps appear as separate contributions",
            "Reconciliation with imported workouts unknown"
          ],
          "persistence": "Entry shown, edit/delete and budget-credit rules untested",
          "friction": "Nutrition tracking should not be equated with a full workout-programming app",
          "evidence": "visual",
          "sources": [
            "calai-32"
          ],
          "visual_ids": [
            "calai-v12"
          ]
        },
        {
          "id": "calai-f-export",
          "name": "Export a record or request portability",
          "job": "Take nutrition information outside the app",
          "preconditions": [
            "Account access; jurisdiction may affect privacy rights"
          ],
          "steps": [
            {
              "screen": "calai-s-export",
              "action": "PDF export failure: check app update, Mail permission and connectivity",
              "result": "FAQ troubleshooting only; native entry unverified"
            },
            {
              "screen": "calai-s-privacy",
              "action": "For access/portability contact privacy address",
              "result": "Separate privacy-request route, not instant CSV export"
            }
          ],
          "branches": [
            "PDF report is distinct from machine-readable raw data",
            "No confirmed date-range or inclusion controls"
          ],
          "persistence": "Delivered file and export fidelity untested",
          "friction": "App export location is undocumented; email privacy process may add delay",
          "evidence": "documented",
          "sources": [
            "calai-02",
            "calai-05"
          ],
          "visual_ids": []
        },
        {
          "id": "calai-f-restore",
          "name": "Restore paid access or cloud history",
          "job": "Recover after reinstall/change of device",
          "preconditions": [
            "Recovery branches below are not one sequential login journey"
          ],
          "steps": [
            {
              "screen": "calai-s-paywall",
              "action": "Plus → paywall → scroll → Restore Purchase / Already Purchased; use original store account",
              "result": "Entitlement recovery per FAQ; not tested"
            },
            {
              "screen": "calai-s-native-reauth",
              "action": "After reinstall, sign in with the same Apple/Google identity",
              "result": "FAQ says cloud history returns; exact native navigation and appearance unverified"
            }
          ],
          "branches": [
            "iPhone/Android subscriptions do not transfer",
            "App identity and store entitlement are distinct; do not substitute website login"
          ],
          "persistence": "Recovery untested; no data or entitlement was restored during research",
          "friction": "Two account systems can make paid-but-locked failures confusing",
          "evidence": "documented",
          "sources": [
            "calai-02"
          ],
          "visual_ids": []
        },
        {
          "id": "calai-f-cancel",
          "name": "Cancel by original billing channel",
          "job": "Stop subscription renewal without guessing provider",
          "preconditions": [
            "Identify billing receipt; no cancellation executed"
          ],
          "steps": [
            {
              "screen": "calai-s-applecancel",
              "action": "Apple branch: Settings → name → Subscriptions → Cal AI → Cancel",
              "result": "Store-managed cancellation"
            },
            {
              "screen": "calai-s-playcancel",
              "action": "Google branch: subscriptions → Cal AI → Cancel → confirmation",
              "result": "Google says paid access continues for paid period"
            },
            {
              "screen": "calai-s-billing",
              "action": "Web branch: submit subscriber email",
              "result": "Public management form; subsequent email flow untested"
            }
          ],
          "branches": [
            "Three alternative branches, not sequential steps",
            "Deleting app is not cancellation",
            "Missing plan: verify receipt/store account"
          ],
          "persistence": "Cancellation confirmation must be read on actual provider; none performed",
          "friction": "Channel fragmentation complicates switching; see calai-f-restore for transfer limits",
          "evidence": "documented",
          "sources": [
            "calai-18",
            "calai-19",
            "calai-14",
            "calai-02"
          ],
          "visual_ids": []
        },
        {
          "id": "calai-f-delete",
          "name": "Request data deletion",
          "job": "Exercise privacy rights separately from billing",
          "preconditions": [
            "Confirm identity and applicable rights; no request sent"
          ],
          "steps": [
            {
              "screen": "calai-s-privacy",
              "action": "Email privacy@calai.app with requested right",
              "result": "Request channel documented"
            },
            {
              "screen": "calai-s-privacy",
              "action": "Complete applicable identity checks and review response",
              "result": "Exact response and timing not tested"
            }
          ],
          "branches": [
            "Deletion exceptions/retention may apply",
            "Washington-specific appeal/access/withdrawal rights documented",
            "Cancel billing separately"
          ],
          "persistence": "Deletion completion not tested; policy is not a deletion receipt",
          "friction": "In-app account-deletion route remains unknown",
          "evidence": "documented",
          "sources": [
            "calai-05",
            "calai-07",
            "calai-20"
          ],
          "visual_ids": []
        },
        {
          "id": "calai-f-community",
          "name": "Report harmful community content",
          "job": "Use Groups with a moderation route",
          "preconditions": [
            "Group access; eligibility/gate unknown"
          ],
          "steps": [
            {
              "screen": "calai-s-groups",
              "action": "Find a post needing review",
              "result": "Groups and public/private contexts documented"
            },
            {
              "screen": "calai-s-report",
              "action": "Long-press post then Report",
              "result": "Guidelines say support reviews"
            },
            {
              "screen": "calai-s-groups",
              "action": "Use Appeal or support for restrictions",
              "result": "Appeal route documented without dialog screenshots"
            }
          ],
          "branches": [
            "Posts can be removed and posting restricted",
            "Public posting can persist in external copies after deletion"
          ],
          "persistence": "Public persistence warning in guidelines; no live post created",
          "friction": "Sharing diary content introduces privacy exposure beyond private tracking",
          "evidence": "documented",
          "sources": [
            "calai-05",
            "calai-08"
          ],
          "visual_ids": []
        }
      ],
      "visuals": [
        {
          "id": "calai-v01",
          "file": "assets/apple-01.png",
          "source_url": "https://is1-ssl.mzstatic.com/image/thumb/PurpleSource211/v4/66/dd/5c/66dd5cab-7622-7caf-84c1-5fc5c16f5b39/28f8bc10-b990-4c88-be57-5003ba5d6483_SS1Small__U00281_U0029.png/392x696bb.png",
          "source_page": "https://itunes.apple.com/lookup?id=6480417616&country=us",
          "title": "Daily calorie dashboard",
          "platform": "iOS store marketing",
          "version_or_date": "Creation date/version unknown; retrieved 2026-10-07. Store listing version is not proof of image version.",
          "kind": "store-marketing",
          "observations": [
            "Calories-left ring dominates the top; protein/carbs/fats use separate small rings.",
            "Photo-led recent entries include times and macros.",
            "Home, Analytics, Settings and a prominent plus control are visible."
          ],
          "limitations": "Vendor marketing artwork, not our native capture. Exact runtime, feature entitlement and intervening screens untested. Annotated derivative: assets/calai-v01-annotated.jpg",
          "sources": [
            "calai-21",
            "calai-11"
          ]
        },
        {
          "id": "calai-v02",
          "file": "assets/apple-02.png",
          "source_url": "https://is1-ssl.mzstatic.com/image/thumb/PurpleSource221/v4/33/52/fd/3352fd96-00a2-d63b-9362-f1fdaa21fe31/e93b538a-fce8-4568-94db-b2b5f69644e2_SS2Small__U00282_U0029.png/392x696bb.png",
          "source_page": "https://itunes.apple.com/lookup?id=6480417616&country=us",
          "title": "Photo scanner",
          "platform": "iOS store marketing",
          "version_or_date": "Creation date/version unknown; retrieved 2026-10-07. Store listing version is not proof of image version.",
          "kind": "store-marketing",
          "observations": [
            "Food is framed in the camera preview.",
            "A bottom mode strip includes Scan food and several icons without full labels.",
            "Back, overflow, flash and shutter controls are visible."
          ],
          "limitations": "Vendor marketing artwork, not our native capture. Exact runtime, feature entitlement and intervening screens untested. Annotated derivative: assets/calai-v02-annotated.jpg",
          "sources": [
            "calai-22",
            "calai-11"
          ]
        },
        {
          "id": "calai-v03",
          "file": "assets/apple-03.png",
          "source_url": "https://is1-ssl.mzstatic.com/image/thumb/PurpleSource211/v4/9f/b6/cd/9fb6cdca-5494-1a6e-f352-f7ed45756b38/06c53f71-a783-49ef-aeb8-2716c4a2e083_SS3Small__U00281_U0029.png/392x696bb.png",
          "source_page": "https://itunes.apple.com/lookup?id=6480417616&country=us",
          "title": "Nutrition result and correction",
          "platform": "iOS store marketing",
          "version_or_date": "Creation date/version unknown; retrieved 2026-10-07. Store listing version is not proof of image version.",
          "kind": "store-marketing",
          "observations": [
            "A serving stepper and per-nutrient pencil icons allow visible correction affordances.",
            "Fix Results and Done are separate bottom actions.",
            "The ingredient callouts extending beyond the phone frame are promotional overlays."
          ],
          "limitations": "Vendor marketing artwork, not our native capture. Exact runtime, feature entitlement and intervening screens untested. Annotated derivative: assets/calai-v03-annotated.jpg",
          "sources": [
            "calai-23",
            "calai-11"
          ]
        },
        {
          "id": "calai-v04",
          "file": "assets/apple-04.png",
          "source_url": "https://is1-ssl.mzstatic.com/image/thumb/PurpleSource221/v4/16/ca/3b/16ca3b16-fdd8-74e6-f0f6-b6070ee8547c/4ff1e0d2-b596-4b09-a8c0-99accd0d5c85_SS2Small__U00283_U0029.png/392x696bb.png",
          "source_page": "https://itunes.apple.com/lookup?id=6480417616&country=us",
          "title": "Weight and nutrition analytics",
          "platform": "iOS store marketing",
          "version_or_date": "Creation date/version unknown; retrieved 2026-10-07. Store listing version is not proof of image version.",
          "kind": "store-marketing",
          "observations": [
            "Goal chart and nutrition bars have separate date-range controls.",
            "Macro labels floating outside the device are marketing callouts.",
            "The bottom tab says Analytics rather than Progress."
          ],
          "limitations": "Vendor marketing artwork, not our native capture. Exact runtime, feature entitlement and intervening screens untested. Annotated derivative: assets/calai-v04-annotated.jpg",
          "sources": [
            "calai-24",
            "calai-11"
          ]
        },
        {
          "id": "calai-v05",
          "file": "assets/play-04-full.png",
          "source_url": "https://play-lh.googleusercontent.com/_LKArRkRzv59CX2VrC3TU0syd_oIdskYI8RV3SgVAbdHYrnd8g1-HhXlvsMTuXxNbtnCkDHR854br-s7ubiWdg=s0",
          "source_page": "https://play.google.com/store/apps/details?hl=en_US&id=com.viraldevelopment.calai",
          "title": "Android-marketed progress dashboard",
          "platform": "Android depiction in official Google Play marketing",
          "version_or_date": "Creation date/version unknown; retrieved 2026-10-07. Store listing version is not proof of image version.",
          "kind": "store-marketing",
          "observations": [
            "Weight and day-streak cards precede the weight graph.",
            "Log Weight and 90D/6M/1Y/ALL controls are visible.",
            "Progress tab is selected; graph example dates are not screenshot capture dates."
          ],
          "limitations": "Vendor marketing artwork, not our native capture. Exact runtime, feature entitlement and intervening screens untested. Annotated derivative: assets/calai-v05-annotated.jpg",
          "sources": [
            "calai-25",
            "calai-04"
          ]
        },
        {
          "id": "calai-v06",
          "file": "assets/play-05-full.png",
          "source_url": "https://play-lh.googleusercontent.com/l4MpxdkI78j3j9gyGCACcj9GWAryGMrF9n4_VbaQvNNDTpYJw7yRlFTFVC21xXNX-rz23MWkbrCFIpxzP_eK4Kc=s0",
          "source_page": "https://play.google.com/store/apps/details?hl=en_US&id=com.viraldevelopment.calai",
          "title": "Progress-photo comparison",
          "platform": "Android depiction in official Google Play marketing",
          "version_or_date": "Creation date/version unknown; retrieved 2026-10-07. Store listing version is not proof of image version.",
          "kind": "store-marketing",
          "observations": [
            "Two chosen photos appear side by side with weight and date overlays.",
            "A Hide weight switch and a thumbnail filmstrip are visible.",
            "Share is a large bottom action; share destination and default audience are unknown."
          ],
          "limitations": "Vendor marketing artwork, not our native capture. Exact runtime, feature entitlement and intervening screens untested. Annotated derivative: assets/calai-v06-annotated.jpg",
          "sources": [
            "calai-26",
            "calai-04"
          ]
        },
        {
          "id": "calai-v07",
          "file": "assets/hero-image.webp",
          "source_url": "https://www.calai.app/hero-image.webp",
          "source_page": "https://www.calai.app/",
          "title": "Scanner-to-result marketing pair",
          "platform": "website marketing; iPhone depiction",
          "version_or_date": "Creation date/version unknown; retrieved 2026-10-07. Store listing version is not proof of image version.",
          "kind": "store-marketing",
          "observations": [
            "One image places scanner and nutrition result devices side by side.",
            "The matched pancake meal suggests an acquisition-to-breakdown story.",
            "No intermediate upload, latency or confirmation state is shown."
          ],
          "limitations": "Vendor marketing artwork, not our native capture. Exact runtime, feature entitlement and intervening screens untested. Annotated derivative: assets/calai-v07-annotated.jpg",
          "sources": [
            "calai-27",
            "calai-01"
          ]
        },
        {
          "id": "calai-v08",
          "file": "assets/food-db.webp",
          "source_url": "https://www.calai.app/food-db.webp",
          "source_page": "https://www.calai.app/",
          "title": "Website progress design variant",
          "platform": "website marketing; iPhone depiction",
          "version_or_date": "Creation date/version unknown; retrieved 2026-10-07. Store listing version is not proof of image version.",
          "kind": "store-marketing",
          "observations": [
            "Last weight and Days logged cards sit above date filters.",
            "The depicted chart has a selected point tooltip and a goal-edit pencil.",
            "Cheat-day chip is visible; its calculation and semantics are undocumented."
          ],
          "limitations": "Vendor marketing artwork, not our native capture. Exact runtime, feature entitlement and intervening screens untested. Annotated derivative: assets/calai-v08-annotated.jpg",
          "sources": [
            "calai-28",
            "calai-01"
          ]
        },
        {
          "id": "calai-v09",
          "file": "assets/dark-iphone-preview.webp",
          "source_url": "https://www.calai.app/dark-iphone-preview.webp",
          "source_page": "https://www.calai.app/",
          "title": "Dark home design variant",
          "platform": "website marketing; iPhone depiction",
          "version_or_date": "Creation date/version unknown; retrieved 2026-10-07. Store listing version is not proof of image version.",
          "kind": "store-marketing",
          "observations": [
            "Dark surfaces preserve the large calorie ring and three macro cards.",
            "Recent entries remain image-led; plus becomes light against dark surfaces.",
            "Today/Yesterday navigation and Analytics tab differ from other supplied art."
          ],
          "limitations": "Vendor marketing artwork, not our native capture. Exact runtime, feature entitlement and intervening screens untested. Annotated derivative: assets/calai-v09-annotated.jpg",
          "sources": [
            "calai-29",
            "calai-01"
          ]
        },
        {
          "id": "calai-v10",
          "file": "assets/analyzed.webp",
          "source_url": "https://www.calai.app/analyzed.webp",
          "source_page": "https://www.calai.app/",
          "title": "Expanded nutrition result",
          "platform": "iPhone depiction on official website",
          "version_or_date": "Creation date/version unknown; retrieved 2026-10-07. Store listing version is not proof of image version.",
          "kind": "store-marketing",
          "observations": [
            "Photo header has back, share and overflow controls.",
            "Serving value has a pencil; nutrition summary leads into Ingredients below.",
            "Bookmark, time and persistent Fix Results/Done affordances are visible."
          ],
          "limitations": "Vendor marketing artwork, not our native capture. Exact runtime, feature entitlement and intervening screens untested. Annotated derivative: assets/calai-v10-annotated.jpg",
          "sources": [
            "calai-30",
            "calai-01"
          ]
        },
        {
          "id": "calai-v11",
          "file": "assets/search-food-db.webp",
          "source_url": "https://www.calai.app/search-food-db.webp",
          "source_page": "https://www.calai.app/",
          "title": "Food database and reuse entry",
          "platform": "iPhone depiction on official website",
          "version_or_date": "Creation date/version unknown; retrieved 2026-10-07. Store listing version is not proof of image version.",
          "kind": "store-marketing",
          "observations": [
            "All, My meals, My foods and Saved scans are visible tabs.",
            "Log empty food offers an escape from search; exact subsequent editor is not shown.",
            "Suggestion rows combine a serving unit, calories and a plus action."
          ],
          "limitations": "Vendor marketing artwork, not our native capture. Exact runtime, feature entitlement and intervening screens untested. Annotated derivative: assets/calai-v11-annotated.jpg",
          "sources": [
            "calai-31",
            "calai-01"
          ]
        },
        {
          "id": "calai-v12",
          "file": "assets/water.webp",
          "source_url": "https://www.calai.app/water.webp",
          "source_page": "https://www.calai.app/",
          "title": "Activity and water dashboard",
          "platform": "iPhone depiction on official website",
          "version_or_date": "Creation date/version unknown; retrieved 2026-10-07. Store listing version is not proof of image version.",
          "kind": "store-marketing",
          "observations": [
            "Steps and calories-burned cards separate activity types.",
            "Water exposes minus, plus and a settings gear alongside amount and cups.",
            "Recent history interleaves food and a weight-lifting entry with time, intensity and duration."
          ],
          "limitations": "Vendor marketing artwork, not our native capture. Exact runtime, feature entitlement and intervening screens untested. Annotated derivative: assets/calai-v12-annotated.jpg",
          "sources": [
            "calai-32",
            "calai-01"
          ]
        }
      ],
      "design_patterns": [
        {
          "name": "Remaining-budget first",
          "observation": "Large calorie-left ring outranks meal list.",
          "implication": "Analyst interpretation: Makes the next food decision salient.",
          "tradeoff": "Hypothesis to test: Can hide cumulative intake and create anxiety if overages dominate.",
          "sources": [
            "calai-21",
            "calai-29"
          ],
          "visual_ids": [
            "calai-v01",
            "calai-v09"
          ]
        },
        {
          "name": "Photo as record identity",
          "observation": "Meal imagery anchors history and detail.",
          "implication": "Analyst interpretation: Helps recognize a meal without remembering exact food name.",
          "tradeoff": "Hypothesis to test: Images do not establish portion or ingredient accuracy.",
          "sources": [
            "calai-21",
            "calai-30"
          ],
          "visual_ids": [
            "calai-v01",
            "calai-v10"
          ]
        },
        {
          "name": "Explicit AI repair affordance",
          "observation": "Fix Results sits beside Done.",
          "implication": "Analyst interpretation: Normalizes correction rather than hiding uncertainty behind a score.",
          "tradeoff": "Hypothesis to test: Dialogue cost and correction memory must be tested.",
          "sources": [
            "calai-23",
            "calai-30",
            "calai-16"
          ],
          "visual_ids": [
            "calai-v03",
            "calai-v10"
          ]
        },
        {
          "name": "Two repair granularities",
          "observation": "Serving control and nutrient-edit pencils coexist.",
          "implication": "Analyst interpretation: Separates portion changes from wrong nutrition assumptions.",
          "tradeoff": "Hypothesis to test: Potential calorie/macro inconsistency needs validation.",
          "sources": [
            "calai-23"
          ],
          "visual_ids": [
            "calai-v03"
          ]
        },
        {
          "name": "Reusable record taxonomy",
          "observation": "My meals, My foods and Saved scans sit beside All.",
          "implication": "Analyst interpretation: Signals distinct reusable objects.",
          "tradeoff": "Hypothesis to test: Creation and propagation rules are not self-evident from tab labels.",
          "sources": [
            "calai-31"
          ],
          "visual_ids": [
            "calai-v11"
          ]
        },
        {
          "name": "Daily carousel for activity",
          "observation": "Calories and activity/water occupy different home pages.",
          "implication": "Analyst interpretation: Preserves a focused primary dashboard.",
          "tradeoff": "Hypothesis to test: Secondary data may be missed without an obvious gesture cue.",
          "sources": [
            "calai-21",
            "calai-32"
          ],
          "visual_ids": [
            "calai-v01",
            "calai-v12"
          ]
        },
        {
          "name": "Comparison with selective concealment",
          "observation": "Photo sharing offers Hide weight.",
          "implication": "Analyst interpretation: Users can reduce one sensitive overlay before sharing.",
          "tradeoff": "Hypothesis to test: Dates, body images and backgrounds may remain sensitive.",
          "sources": [
            "calai-26"
          ],
          "visual_ids": [
            "calai-v06"
          ]
        },
        {
          "name": "History plus motivation",
          "observation": "Progress mixes weight charts with streaks or days-logged cards.",
          "implication": "Analyst interpretation: Offers process feedback beside body outcomes.",
          "tradeoff": "Hypothesis to test: Streak and cheat-day semantics may imply value judgments.",
          "sources": [
            "calai-25",
            "calai-28"
          ],
          "visual_ids": [
            "calai-v05",
            "calai-v08"
          ]
        },
        {
          "name": "Multi-channel recovery",
          "observation": "Compare calai-f-restore, calai-f-export and calai-f-delete as separate recovery jobs.",
          "implication": "Analyst interpretation: Distinguish account identity, purchase entitlement and data rights.",
          "tradeoff": "Hypothesis to test: No single recovery center was verified; users must identify the right subsystem.",
          "sources": [
            "calai-02",
            "calai-14",
            "calai-05"
          ],
          "visual_ids": []
        }
      ],
      "questions": [
        {
          "question": "Does a corrected serving/ingredient remain corrected after reopen, reuse, rescan and second-device sync?",
          "why_it_matters": "Durable correctness matters more than first scan speed.",
          "how_to_verify": "Use consented test account and weighed composite meal; compare all four return paths.",
          "priority": "high"
        },
        {
          "question": "What are the current onboarding, trial, paywall and restore sequences per platform and acquisition channel?",
          "why_it_matters": "Store download-free is not feature-free.",
          "how_to_verify": "Record separate iOS/Android sessions without buying; capture price and billing interval presented.",
          "priority": "high"
        },
        {
          "question": "Which micronutrients have targets and usable food-level data?",
          "why_it_matters": "Current science page prevents labeling micronutrients absent.",
          "how_to_verify": "Inspect target editor, result detail and nutrient reports; test missing-data display.",
          "priority": "high"
        },
        {
          "question": "What does dedicated voice input support beyond OS dictation?",
          "why_it_matters": "See voice_logging; an accessible workflow remains unproven.",
          "how_to_verify": "Inspect microphone affordance and multi-item/correction grammar on both platforms.",
          "priority": "high"
        },
        {
          "question": "How are custom recipes, My meals, My foods and Saved scans related?",
          "why_it_matters": "Reuse correctness depends on object model.",
          "how_to_verify": "Create one of each; change portions and ingredient amounts; inspect prior diary entries.",
          "priority": "high"
        },
        {
          "question": "Do step/workout calories modify the budget, and how are duplicate sources reconciled?",
          "why_it_matters": "Duplicate activity can alter food decisions.",
          "how_to_verify": "Inspect toggles and reconcile one controlled workout across one then two writers.",
          "priority": "high"
        },
        {
          "question": "Is Android on Google Fit or Health Connect, and what is synced in each direction?",
          "why_it_matters": "Documentation may lag platform evolution.",
          "how_to_verify": "Inspect current permissions and test weight, water, nutrition, steps and workouts separately.",
          "priority": "high"
        },
        {
          "question": "Where are PDF export and account deletion, and what do they actually include?",
          "why_it_matters": "Policy rights are not self-service UX evidence.",
          "how_to_verify": "Export a synthetic week, verify totals/units, then test deletion only with explicit approval.",
          "priority": "high"
        },
        {
          "question": "Can manual food entry work offline, and is photo inference cloud-dependent?",
          "why_it_matters": "Offline caching, writing and inference are distinct.",
          "how_to_verify": "After seeding history disable network; attempt new food, search, save and restart.",
          "priority": "medium"
        },
        {
          "question": "What is paid versus available without entitlement?",
          "why_it_matters": "Exact limits change competitive parity.",
          "how_to_verify": "Inspect barcode, manual search, saved items, export and health permissions with separate subscription states.",
          "priority": "high"
        },
        {
          "question": "Does the website expose a full diary after login?",
          "why_it_matters": "A login form alone is not a web nutrition app.",
          "how_to_verify": "With user-approved access inspect authenticated navigation; do not assume native parity.",
          "priority": "medium"
        },
        {
          "question": "What is the health score formula and how are recommendations contextualized?",
          "why_it_matters": "Visible precision may overstate nutritional certainty.",
          "how_to_verify": "Open explanation/help and test controlled ingredient variations; do not infer medical validity.",
          "priority": "medium"
        },
        {
          "question": "Are accessibility statements realized in the current native UI?",
          "why_it_matters": "Camera fallback and editable charts need usable screen-reader routes.",
          "how_to_verify": "Test VoiceOver/TalkBack, dynamic type, focus order, contrast and motor access on correction flow.",
          "priority": "high"
        },
        {
          "question": "Can progress images and diary entries be shared privately without residual identifiers?",
          "why_it_matters": "Hide weight is only one privacy control.",
          "how_to_verify": "Inspect preview, share sheet, metadata and group audience defaults with synthetic photos.",
          "priority": "medium"
        }
      ]
    },
    {
      "slug": "cronometer",
      "name": "Cronometer",
      "researched_at": "2026-10-07",
      "scope": "Public official-help desk research. iOS, Android and web; Basic, Gold and separate Pro. No account creation, purchase, live app testing or shared browser use.",
      "positioning": "Nutrition-data depth with reusable logging, optional AI capture, detailed targets and a separate professional workspace.",
      "mental_model": "Date-indexed diary of foods, exercise, biometrics and notes; reusable Foods library; target configuration; Discover reports; external data streams.",
      "platforms": [
        "iOS",
        "Android",
        "Web"
      ],
      "limitations": [
        "Official screenshots are demonstration records, not our tested sessions.",
        "Article updated_at is not a screenshot version date.",
        "Pro web quick-start contradicts dedicated Pro-mobile guide; mobile-specific guide is more directly applicable.",
        "Baseline activity advice differs between overview and newer platform-specific instructions.",
        "No price universalized; no checkout or subscription performed.",
        "Offline, learned expenditure and automated weekly check-ins not established.",
        "All 40 feature keys from the research contract are retained; not-found means unknown, not absent."
      ],
      "sources": [
        {
          "id": "cr-01",
          "title": "Subscription Types",
          "url": "https://support.cronometer.com/api/v2/help_center/en-us/articles/360028026971.json",
          "retrieved_at": "2026-10-07T11:05:18.670607+00:00",
          "evidence_type": "official-help",
          "published_or_updated": "2026-10-06T15:12:21Z"
        },
        {
          "id": "cr-02",
          "title": "Mobile - Quick Start Guide",
          "url": "https://support.cronometer.com/api/v2/help_center/en-us/articles/360021677792.json",
          "retrieved_at": "2026-10-07T11:05:18.849383+00:00",
          "evidence_type": "official-help",
          "published_or_updated": "2026-10-07T00:04:41Z"
        },
        {
          "id": "cr-03",
          "title": "Web - Quick Start Guide",
          "url": "https://support.cronometer.com/api/v2/help_center/en-us/articles/360021897491.json",
          "retrieved_at": "2026-10-07T11:05:19.011249+00:00",
          "evidence_type": "official-help",
          "published_or_updated": "2026-10-02T19:25:36Z"
        },
        {
          "id": "cr-04",
          "title": "Mobile - Add a Food",
          "url": "https://support.cronometer.com/api/v2/help_center/en-us/articles/360018955211.json",
          "retrieved_at": "2026-10-07T11:05:19.242431+00:00",
          "evidence_type": "official-help",
          "published_or_updated": "2026-10-07T07:23:59Z"
        },
        {
          "id": "cr-05",
          "title": "Mobile - Scan Food",
          "url": "https://support.cronometer.com/api/v2/help_center/en-us/articles/360020441392.json",
          "retrieved_at": "2026-10-07T11:05:19.483466+00:00",
          "evidence_type": "official-help",
          "published_or_updated": "2026-10-04T13:12:44Z"
        },
        {
          "id": "cr-06",
          "title": "Mobile - Photo-Logging",
          "url": "https://support.cronometer.com/api/v2/help_center/en-us/articles/39013533811092.json",
          "retrieved_at": "2026-10-07T11:05:19.675645+00:00",
          "evidence_type": "official-help",
          "published_or_updated": "2026-09-28T00:39:05Z"
        },
        {
          "id": "cr-07",
          "title": "Mobile - Voice Logging",
          "url": "https://support.cronometer.com/api/v2/help_center/en-us/articles/47549391461780.json",
          "retrieved_at": "2026-10-07T11:05:19.879135+00:00",
          "evidence_type": "official-help",
          "published_or_updated": "2026-10-01T01:43:37Z"
        },
        {
          "id": "cr-08",
          "title": "Mobile - Siri Voice Logging",
          "url": "https://support.cronometer.com/api/v2/help_center/en-us/articles/47664884315412.json",
          "retrieved_at": "2026-10-07T11:05:20.067748+00:00",
          "evidence_type": "official-help",
          "published_or_updated": "2026-09-30T10:28:04Z"
        },
        {
          "id": "cr-09",
          "title": "Mobile - Diary Overview",
          "url": "https://support.cronometer.com/api/v2/help_center/en-us/articles/360018593112.json",
          "retrieved_at": "2026-10-07T11:05:20.267882+00:00",
          "evidence_type": "official-help",
          "published_or_updated": "2026-10-04T16:44:42Z"
        },
        {
          "id": "cr-10",
          "title": "Mobile - Edit Diary Entries",
          "url": "https://support.cronometer.com/api/v2/help_center/en-us/articles/360019003171.json",
          "retrieved_at": "2026-10-07T11:05:20.402863+00:00",
          "evidence_type": "official-help",
          "published_or_updated": "2026-06-25T20:35:54Z"
        },
        {
          "id": "cr-11",
          "title": "Mobile - Copy & Paste",
          "url": "https://support.cronometer.com/api/v2/help_center/en-us/articles/360018695932.json",
          "retrieved_at": "2026-10-07T11:05:20.540502+00:00",
          "evidence_type": "official-help",
          "published_or_updated": "2026-08-28T14:25:45Z"
        },
        {
          "id": "cr-12",
          "title": "Mobile - Create Custom Meal",
          "url": "https://support.cronometer.com/api/v2/help_center/en-us/articles/16510542794004.json",
          "retrieved_at": "2026-10-07T11:05:20.705085+00:00",
          "evidence_type": "official-help",
          "published_or_updated": "2026-09-17T18:36:53Z"
        },
        {
          "id": "cr-13",
          "title": "Mobile - Create a Custom Recipe",
          "url": "https://support.cronometer.com/api/v2/help_center/en-us/articles/360019870111.json",
          "retrieved_at": "2026-10-07T11:05:20.873893+00:00",
          "evidence_type": "official-help",
          "published_or_updated": "2026-10-04T07:43:44Z"
        },
        {
          "id": "cr-14",
          "title": "Mobile - Recipe Importer",
          "url": "https://support.cronometer.com/api/v2/help_center/en-us/articles/4403966087828.json",
          "retrieved_at": "2026-10-07T11:05:21.036224+00:00",
          "evidence_type": "official-help",
          "published_or_updated": "2026-10-05T00:38:05Z"
        },
        {
          "id": "cr-15",
          "title": "Mobile - Set a Cooked Recipe Weight",
          "url": "https://support.cronometer.com/api/v2/help_center/en-us/articles/4407646573588.json",
          "retrieved_at": "2026-10-07T11:05:21.201403+00:00",
          "evidence_type": "official-help",
          "published_or_updated": "2026-08-01T04:28:28Z"
        },
        {
          "id": "cr-16",
          "title": "Mobile - Macro & Energy Targets",
          "url": "https://support.cronometer.com/api/v2/help_center/en-us/articles/33113157685652.json",
          "retrieved_at": "2026-10-07T11:05:21.353593+00:00",
          "evidence_type": "official-help",
          "published_or_updated": "2026-10-06T08:27:20Z"
        },
        {
          "id": "cr-17",
          "title": "Mobile - Weight Goal",
          "url": "https://support.cronometer.com/api/v2/help_center/en-us/articles/32978027080980.json",
          "retrieved_at": "2026-10-07T11:05:21.496413+00:00",
          "evidence_type": "official-help",
          "published_or_updated": "2026-10-06T17:55:15Z"
        },
        {
          "id": "cr-18",
          "title": "Mobile - Energy Expenditure",
          "url": "https://support.cronometer.com/api/v2/help_center/en-us/articles/33132110153492.json",
          "retrieved_at": "2026-10-07T11:05:21.621995+00:00",
          "evidence_type": "official-help",
          "published_or_updated": "2026-10-06T04:21:23Z"
        },
        {
          "id": "cr-19",
          "title": "Mobile - Edit Nutrient Targets",
          "url": "https://support.cronometer.com/api/v2/help_center/en-us/articles/360020571571.json",
          "retrieved_at": "2026-10-07T11:05:21.744185+00:00",
          "evidence_type": "official-help",
          "published_or_updated": "2026-08-04T13:34:55Z"
        },
        {
          "id": "cr-20",
          "title": "Data Sources",
          "url": "https://support.cronometer.com/api/v2/help_center/en-us/articles/360018239472.json",
          "retrieved_at": "2026-10-07T11:05:21.886530+00:00",
          "evidence_type": "official-help",
          "published_or_updated": "2026-10-03T10:59:02Z"
        },
        {
          "id": "cr-21",
          "title": "Mobile - Nutrition Report",
          "url": "https://support.cronometer.com/api/v2/help_center/en-us/articles/360019864891.json",
          "retrieved_at": "2026-10-07T11:05:22.029562+00:00",
          "evidence_type": "official-help",
          "published_or_updated": "2026-09-16T19:14:15Z"
        },
        {
          "id": "cr-22",
          "title": "Mobile - Charts",
          "url": "https://support.cronometer.com/api/v2/help_center/en-us/articles/360019864311.json",
          "retrieved_at": "2026-10-07T11:05:22.167095+00:00",
          "evidence_type": "official-help",
          "published_or_updated": "2026-09-04T00:09:52Z"
        },
        {
          "id": "cr-23",
          "title": "Mobile - Dashboard",
          "url": "https://support.cronometer.com/api/v2/help_center/en-us/articles/10684426724116.json",
          "retrieved_at": "2026-10-07T11:05:22.304188+00:00",
          "evidence_type": "official-help",
          "published_or_updated": "2026-09-30T01:31:58Z"
        },
        {
          "id": "cr-24",
          "title": "Devices Integration Overview",
          "url": "https://support.cronometer.com/api/v2/help_center/en-us/articles/360018579072.json",
          "retrieved_at": "2026-10-07T11:05:22.432912+00:00",
          "evidence_type": "official-help",
          "published_or_updated": "2026-09-24T14:53:22Z"
        },
        {
          "id": "cr-25",
          "title": "Apple Health & Apple Watch",
          "url": "https://support.cronometer.com/api/v2/help_center/en-us/articles/360020734212.json",
          "retrieved_at": "2026-10-07T11:05:22.563237+00:00",
          "evidence_type": "official-help",
          "published_or_updated": "2026-10-06T18:43:07Z"
        },
        {
          "id": "cr-26",
          "title": "Health Connect",
          "url": "https://support.cronometer.com/api/v2/help_center/en-us/articles/22731903751316.json",
          "retrieved_at": "2026-10-07T11:05:22.689473+00:00",
          "evidence_type": "official-help",
          "published_or_updated": "2026-09-30T20:25:06Z"
        },
        {
          "id": "cr-27",
          "title": "Mobile - Account",
          "url": "https://support.cronometer.com/api/v2/help_center/en-us/articles/360019870072.json",
          "retrieved_at": "2026-10-07T11:05:22.826444+00:00",
          "evidence_type": "official-help",
          "published_or_updated": "2026-09-18T22:44:08Z"
        },
        {
          "id": "cr-28",
          "title": "Account Settings",
          "url": "https://support.cronometer.com/api/v2/help_center/en-us/articles/360018760151.json",
          "retrieved_at": "2026-10-07T11:05:22.956494+00:00",
          "evidence_type": "official-help",
          "published_or_updated": "2026-09-25T20:38:30Z"
        },
        {
          "id": "cr-29",
          "title": "How do I cancel my Gold Subscription?",
          "url": "https://support.cronometer.com/api/v2/help_center/en-us/articles/360028873772.json",
          "retrieved_at": "2026-10-07T11:05:23.087413+00:00",
          "evidence_type": "official-help",
          "published_or_updated": "2026-10-05T13:27:05Z"
        },
        {
          "id": "cr-30",
          "title": "Mobile - Fasting",
          "url": "https://support.cronometer.com/api/v2/help_center/en-us/articles/360036016612.json",
          "retrieved_at": "2026-10-07T11:05:23.213419+00:00",
          "evidence_type": "official-help",
          "published_or_updated": "2026-09-05T17:36:41Z"
        },
        {
          "id": "cr-31",
          "title": "Mobile - Notifications",
          "url": "https://support.cronometer.com/api/v2/help_center/en-us/articles/360051718511.json",
          "retrieved_at": "2026-10-07T11:05:23.355082+00:00",
          "evidence_type": "official-help",
          "published_or_updated": "2026-09-29T14:31:54Z"
        },
        {
          "id": "cr-32",
          "title": "iOS Home Screen Widgets",
          "url": "https://support.cronometer.com/api/v2/help_center/en-us/articles/4407693442324.json",
          "retrieved_at": "2026-10-07T11:05:23.484998+00:00",
          "evidence_type": "official-help",
          "published_or_updated": "2026-09-18T17:09:57Z"
        },
        {
          "id": "cr-33",
          "title": "Android Home Screen Widgets",
          "url": "https://support.cronometer.com/api/v2/help_center/en-us/articles/4417368926100.json",
          "retrieved_at": "2026-10-07T11:05:23.612088+00:00",
          "evidence_type": "official-help",
          "published_or_updated": "2026-09-26T17:41:51Z"
        },
        {
          "id": "cr-34",
          "title": "Snapshots",
          "url": "https://support.cronometer.com/api/v2/help_center/en-us/articles/360018570251.json",
          "retrieved_at": "2026-10-07T11:05:23.750184+00:00",
          "evidence_type": "official-help",
          "published_or_updated": "2026-09-04T20:34:43Z"
        },
        {
          "id": "cr-35",
          "title": "Mobile - Sharing",
          "url": "https://support.cronometer.com/api/v2/help_center/en-us/articles/360058911291.json",
          "retrieved_at": "2026-10-07T11:05:23.890470+00:00",
          "evidence_type": "official-help",
          "published_or_updated": "2026-07-12T03:33:09Z"
        },
        {
          "id": "cr-36",
          "title": "Pro Mobile - Getting Started",
          "url": "https://support.cronometer.com/api/v2/help_center/en-us/articles/36866328492564.json",
          "retrieved_at": "2026-10-07T11:05:24.022128+00:00",
          "evidence_type": "official-help",
          "published_or_updated": "2026-09-02T17:26:08Z"
        },
        {
          "id": "cr-37",
          "title": "Getting Started with Cronometer Pro",
          "url": "https://support.cronometer.com/api/v2/help_center/en-us/articles/360021361232.json",
          "retrieved_at": "2026-10-07T11:05:24.159617+00:00",
          "evidence_type": "official-help",
          "published_or_updated": "2026-08-14T01:49:36Z"
        },
        {
          "id": "cr-38",
          "title": "Mobile - Crono Coach",
          "url": "https://support.cronometer.com/api/v2/help_center/en-us/articles/49995994334100.json",
          "retrieved_at": "2026-10-07T11:05:24.304048+00:00",
          "evidence_type": "official-help",
          "published_or_updated": "2026-10-05T00:25:47Z"
        },
        {
          "id": "cr-39",
          "title": "Mobile - Set Repeating Foods",
          "url": "https://support.cronometer.com/api/v2/help_center/en-us/articles/16510562495764.json",
          "retrieved_at": "2026-10-07T11:05:24.462016+00:00",
          "evidence_type": "official-help",
          "published_or_updated": "2026-09-28T23:16:34Z"
        },
        {
          "id": "cr-40",
          "title": "Mobile - Macro Scheduler",
          "url": "https://support.cronometer.com/api/v2/help_center/en-us/articles/4406120372244.json",
          "retrieved_at": "2026-10-07T11:05:24.598056+00:00",
          "evidence_type": "official-help",
          "published_or_updated": "2026-09-10T16:58:01Z"
        },
        {
          "id": "cr-41",
          "title": "Mobile - Water Tracking",
          "url": "https://support.cronometer.com/api/v2/help_center/en-us/articles/18018883315988.json",
          "retrieved_at": "2026-10-07T11:05:24.745853+00:00",
          "evidence_type": "official-help",
          "published_or_updated": "2026-08-04T22:23:45Z"
        },
        {
          "id": "cr-42",
          "title": "Mobile - Add Exercise",
          "url": "https://support.cronometer.com/api/v2/help_center/en-us/articles/360020448572.json",
          "retrieved_at": "2026-10-07T11:05:24.892115+00:00",
          "evidence_type": "official-help",
          "published_or_updated": "2026-10-04T12:59:50Z"
        },
        {
          "id": "cr-43",
          "title": "Mobile - Add a Biometric",
          "url": "https://support.cronometer.com/api/v2/help_center/en-us/articles/360020717131.json",
          "retrieved_at": "2026-10-07T11:05:25.028349+00:00",
          "evidence_type": "official-help",
          "published_or_updated": "2026-10-01T05:22:53Z"
        },
        {
          "id": "cr-44",
          "title": "Mobile - Fixed Targets",
          "url": "https://support.cronometer.com/api/v2/help_center/en-us/articles/33231653421588.json",
          "retrieved_at": "2026-10-07T11:05:25.159467+00:00",
          "evidence_type": "official-help",
          "published_or_updated": "2026-10-02T19:42:14Z"
        },
        {
          "id": "cr-45",
          "title": "Mobile - Diary Groups",
          "url": "https://support.cronometer.com/api/v2/help_center/en-us/articles/360019002571.json",
          "retrieved_at": "2026-10-07T11:05:25.297861+00:00",
          "evidence_type": "official-help",
          "published_or_updated": "2026-06-25T20:35:23Z"
        },
        {
          "id": "cr-46",
          "title": "Mobile - Create a Custom Food",
          "url": "https://support.cronometer.com/api/v2/help_center/en-us/articles/360019866351.json",
          "retrieved_at": "2026-10-07T11:05:25.432179+00:00",
          "evidence_type": "official-help",
          "published_or_updated": "2026-10-06T16:23:16Z"
        },
        {
          "id": "cr-47",
          "title": "Mobile - Foods Tab",
          "url": "https://support.cronometer.com/api/v2/help_center/en-us/articles/360019865411.json",
          "retrieved_at": "2026-10-07T11:05:25.557868+00:00",
          "evidence_type": "official-help",
          "published_or_updated": "2026-10-06T21:00:21Z"
        },
        {
          "id": "cr-48",
          "title": "Mobile - Daily Report",
          "url": "https://support.cronometer.com/api/v2/help_center/en-us/articles/32689033683220.json",
          "retrieved_at": "2026-10-07T11:05:25.703152+00:00",
          "evidence_type": "official-help",
          "published_or_updated": "2026-10-04T23:38:03Z"
        }
      ],
      "features": [
        {
          "key": "onboarding",
          "label": "Profile-led onboarding",
          "status": "documented",
          "tier": "Basic",
          "platforms": "iOS; Android; Web",
          "detail": "Profile, activity and goal inform targets; email validation completes account creation.",
          "sources": [
            "cr-02",
            "cr-03"
          ]
        },
        {
          "key": "goal_setting",
          "label": "Weight goal and forecast",
          "status": "documented",
          "tier": "Basic",
          "platforms": "iOS; Android; Web",
          "detail": "Goal rate changes energy target; lower-energy warning requires acknowledgment.",
          "sources": [
            "cr-17",
            "cr-03"
          ]
        },
        {
          "key": "calorie_budget",
          "label": "Energy target and balance",
          "status": "documented",
          "tier": "Basic",
          "platforms": "iOS; Android; Web",
          "detail": "Weight-goal or custom target; expenditure-above-baseline is independently configurable.",
          "sources": [
            "cr-16",
            "cr-48"
          ]
        },
        {
          "key": "macro_targets",
          "label": "Ratios, fixed and keto",
          "status": "documented",
          "tier": "Basic; Gold scheduling",
          "platforms": "iOS; Android; Web",
          "detail": "Fixed grams need not equal energy target; Gold templates support day-specific targets.",
          "sources": [
            "cr-44",
            "cr-40",
            "cr-01"
          ]
        },
        {
          "key": "micronutrients",
          "label": "Editable micronutrient targets",
          "status": "documented",
          "tier": "Basic; Gold advanced analysis",
          "platforms": "iOS; Android; Web",
          "detail": "Minimum, maximum and visibility settings; unreported nutrients are not proof of zero intake.",
          "sources": [
            "cr-19",
            "cr-01"
          ]
        },
        {
          "key": "food_search",
          "label": "Filtered food search",
          "status": "documented",
          "tier": "Basic",
          "platforms": "iOS; Android; Web",
          "detail": "Category/source filters, favorites and multi-add with review.",
          "sources": [
            "cr-04",
            "cr-03"
          ]
        },
        {
          "key": "verified_database",
          "label": "Curated source provenance",
          "status": "documented",
          "tier": "Basic",
          "platforms": "iOS; Android; Web",
          "detail": "Vendor describes lab-analyzed sources and review of community submissions, not equal completeness for every food.",
          "sources": [
            "cr-20"
          ]
        },
        {
          "key": "barcode_scan",
          "label": "Barcode lookup",
          "status": "documented",
          "tier": "Basic",
          "platforms": "iOS; Android; Web manual number lookup",
          "detail": "Camera lookup has manual-number fallback; web accepts barcode numbers in search.",
          "sources": [
            "cr-05",
            "cr-20"
          ]
        },
        {
          "key": "label_scan",
          "label": "Missing-barcode label capture",
          "status": "limited",
          "tier": "Not explicitly gated in scanner help",
          "platforms": "iOS; Android",
          "detail": "US-label autofill is documented within custom-food submission; not universal label OCR.",
          "sources": [
            "cr-05"
          ]
        },
        {
          "key": "photo_logging",
          "label": "AI photo matching",
          "status": "documented",
          "tier": "Gold",
          "platforms": "iOS; Android documentation; iOS screenshots",
          "detail": "See canonical workflow cr-f04.",
          "sources": [
            "cr-06"
          ]
        },
        {
          "key": "voice_logging",
          "label": "Voice and Siri logging",
          "status": "documented",
          "tier": "Gold",
          "platforms": "iOS; Android in-app; Siri iOS only",
          "detail": "In-app review before adding; Siri logs first and asks for later review.",
          "sources": [
            "cr-07",
            "cr-08"
          ]
        },
        {
          "key": "text_ai",
          "label": "Typed natural-language matching",
          "status": "documented",
          "tier": "Gold",
          "platforms": "iOS; Android",
          "detail": "Voice Log also accepts typed descriptions.",
          "sources": [
            "cr-07"
          ]
        },
        {
          "key": "quick_add",
          "label": "Group quick-add shortcuts",
          "status": "limited",
          "tier": "Basic diary groups; action gates vary",
          "platforms": "iOS; Android",
          "detail": "Documented shortcut configuration; calories-only quick-entry mode not established.",
          "sources": [
            "cr-45"
          ]
        },
        {
          "key": "portion_edit",
          "label": "Amount and serving edit",
          "status": "documented",
          "tier": "Basic",
          "platforms": "iOS; Android; Web",
          "detail": "Tap logged entry to edit quantity/unit; timestamps require Gold.",
          "sources": [
            "cr-10",
            "cr-01"
          ]
        },
        {
          "key": "meal_correction",
          "label": "Recipe and meal repair",
          "status": "documented",
          "tier": "Basic core; Gold repeating",
          "platforms": "iOS; Android",
          "detail": "Menu distinguishes original, copy, adjustment, explosion and deletion.",
          "sources": [
            "cr-10"
          ]
        },
        {
          "key": "history_favorites",
          "label": "Favorites and reusable library",
          "status": "documented",
          "tier": "Basic",
          "platforms": "iOS; Android; Web",
          "detail": "Favorite star and custom library support return visits; Recents removal is documented.",
          "sources": [
            "cr-04",
            "cr-10"
          ]
        },
        {
          "key": "copy_meals",
          "label": "Copy items, groups and days",
          "status": "documented",
          "tier": "Not gated in cited help",
          "platforms": "iOS; Android; Web",
          "detail": "Copy to Today shortcut; whole-day copies exclude imported activity/biometrics.",
          "sources": [
            "cr-11",
            "cr-10"
          ]
        },
        {
          "key": "saved_meals",
          "label": "Custom meals",
          "status": "documented",
          "tier": "Not gated in cited help",
          "platforms": "iOS; Android; Web",
          "detail": "Reusable collections differ from portioned recipes; retire preserves historical entries.",
          "sources": [
            "cr-12"
          ]
        },
        {
          "key": "recipes",
          "label": "Recipe construction",
          "status": "documented",
          "tier": "Basic",
          "platforms": "iOS; Android; Web",
          "detail": "Ingredient workflow, serving/weight basis and cooked-weight correction.",
          "sources": [
            "cr-13",
            "cr-15",
            "cr-01"
          ]
        },
        {
          "key": "recipe_import",
          "label": "URL and ingredient-list import",
          "status": "documented",
          "tier": "Gold",
          "platforms": "iOS; Android; Web",
          "detail": "Unmatched items must be corrected or removed before saving.",
          "sources": [
            "cr-14"
          ]
        },
        {
          "key": "meal_planning",
          "label": "Planning components",
          "status": "limited",
          "tier": "Basic manual diary; Gold repeats/scheduler/suggestions",
          "platforms": "iOS; Android; Web",
          "detail": "Reuse and scheduling exist; complete calendar meal-plan generator or grocery workflow not established.",
          "sources": [
            "cr-39",
            "cr-40",
            "cr-47"
          ]
        },
        {
          "key": "water",
          "label": "Drinking and total water",
          "status": "documented",
          "tier": "Basic; Gold custom container size",
          "platforms": "iOS; Android; Web",
          "detail": "Drinking-water widget differs from total water including foods.",
          "sources": [
            "cr-41"
          ]
        },
        {
          "key": "weight_trend",
          "label": "Weight chart",
          "status": "documented",
          "tier": "Basic chart; Gold advanced charts",
          "platforms": "iOS; Android; Web",
          "detail": "Single-metric chart defaults to weight; not evidence of an adaptive smoothed-weight algorithm.",
          "sources": [
            "cr-22"
          ]
        },
        {
          "key": "body_metrics",
          "label": "Biometrics",
          "status": "documented",
          "tier": "Basic standard; Gold custom/timestamps",
          "platforms": "iOS; Android; Web",
          "detail": "Search metric, enter value/unit and group; custom metrics reusable.",
          "sources": [
            "cr-43",
            "cr-01"
          ]
        },
        {
          "key": "progress_photos",
          "label": "Snapshots",
          "status": "documented",
          "tier": "Tier not established in snapshots article",
          "platforms": "Web; mobile Pro documented; mobile consumer tab visually present",
          "detail": "Upload JPG/PNG with title, note, vitals; consumer-mobile operation not verified.",
          "sources": [
            "cr-34",
            "cr-36",
            "cr-21"
          ]
        },
        {
          "key": "exercise_logging",
          "label": "Energy-oriented exercise log",
          "status": "documented",
          "tier": "Basic",
          "platforms": "iOS; Android; Web",
          "detail": "Type, effort and duration estimate energy; no set/rep training-program claim.",
          "sources": [
            "cr-42"
          ]
        },
        {
          "key": "wearable_sync",
          "label": "Device integrations",
          "status": "documented",
          "tier": "Basic selected integrations",
          "platforms": "Web account links; iOS; Android",
          "detail": "Per-stream permissions and provider-specific limits; WHOOP strength training not imported in cited overview.",
          "sources": [
            "cr-24",
            "cr-01"
          ]
        },
        {
          "key": "health_platform_sync",
          "label": "Apple Health and Health Connect",
          "status": "documented",
          "tier": "Basic",
          "platforms": "iOS Apple Health; Android Health Connect",
          "detail": "Android imports exercise/biometrics and water; exports food/water and supported biometrics.",
          "sources": [
            "cr-25",
            "cr-26"
          ]
        },
        {
          "key": "adaptive_targets",
          "label": "Dynamic but not established learned targets",
          "status": "limited",
          "tier": "Basic; Gold scheduling",
          "platforms": "iOS; Android; Web",
          "detail": "Profile/activity/goal-dependent recalculation documented; intake-and-weight learned expenditure algorithm not established.",
          "sources": [
            "cr-16",
            "cr-18"
          ]
        },
        {
          "key": "weekly_review",
          "label": "Range-based nutrition review",
          "status": "limited",
          "tier": "Basic recent week; Gold custom range",
          "platforms": "iOS; Android; Web",
          "detail": "Nutrition averages and completeness filters documented; dedicated weekly check-in not established.",
          "sources": [
            "cr-21"
          ]
        },
        {
          "key": "fasting",
          "label": "Fasting scheduling and history",
          "status": "documented",
          "tier": "Gold",
          "platforms": "iOS; Android; Web",
          "detail": "Open-ended or timed fasts, recurrence, history and food-entry warning.",
          "sources": [
            "cr-30"
          ]
        },
        {
          "key": "reminders",
          "label": "Conditional logging reminders",
          "status": "documented",
          "tier": "Basic food/weight; Gold fasting",
          "platforms": "iOS; Android; Web email options",
          "detail": "Reminds if food/group remains unlogged; weight reminder follows seven days without entry.",
          "sources": [
            "cr-31",
            "cr-28"
          ]
        },
        {
          "key": "widgets",
          "label": "Home-screen widgets",
          "status": "documented",
          "tier": "Core widgets; Gold fasting",
          "platforms": "iOS; Android",
          "detail": "iOS docs list water/streaks in addition to energy/fasting; Android article lists energy/fasting only.",
          "sources": [
            "cr-32",
            "cr-33"
          ]
        },
        {
          "key": "offline_logging",
          "label": "Offline behavior",
          "status": "not-found",
          "tier": "Unknown",
          "platforms": "Unknown",
          "detail": "No offline durability/network-requirement claim established in retrieved official corpus.",
          "sources": [
            "cr-02",
            "cr-09"
          ]
        },
        {
          "key": "data_export",
          "label": "Raw CSV export",
          "status": "documented",
          "tier": "Basic raw export; Gold print reports",
          "platforms": "Web",
          "detail": "Date-ranged exports include daily nutrition, food/recipe entries and other data types.",
          "sources": [
            "cr-28",
            "cr-01"
          ]
        },
        {
          "key": "data_delete",
          "label": "Bulk or account deletion",
          "status": "documented",
          "tier": "Account control",
          "platforms": "iOS; Android; Web",
          "detail": "Irreversible delete by data type/date or entire account; separate Health Connect data deletion.",
          "sources": [
            "cr-27",
            "cr-28",
            "cr-26"
          ]
        },
        {
          "key": "subscription_cancel",
          "label": "Cancel renewal at purchase channel",
          "status": "documented",
          "tier": "Gold",
          "platforms": "Web; Apple subscriptions; Google Play",
          "detail": "Web Do Not Auto-Renew; app-store purchases managed at their original store.",
          "sources": [
            "cr-29"
          ]
        },
        {
          "key": "web_app",
          "label": "Browser application",
          "status": "documented",
          "tier": "Basic; Gold; Pro",
          "platforms": "Web",
          "detail": "Diary, Foods, Trends and account/device settings; useful export companion.",
          "sources": [
            "cr-03",
            "cr-28"
          ]
        },
        {
          "key": "social",
          "label": "Sharing with friends/professionals",
          "status": "limited",
          "tier": "Gold friends; Pro relationship",
          "platforms": "iOS; Android; Web",
          "detail": "Friends exchange foods/recipes, not diary access; professional access can be stopped.",
          "sources": [
            "cr-35"
          ]
        },
        {
          "key": "coaching",
          "label": "AI support and professional workspace",
          "status": "documented",
          "tier": "Gold Crono Coach; separate Pro subscription",
          "platforms": "iOS; Android; Web Pro",
          "detail": "Coach offers informational guidance; Pro is client management, not automatic human-coach service.",
          "sources": [
            "cr-38",
            "cr-36",
            "cr-37"
          ]
        }
      ],
      "screens": [
        {
          "id": "cr-s01",
          "name": "Activity onboarding",
          "area": "Onboarding",
          "entry": "Signup profile sequence",
          "primary_actions": [
            "Select baseline",
            "Next",
            "Skip"
          ],
          "states": [
            "Sedentary selected"
          ],
          "platform": "iOS visual; mobile documentation",
          "tier": "Basic",
          "evidence": "visual",
          "sources": [
            "cr-02"
          ],
          "visual_ids": [
            "cr-v01"
          ]
        },
        {
          "id": "cr-s02",
          "name": "Diary",
          "area": "Logging",
          "entry": "Diary tab",
          "primary_actions": [
            "Change date",
            "Add",
            "Open summary"
          ],
          "states": [
            "Today",
            "Completed/incomplete"
          ],
          "platform": "iOS; Android",
          "tier": "Basic",
          "evidence": "visual",
          "sources": [
            "cr-09",
            "cr-10"
          ],
          "visual_ids": [
            "cr-v07"
          ]
        },
        {
          "id": "cr-s03",
          "name": "Food search",
          "area": "Logging",
          "entry": "+ > Add Food",
          "primary_actions": [
            "Search",
            "Filter",
            "Multi-add"
          ],
          "states": [
            "Results",
            "Favorites",
            "Custom"
          ],
          "platform": "Mobile",
          "tier": "Basic",
          "evidence": "documented",
          "sources": [
            "cr-04"
          ],
          "visual_ids": []
        },
        {
          "id": "cr-s04",
          "name": "Food detail",
          "area": "Logging",
          "entry": "Select search result",
          "primary_actions": [
            "Change amount/unit",
            "Choose group",
            "Add to Diary"
          ],
          "states": [
            "Favorite selected",
            "Source shown"
          ],
          "platform": "iOS visual; mobile docs",
          "tier": "Basic; Gold timestamp",
          "evidence": "visual",
          "sources": [
            "cr-04"
          ],
          "visual_ids": [
            "cr-v02"
          ]
        },
        {
          "id": "cr-s05",
          "name": "Barcode camera",
          "area": "Logging",
          "entry": "+ > Scan Food",
          "primary_actions": [
            "Scan",
            "Type Barcode"
          ],
          "states": [
            "Matched",
            "Not found"
          ],
          "platform": "Mobile",
          "tier": "No gate stated",
          "evidence": "documented",
          "sources": [
            "cr-05"
          ],
          "visual_ids": []
        },
        {
          "id": "cr-s06",
          "name": "Custom-food editor",
          "area": "Foods",
          "entry": "Foods > Create Food",
          "primary_actions": [
            "Name",
            "Set serving",
            "Enter nutrients",
            "Save"
          ],
          "states": [
            "Review",
            "Delete/Retire"
          ],
          "platform": "Mobile",
          "tier": "Basic",
          "evidence": "documented",
          "sources": [
            "cr-46"
          ],
          "visual_ids": []
        },
        {
          "id": "cr-s07",
          "name": "Photo camera",
          "area": "AI logging",
          "entry": "+ > Photo Log",
          "primary_actions": [
            "Capture",
            "Choose library"
          ],
          "states": [
            "Camera; Beta badge in asset"
          ],
          "platform": "iOS visual; mobile docs",
          "tier": "Gold",
          "evidence": "visual",
          "sources": [
            "cr-06"
          ],
          "visual_ids": [
            "cr-v03"
          ]
        },
        {
          "id": "cr-s08",
          "name": "Photo matched-food review",
          "area": "AI logging",
          "entry": "After photo recognition",
          "primary_actions": [
            "Swap",
            "Search",
            "Create",
            "Add to Diary"
          ],
          "states": [
            "Matches",
            "Suggested ingredients",
            "Editable serving links"
          ],
          "platform": "iOS visual; mobile docs",
          "tier": "Gold",
          "evidence": "visual",
          "sources": [
            "cr-06"
          ],
          "visual_ids": [
            "cr-v04",
            "cr-v05"
          ]
        },
        {
          "id": "cr-s09",
          "name": "Voice description",
          "area": "AI logging",
          "entry": "+ > Voice Log",
          "primary_actions": [
            "Speak/type",
            "Match Foods"
          ],
          "states": [
            "Keyboard active; Beta in asset"
          ],
          "platform": "iOS visual; mobile docs",
          "tier": "Gold",
          "evidence": "visual",
          "sources": [
            "cr-07"
          ],
          "visual_ids": [
            "cr-v06"
          ]
        },
        {
          "id": "cr-s10",
          "name": "Voice matched-food review",
          "area": "AI logging",
          "entry": "Match Foods",
          "primary_actions": [
            "Edit description",
            "Swap/delete",
            "Add"
          ],
          "states": [
            "Matches awaiting review"
          ],
          "platform": "Mobile",
          "tier": "Gold",
          "evidence": "documented",
          "sources": [
            "cr-07"
          ],
          "visual_ids": []
        },
        {
          "id": "cr-s11",
          "name": "Diary entry actions",
          "area": "Correction",
          "entry": "Swipe right > menu",
          "primary_actions": [
            "Edit original/copy",
            "Adjust",
            "Explode",
            "Delete"
          ],
          "states": [
            "Recipe action menu open"
          ],
          "platform": "iOS visual; mobile docs",
          "tier": "Core; some Gold actions",
          "evidence": "visual",
          "sources": [
            "cr-10"
          ],
          "visual_ids": [
            "cr-v07"
          ]
        },
        {
          "id": "cr-s12",
          "name": "Diary multi-select",
          "area": "Reuse",
          "entry": "Diary overflow > Multi-Select",
          "primary_actions": [
            "Select",
            "Copy",
            "Create meal/recipe"
          ],
          "states": [
            "Selection active"
          ],
          "platform": "Mobile",
          "tier": "No gate stated",
          "evidence": "documented",
          "sources": [
            "cr-10",
            "cr-11",
            "cr-12"
          ],
          "visual_ids": []
        },
        {
          "id": "cr-s13",
          "name": "Custom-meal editor",
          "area": "Foods",
          "entry": "Foods > Create Meal",
          "primary_actions": [
            "Add items",
            "Review",
            "Save"
          ],
          "states": [
            "Saved",
            "Retire/delete choice"
          ],
          "platform": "Mobile",
          "tier": "No gate stated",
          "evidence": "documented",
          "sources": [
            "cr-12"
          ],
          "visual_ids": []
        },
        {
          "id": "cr-s14",
          "name": "Recipe ingredient editor",
          "area": "Foods",
          "entry": "Foods > Create Recipe",
          "primary_actions": [
            "Add ingredient",
            "Cooked weight",
            "Next"
          ],
          "states": [
            "Ingredient list"
          ],
          "platform": "iOS visual; mobile docs",
          "tier": "Basic",
          "evidence": "visual",
          "sources": [
            "cr-13",
            "cr-15"
          ],
          "visual_ids": [
            "cr-v08"
          ]
        },
        {
          "id": "cr-s15",
          "name": "Recipe serving setup",
          "area": "Foods",
          "entry": "Recipe editor > Next",
          "primary_actions": [
            "Weight or servings basis",
            "Set size"
          ],
          "states": [
            "Basis becomes fixed after save"
          ],
          "platform": "Mobile",
          "tier": "Basic",
          "evidence": "documented",
          "sources": [
            "cr-13"
          ],
          "visual_ids": []
        },
        {
          "id": "cr-s16",
          "name": "Recipe importer",
          "area": "Foods",
          "entry": "Foods > Import Recipe",
          "primary_actions": [
            "Paste URL/list",
            "Repair matches",
            "Save"
          ],
          "states": [
            "Unresolved ingredient blocks save"
          ],
          "platform": "Mobile",
          "tier": "Gold",
          "evidence": "documented",
          "sources": [
            "cr-14"
          ],
          "visual_ids": []
        },
        {
          "id": "cr-s17",
          "name": "Macro and energy targets",
          "area": "Targets",
          "entry": "More > Targets",
          "primary_actions": [
            "Set macro mode",
            "Custom energy",
            "Breakdown"
          ],
          "states": [
            "Ratios selected",
            "Custom energy"
          ],
          "platform": "iOS visual; mobile docs",
          "tier": "Basic",
          "evidence": "visual",
          "sources": [
            "cr-16"
          ],
          "visual_ids": [
            "cr-v09"
          ]
        },
        {
          "id": "cr-s18",
          "name": "Weight goal",
          "area": "Targets",
          "entry": "More > Targets > Weight Goal",
          "primary_actions": [
            "Set goal/rate",
            "Review forecast",
            "Save"
          ],
          "states": [
            "Maintain",
            "Low-energy warning"
          ],
          "platform": "Mobile",
          "tier": "Basic",
          "evidence": "documented",
          "sources": [
            "cr-17"
          ],
          "visual_ids": []
        },
        {
          "id": "cr-s19",
          "name": "Energy expenditure",
          "area": "Targets",
          "entry": "More > Targets",
          "primary_actions": [
            "Set BMR",
            "Baseline",
            "TEF"
          ],
          "states": [
            "Estimated/custom BMR"
          ],
          "platform": "Mobile",
          "tier": "Basic",
          "evidence": "documented",
          "sources": [
            "cr-18"
          ],
          "visual_ids": []
        },
        {
          "id": "cr-s20",
          "name": "Nutrient-target editor",
          "area": "Targets",
          "entry": "More > Targets or report bar",
          "primary_actions": [
            "Minimum",
            "Maximum",
            "Visibility"
          ],
          "states": [
            "Default/custom"
          ],
          "platform": "Mobile",
          "tier": "Basic",
          "evidence": "documented",
          "sources": [
            "cr-19"
          ],
          "visual_ids": []
        },
        {
          "id": "cr-s21",
          "name": "Macro scheduler",
          "area": "Targets",
          "entry": "More > Targets > Macro Scheduler",
          "primary_actions": [
            "Create/copy template",
            "Schedule",
            "Edit Today"
          ],
          "states": [
            "Recurring",
            "Single-day override"
          ],
          "platform": "Mobile",
          "tier": "Gold",
          "evidence": "documented",
          "sources": [
            "cr-40"
          ],
          "visual_ids": []
        },
        {
          "id": "cr-s22",
          "name": "Discover dashboard",
          "area": "Review",
          "entry": "Discover > Dashboard",
          "primary_actions": [
            "Choose cards",
            "Open Coach"
          ],
          "states": [
            "Configurable cards"
          ],
          "platform": "Mobile",
          "tier": "Basic; Gold Coach",
          "evidence": "documented",
          "sources": [
            "cr-23",
            "cr-38"
          ],
          "visual_ids": []
        },
        {
          "id": "cr-s23",
          "name": "Daily Report",
          "area": "Review",
          "entry": "Diary overflow or summary",
          "primary_actions": [
            "Inspect contributors",
            "Edit nutrient target"
          ],
          "states": [
            "Target met/exceeded/not set"
          ],
          "platform": "Mobile",
          "tier": "Basic; Gold advanced sections",
          "evidence": "documented",
          "sources": [
            "cr-48",
            "cr-01"
          ],
          "visual_ids": []
        },
        {
          "id": "cr-s24",
          "name": "Nutrition Report",
          "area": "Review",
          "entry": "Discover > Report",
          "primary_actions": [
            "Change range",
            "Open settings"
          ],
          "states": [
            "Daily-average summary"
          ],
          "platform": "Android visual; mobile docs",
          "tier": "Basic week; Gold range",
          "evidence": "visual",
          "sources": [
            "cr-21"
          ],
          "visual_ids": [
            "cr-v10"
          ]
        },
        {
          "id": "cr-s25",
          "name": "Report settings",
          "area": "Review",
          "entry": "Report gear",
          "primary_actions": [
            "Include today/supplements",
            "Choose day type"
          ],
          "states": [
            "All/nonempty/complete days"
          ],
          "platform": "Mobile",
          "tier": "Basic; Gold custom range",
          "evidence": "documented",
          "sources": [
            "cr-21"
          ],
          "visual_ids": []
        },
        {
          "id": "cr-s26",
          "name": "Charts",
          "area": "Review",
          "entry": "Discover > Charts",
          "primary_actions": [
            "Expand",
            "Filter",
            "Manage charts"
          ],
          "states": [
            "Weight",
            "Energy",
            "Gold/custom"
          ],
          "platform": "Mobile",
          "tier": "Basic; Gold advanced",
          "evidence": "documented",
          "sources": [
            "cr-22"
          ],
          "visual_ids": []
        },
        {
          "id": "cr-s27",
          "name": "Connect Apps & Devices",
          "area": "Integrations",
          "entry": "More > Connect Apps & Devices",
          "primary_actions": [
            "Connect",
            "Set permissions",
            "Backfill"
          ],
          "states": [
            "Connected/disconnected"
          ],
          "platform": "iOS Apple Health; Android Health Connect",
          "tier": "Basic",
          "evidence": "documented",
          "sources": [
            "cr-25",
            "cr-26"
          ],
          "visual_ids": []
        },
        {
          "id": "cr-s28",
          "name": "Exercise entry",
          "area": "Activity",
          "entry": "+ > Add Exercise",
          "primary_actions": [
            "Search",
            "Effort",
            "Duration",
            "Add"
          ],
          "states": [
            "Database/custom"
          ],
          "platform": "Mobile",
          "tier": "Basic",
          "evidence": "documented",
          "sources": [
            "cr-42"
          ],
          "visual_ids": []
        },
        {
          "id": "cr-s29",
          "name": "Biometric entry",
          "area": "Activity",
          "entry": "+ > Add Biometric",
          "primary_actions": [
            "Select metric",
            "Value/unit",
            "Add"
          ],
          "states": [
            "Standard/custom"
          ],
          "platform": "Mobile",
          "tier": "Basic; Gold custom",
          "evidence": "documented",
          "sources": [
            "cr-43",
            "cr-01"
          ],
          "visual_ids": []
        },
        {
          "id": "cr-s30",
          "name": "Fasting settings/history",
          "area": "Fasting",
          "entry": "More > Fasting",
          "primary_actions": [
            "Enable",
            "New fast",
            "Edit history"
          ],
          "states": [
            "Scheduled/active/completed"
          ],
          "platform": "Mobile",
          "tier": "Gold",
          "evidence": "documented",
          "sources": [
            "cr-30"
          ],
          "visual_ids": []
        },
        {
          "id": "cr-s31",
          "name": "Water widget/settings",
          "area": "Hydration",
          "entry": "Diary water widget",
          "primary_actions": [
            "Add/remove",
            "Custom amount",
            "Goal"
          ],
          "states": [
            "Drinking/total-water measures"
          ],
          "platform": "Mobile",
          "tier": "Basic; Gold container",
          "evidence": "documented",
          "sources": [
            "cr-41"
          ],
          "visual_ids": []
        },
        {
          "id": "cr-s32",
          "name": "Account and deletion",
          "area": "Account",
          "entry": "More > Account",
          "primary_actions": [
            "Privacy",
            "Bulk delete",
            "Delete account"
          ],
          "states": [
            "Irreversible deletion"
          ],
          "platform": "Mobile; Web",
          "tier": "All accounts",
          "evidence": "documented",
          "sources": [
            "cr-27",
            "cr-28"
          ],
          "visual_ids": []
        },
        {
          "id": "cr-s33",
          "name": "Export Data dialog",
          "area": "Account",
          "entry": "Web account data export",
          "primary_actions": [
            "Choose range",
            "Choose data export"
          ],
          "states": [
            "Include diary-group rows unchecked"
          ],
          "platform": "Web",
          "tier": "Basic",
          "evidence": "visual",
          "sources": [
            "cr-28",
            "cr-01"
          ],
          "visual_ids": [
            "cr-v11"
          ]
        },
        {
          "id": "cr-s34",
          "name": "Gold/Pro profile switcher",
          "area": "Professional",
          "entry": "More > arrows next to name",
          "primary_actions": [
            "Choose personal Gold",
            "Choose Pro"
          ],
          "states": [
            "Pro selected; empty clients"
          ],
          "platform": "Android visual; mobile docs",
          "tier": "Pro",
          "evidence": "visual",
          "sources": [
            "cr-36"
          ],
          "visual_ids": [
            "cr-v12"
          ]
        },
        {
          "id": "cr-s35",
          "name": "Crono Coach setup",
          "area": "Coaching",
          "entry": "Dashboard > Get Started",
          "primary_actions": [
            "Goals/restrictions",
            "Notes",
            "Accept disclaimer"
          ],
          "states": [
            "Initial setup",
            "Adjust settings",
            "Hide Coach"
          ],
          "platform": "Mobile",
          "tier": "Gold",
          "evidence": "documented",
          "sources": [
            "cr-38"
          ],
          "visual_ids": []
        },
        {
          "id": "cr-s36",
          "name": "Repeating items",
          "area": "Foods",
          "entry": "Foods > Repeat Items",
          "primary_actions": [
            "Configure recurrence",
            "Disable",
            "Delete"
          ],
          "states": [
            "Scheduled",
            "Paused"
          ],
          "platform": "Mobile",
          "tier": "Gold",
          "evidence": "documented",
          "sources": [
            "cr-39"
          ],
          "visual_ids": []
        },
        {
          "id": "cr-s37",
          "name": "Signup and email validation",
          "area": "Onboarding",
          "entry": "After plan review",
          "primary_actions": [
            "Enter credentials",
            "Accept terms",
            "Validate email"
          ],
          "states": [
            "Pending email confirmation"
          ],
          "platform": "Mobile",
          "tier": "Basic",
          "evidence": "documented",
          "sources": [
            "cr-02"
          ],
          "visual_ids": []
        },
        {
          "id": "cr-s38",
          "name": "Siri external logging",
          "area": "External capture",
          "entry": "Enabled Siri shortcut",
          "primary_actions": [
            "Describe food",
            "Review confirmation"
          ],
          "states": [
            "Logged banner"
          ],
          "platform": "iOS external system surface",
          "tier": "Gold",
          "evidence": "documented",
          "sources": [
            "cr-08"
          ],
          "visual_ids": []
        }
      ],
      "flows": [
        {
          "id": "cr-f01",
          "name": "Onboard and set goal",
          "job": "Establish initial targets",
          "preconditions": [
            "New account"
          ],
          "steps": [
            {
              "screen": "cr-s01",
              "action": "Enter profile/activity",
              "result": "Needs estimated"
            },
            {
              "screen": "cr-s18",
              "action": "Set goal/rate",
              "result": "Forecast shown"
            },
            {
              "screen": "cr-s37",
              "action": "Register and validate email",
              "result": "Account ready"
            }
          ],
          "branches": [
            "Skip activity visible; downstream effect untested."
          ],
          "persistence": "Account stores profile; durability untested.",
          "friction": "Email handoff; warning interpretation.",
          "evidence": "documented",
          "sources": [
            "cr-02",
            "cr-17"
          ],
          "visual_ids": [
            "cr-v01"
          ]
        },
        {
          "id": "cr-f02",
          "name": "Search and log",
          "job": "Record a known food",
          "preconditions": [
            "Account"
          ],
          "steps": [
            {
              "screen": "cr-s03",
              "action": "Search/filter",
              "result": "Candidate list"
            },
            {
              "screen": "cr-s04",
              "action": "Set amount/unit/group",
              "result": "Nutrition preview"
            },
            {
              "screen": "cr-s04",
              "action": "Add to Diary",
              "result": "Entry logged"
            }
          ],
          "branches": [
            "Multi-add uses Review Items."
          ],
          "persistence": "Diary entry; untested.",
          "friction": "Similar labels can differ in nutrient coverage.",
          "evidence": "documented",
          "sources": [
            "cr-04",
            "cr-20"
          ],
          "visual_ids": [
            "cr-v02"
          ]
        },
        {
          "id": "cr-f03",
          "name": "Barcode and missing-product repair",
          "job": "Log packaged food",
          "preconditions": [
            "Camera access"
          ],
          "steps": [
            {
              "screen": "cr-s05",
              "action": "Scan or type code",
              "result": "Match or missing-item prompt"
            },
            {
              "screen": "cr-s06",
              "action": "Create New; capture label/front",
              "result": "Custom-food fields"
            },
            {
              "screen": "cr-s06",
              "action": "Review and save",
              "result": "Food submitted for curation"
            }
          ],
          "branches": [
            "US labels autofill; other formats require manual details."
          ],
          "persistence": "Custom food saved; publication follows review.",
          "friction": "Capture quality and serving data.",
          "evidence": "documented",
          "sources": [
            "cr-05"
          ],
          "visual_ids": []
        },
        {
          "id": "cr-f04",
          "name": "Photo match and repair",
          "job": "Convert meal image into entries",
          "preconditions": [
            "Gold"
          ],
          "steps": [
            {
              "screen": "cr-s07",
              "action": "Capture/upload",
              "result": "Matched foods"
            },
            {
              "screen": "cr-s08",
              "action": "Edit amounts; swap/add/delete",
              "result": "Reviewed candidates"
            },
            {
              "screen": "cr-s08",
              "action": "Add to Diary",
              "result": "Committed entries"
            }
          ],
          "branches": [
            "New photo replaces matches; Create makes meal/recipe."
          ],
          "persistence": "Documented diary result; not tested.",
          "friction": "Hidden ingredients remain user responsibility.",
          "evidence": "documented",
          "sources": [
            "cr-06"
          ],
          "visual_ids": [
            "cr-v03",
            "cr-v04",
            "cr-v05"
          ]
        },
        {
          "id": "cr-f05",
          "name": "Voice or typed match",
          "job": "Use natural-language food entry",
          "preconditions": [
            "Gold"
          ],
          "steps": [
            {
              "screen": "cr-s09",
              "action": "Speak/type; Match Foods",
              "result": "Candidates"
            },
            {
              "screen": "cr-s10",
              "action": "Repair portions/matches",
              "result": "Reviewed items"
            },
            {
              "screen": "cr-s10",
              "action": "Add to Diary",
              "result": "Entries logged"
            }
          ],
          "branches": [
            "Re-matching replaces prior matches."
          ],
          "persistence": "Diary save documented.",
          "friction": "Correction survival after re-match must be tested.",
          "evidence": "documented",
          "sources": [
            "cr-07"
          ],
          "visual_ids": [
            "cr-v06"
          ]
        },
        {
          "id": "cr-f06",
          "name": "Siri log then review",
          "job": "Hands-free external capture",
          "preconditions": [
            "Gold iOS; Shortcuts/Siri enabled"
          ],
          "steps": [
            {
              "screen": "cr-s38",
              "action": "Invoke Siri and describe food",
              "result": "Confirmation banner"
            },
            {
              "screen": "cr-s02",
              "action": "Reopen Cronometer",
              "result": "Siri reminder and marked items"
            },
            {
              "screen": "cr-s04",
              "action": "Review logged item",
              "result": "Corrections available"
            }
          ],
          "branches": [
            "Shortcut setup occurs outside app; exact failure UI unknown."
          ],
          "persistence": "Siri inserts entries before in-app review.",
          "friction": "Different trust boundary from in-app AI.",
          "evidence": "documented",
          "sources": [
            "cr-08",
            "cr-10"
          ],
          "visual_ids": []
        },
        {
          "id": "cr-f07",
          "name": "Correct a logged meal",
          "job": "Repair entry without unintended history changes",
          "preconditions": [
            "Existing diary entry"
          ],
          "steps": [
            {
              "screen": "cr-s02",
              "action": "Tap entry",
              "result": "Amount/unit fields"
            },
            {
              "screen": "cr-s11",
              "action": "Choose original/copy/adjust/explode",
              "result": "Chosen editing path"
            },
            {
              "screen": "cr-s02",
              "action": "Review resulting diary",
              "result": "Nutrition changes"
            }
          ],
          "branches": [
            "Completed day must be reopened; exact original-edit propagation requires test."
          ],
          "persistence": "Entry edit documented; historical scope not fully established.",
          "friction": "Similar editing actions demand scope comprehension.",
          "evidence": "documented",
          "sources": [
            "cr-10"
          ],
          "visual_ids": [
            "cr-v07"
          ]
        },
        {
          "id": "cr-f08",
          "name": "Copy prior intake",
          "job": "Reuse yesterday or selected entries",
          "preconditions": [
            "Prior diary data"
          ],
          "steps": [
            {
              "screen": "cr-s12",
              "action": "Select entries; Copy",
              "result": "Clipboard selection"
            },
            {
              "screen": "cr-s02",
              "action": "Navigate target date/group",
              "result": "Destination"
            },
            {
              "screen": "cr-s02",
              "action": "Paste",
              "result": "Copied entries"
            }
          ],
          "branches": [
            "Copy to Today shortcut; whole-day imported activity excluded."
          ],
          "persistence": "Target-date entries documented.",
          "friction": "Wrong date/group; clipboard lifetime untested.",
          "evidence": "documented",
          "sources": [
            "cr-11",
            "cr-10"
          ],
          "visual_ids": []
        },
        {
          "id": "cr-f09",
          "name": "Save reusable meal",
          "job": "Bundle foods eaten together",
          "preconditions": [
            "Foods or diary selection"
          ],
          "steps": [
            {
              "screen": "cr-s13",
              "action": "Name; add portioned items",
              "result": "Meal draft"
            },
            {
              "screen": "cr-s13",
              "action": "Review; Save Meal",
              "result": "Library meal"
            },
            {
              "screen": "cr-s03",
              "action": "Find custom meal",
              "result": "Ready to log"
            }
          ],
          "branches": [
            "Explode once/always; retire preserves history, delete removes it."
          ],
          "persistence": "Custom library and historical policy documented.",
          "friction": "Meal versus recipe distinction.",
          "evidence": "documented",
          "sources": [
            "cr-12"
          ],
          "visual_ids": []
        },
        {
          "id": "cr-f10",
          "name": "Build portionable recipe",
          "job": "Reuse a cooked dish",
          "preconditions": [
            "Ingredient information"
          ],
          "steps": [
            {
              "screen": "cr-s14",
              "action": "Name/add ingredients",
              "result": "Full recipe"
            },
            {
              "screen": "cr-s15",
              "action": "Choose serving basis",
              "result": "Portion model"
            },
            {
              "screen": "cr-s14",
              "action": "Set cooked weight if needed; review/save",
              "result": "Searchable recipe"
            }
          ],
          "branches": [
            "Serving/weight basis cannot switch after save."
          ],
          "persistence": "Library recipe; retirement preserves history.",
          "friction": "Weighing and unit consistency.",
          "evidence": "documented",
          "sources": [
            "cr-13",
            "cr-15"
          ],
          "visual_ids": [
            "cr-v08"
          ]
        },
        {
          "id": "cr-f11",
          "name": "Import and resolve recipe",
          "job": "Reduce ingredient transcription",
          "preconditions": [
            "Gold; URL or ingredient list"
          ],
          "steps": [
            {
              "screen": "cr-s16",
              "action": "Import URL/list",
              "result": "Matched ingredients"
            },
            {
              "screen": "cr-s16",
              "action": "Resolve flags; compare originals",
              "result": "Valid ingredient list"
            },
            {
              "screen": "cr-s15",
              "action": "Confirm servings; review/save",
              "result": "Recipe saved"
            }
          ],
          "branches": [
            "Manual list fallback when URL fails."
          ],
          "persistence": "Saved recipe documented.",
          "friction": "Unmatched items block save.",
          "evidence": "documented",
          "sources": [
            "cr-14"
          ],
          "visual_ids": []
        },
        {
          "id": "cr-f12",
          "name": "Review a meaningful week",
          "job": "Interpret nutrient averages",
          "preconditions": [
            "Logged days"
          ],
          "steps": [
            {
              "screen": "cr-s02",
              "action": "Mark completed days in diary",
              "result": "Completeness metadata"
            },
            {
              "screen": "cr-s24",
              "action": "Open Report",
              "result": "Period averages"
            },
            {
              "screen": "cr-s25",
              "action": "Filter days/today/supplements",
              "result": "Adjusted comparison"
            }
          ],
          "branches": [
            "Basic recent week; Gold custom periods."
          ],
          "persistence": "Report configuration, not tested longitudinally.",
          "friction": "Exclusion rules change denominator.",
          "evidence": "documented",
          "sources": [
            "cr-21",
            "cr-10"
          ],
          "visual_ids": [
            "cr-v10"
          ]
        },
        {
          "id": "cr-f13",
          "name": "Adjust target without erasing history",
          "job": "Change future or one-day prescription",
          "preconditions": [
            "Gold for scheduling"
          ],
          "steps": [
            {
              "screen": "cr-s17",
              "action": "Choose macro/energy mode",
              "result": "Baseline settings"
            },
            {
              "screen": "cr-s21",
              "action": "Copy template; schedule",
              "result": "Future-day targets"
            },
            {
              "screen": "cr-s21",
              "action": "Edit Today when needed",
              "result": "Single-day override"
            }
          ],
          "branches": [
            "Editing original can change past days; deleting template reverts all uses."
          ],
          "persistence": "Scope is explicitly documented.",
          "friction": "Energy target and fixed macro totals may diverge.",
          "evidence": "documented",
          "sources": [
            "cr-40",
            "cr-44"
          ],
          "visual_ids": [
            "cr-v09"
          ]
        },
        {
          "id": "cr-f14",
          "name": "Connect health data and recover gaps",
          "job": "Bring activity into energy accounting",
          "preconditions": [
            "Mobile app and provider permissions"
          ],
          "steps": [
            {
              "screen": "cr-s27",
              "action": "Choose Apple Health/Health Connect",
              "result": "OS permission flow"
            },
            {
              "screen": "cr-s27",
              "action": "Choose streams; allow",
              "result": "Connected"
            },
            {
              "screen": "cr-s19",
              "action": "Review baseline; Apple backfill if needed",
              "result": "Expenditure updated"
            }
          ],
          "branches": [
            "Android Stop Sync separate from deleting Health Connect data."
          ],
          "persistence": "Import/export documented, not live tested.",
          "friction": "Conflicting baseline advice across docs.",
          "evidence": "documented",
          "sources": [
            "cr-25",
            "cr-26",
            "cr-18",
            "cr-24"
          ],
          "visual_ids": []
        },
        {
          "id": "cr-f15",
          "name": "Export before removing data",
          "job": "Retrieve or delete records",
          "preconditions": [
            "Authenticated account; web for export"
          ],
          "steps": [
            {
              "screen": "cr-s33",
              "action": "Choose period/type; export",
              "result": "CSV requested"
            },
            {
              "screen": "cr-s32",
              "action": "Select range/types for bulk delete",
              "result": "Deletion selection"
            },
            {
              "screen": "cr-s32",
              "action": "Confirm intended deletion",
              "result": "Irreversible removal"
            }
          ],
          "branches": [
            "Full account deletion separate; exact confirmation dialogue untested."
          ],
          "persistence": "Documented irreversible deletion; actual file not generated.",
          "friction": "Web handoff and irreversible scope.",
          "evidence": "documented",
          "sources": [
            "cr-28",
            "cr-27"
          ],
          "visual_ids": [
            "cr-v11"
          ]
        },
        {
          "id": "cr-f16",
          "name": "Cancel Gold renewal",
          "job": "Stop future billing",
          "preconditions": [
            "Know purchase channel"
          ],
          "steps": [
            {
              "screen": "cr-s32",
              "action": "Identify subscription source",
              "result": "Web/Apple/Google branch"
            },
            {
              "screen": "cr-s32",
              "action": "Use web Do Not Auto-Renew or store cancellation",
              "result": "Renewal cancelled per docs"
            }
          ],
          "branches": [
            "Store screens are external and not inspected; deletion is not assumed cancellation."
          ],
          "persistence": "End-of-term nonrenewal documented for web.",
          "friction": "Channel-dependent navigation.",
          "evidence": "documented",
          "sources": [
            "cr-29",
            "cr-28"
          ],
          "visual_ids": []
        },
        {
          "id": "cr-f17",
          "name": "Repeat habitual foods",
          "job": "Reduce daily entry labor",
          "preconditions": [
            "Gold"
          ],
          "steps": [
            {
              "screen": "cr-s36",
              "action": "Foods > Repeat Items; configure days/portion",
              "result": "Recurrence"
            },
            {
              "screen": "cr-s02",
              "action": "Tap Log Items prompt",
              "result": "Items logged"
            },
            {
              "screen": "cr-s36",
              "action": "Disable recurrence when needed",
              "result": "Paused"
            }
          ],
          "branches": [
            "Disable reversible; Delete removes recurrence."
          ],
          "persistence": "Schedule plus user-confirmed daily logging.",
          "friction": "Not silent auto-logging.",
          "evidence": "documented",
          "sources": [
            "cr-39"
          ],
          "visual_ids": []
        },
        {
          "id": "cr-f18",
          "name": "Use Pro without confusing client and self",
          "job": "Manage a client context",
          "preconditions": [
            "Pro account and accepted client"
          ],
          "steps": [
            {
              "screen": "cr-s34",
              "action": "Switch Gold to Pro",
              "result": "Professional workspace"
            },
            {
              "screen": "cr-s34",
              "action": "Choose client in Clients",
              "result": "Client context"
            },
            {
              "screen": "cr-s02",
              "action": "View client diary",
              "result": "Client records displayed"
            }
          ],
          "branches": [
            "Personal diary requires switching back; context label persists."
          ],
          "persistence": "Selected client context documented.",
          "friction": "Older web guide contradicts mobile availability.",
          "evidence": "documented",
          "sources": [
            "cr-36",
            "cr-37"
          ],
          "visual_ids": [
            "cr-v12"
          ]
        },
        {
          "id": "cr-f19",
          "name": "Set up informational coaching",
          "job": "Interpret logged nutrition",
          "preconditions": [
            "Gold"
          ],
          "steps": [
            {
              "screen": "cr-s35",
              "action": "Get Started; goals/restrictions/notes",
              "result": "Personalization"
            },
            {
              "screen": "cr-s35",
              "action": "Accept disclaimer",
              "result": "Coach enabled"
            },
            {
              "screen": "cr-s22",
              "action": "Adjust settings or hide via Display",
              "result": "Configuration changed"
            }
          ],
          "branches": [
            "Hiding card is documented opt-out; underlying processing deletion not established."
          ],
          "persistence": "Settings documented; advice quality untested.",
          "friction": "Guidance must not be confused with clinical care.",
          "evidence": "documented",
          "sources": [
            "cr-38"
          ],
          "visual_ids": []
        }
      ],
      "visuals": [
        {
          "id": "cr-v01",
          "file": "assets/cr-v01.png",
          "source_url": "https://support.cronometer.com/hc/article_attachments/50619449045268",
          "source_page": "https://support.cronometer.com/api/v2/help_center/en-us/articles/360021677792.json",
          "title": "Activity-level onboarding",
          "platform": "iOS",
          "version_or_date": "App version/capture date unknown; article updated 2026-10-07T00:04:41Z",
          "kind": "help-screenshot",
          "observations": [
            "Step indicator and activity slider contextualize setup.",
            "Next is dominant; Skip remains visible."
          ],
          "limitations": "Official demonstration asset, not our session. Existing red annotations are publisher-added. Article update does not date the UI.",
          "sources": [
            "cr-02"
          ]
        },
        {
          "id": "cr-v02",
          "file": "assets/cr-v02.png",
          "source_url": "https://support.cronometer.com/hc/article_attachments/50654990209556",
          "source_page": "https://support.cronometer.com/api/v2/help_center/en-us/articles/360018955211.json",
          "title": "Food serving detail",
          "platform": "iOS",
          "version_or_date": "App version/capture date unknown; article updated 2026-10-07T07:23:59Z",
          "kind": "help-screenshot",
          "observations": [
            "Serving fields sit above source and nutrient detail.",
            "Star and fixed bottom commit button are visible."
          ],
          "limitations": "Official demonstration asset, not our session. Existing red annotations are publisher-added. Article update does not date the UI.",
          "sources": [
            "cr-04"
          ]
        },
        {
          "id": "cr-v03",
          "file": "assets/cr-v03.png",
          "source_url": "https://support.cronometer.com/hc/article_attachments/39106542171028",
          "source_page": "https://support.cronometer.com/api/v2/help_center/en-us/articles/39013533811092.json",
          "title": "Photo capture",
          "platform": "iOS",
          "version_or_date": "App version/capture date unknown; article updated 2026-09-28T00:39:05Z",
          "kind": "help-screenshot",
          "observations": [
            "Camera offers shutter and library choices.",
            "Beta badge and source-added red arrows are visible."
          ],
          "limitations": "Official demonstration asset, not our session. Existing red annotations are publisher-added. Article update does not date the UI.",
          "sources": [
            "cr-06"
          ]
        },
        {
          "id": "cr-v04",
          "file": "assets/cr-v04.png",
          "source_url": "https://support.cronometer.com/hc/article_attachments/48694123590036",
          "source_page": "https://support.cronometer.com/api/v2/help_center/en-us/articles/39013533811092.json",
          "title": "Photo review and extra ingredients",
          "platform": "iOS",
          "version_or_date": "App version/capture date unknown; article updated 2026-09-28T00:39:05Z",
          "kind": "help-screenshot",
          "observations": [
            "Matches and optional suggested ingredients are separate.",
            "Create and Add to Diary offer distinct endpoints."
          ],
          "limitations": "Official demonstration asset, not our session. Existing red annotations are publisher-added. Article update does not date the UI.",
          "sources": [
            "cr-06"
          ]
        },
        {
          "id": "cr-v05",
          "file": "assets/cr-v05.png",
          "source_url": "https://support.cronometer.com/hc/article_attachments/39106496525716",
          "source_page": "https://support.cronometer.com/api/v2/help_center/en-us/articles/39013533811092.json",
          "title": "Photo portion correction affordance",
          "platform": "iOS",
          "version_or_date": "App version/capture date unknown; article updated 2026-09-28T00:39:05Z",
          "kind": "help-screenshot",
          "observations": [
            "Underlined serving values and swap icons repeat per row.",
            "Source red oval emphasizes an editable serving."
          ],
          "limitations": "Official demonstration asset, not our session. Existing red annotations are publisher-added. Article update does not date the UI.",
          "sources": [
            "cr-06"
          ]
        },
        {
          "id": "cr-v06",
          "file": "assets/cr-v06.png",
          "source_url": "https://support.cronometer.com/hc/article_attachments/47550150961044",
          "source_page": "https://support.cronometer.com/api/v2/help_center/en-us/articles/47549391461780.json",
          "title": "Typed Voice Log input",
          "platform": "iOS",
          "version_or_date": "App version/capture date unknown; article updated 2026-10-01T01:43:37Z",
          "kind": "help-screenshot",
          "observations": [
            "Typed description and keyboard precede Match Foods.",
            "Beta badge appears in this source asset."
          ],
          "limitations": "Official demonstration asset, not our session. Existing red annotations are publisher-added. Article update does not date the UI.",
          "sources": [
            "cr-07"
          ]
        },
        {
          "id": "cr-v07",
          "file": "assets/cr-v07.png",
          "source_url": "https://support.cronometer.com/hc/article_attachments/50654931995796",
          "source_page": "https://support.cronometer.com/api/v2/help_center/en-us/articles/360019003171.json",
          "title": "Recipe correction menu in diary",
          "platform": "iOS",
          "version_or_date": "App version/capture date unknown; article updated 2026-06-25T20:35:54Z",
          "kind": "help-screenshot",
          "observations": [
            "Original, copy, adjust and explode coexist in one menu.",
            "Consumed/expenditure/remaining rings stay visible behind it."
          ],
          "limitations": "Official demonstration asset, not our session. Existing red annotations are publisher-added. Article update does not date the UI.",
          "sources": [
            "cr-10"
          ]
        },
        {
          "id": "cr-v08",
          "file": "assets/cr-v08.png",
          "source_url": "https://support.cronometer.com/hc/article_attachments/27058776299156",
          "source_page": "https://support.cronometer.com/api/v2/help_center/en-us/articles/360019870111.json",
          "title": "Recipe ingredient editor",
          "platform": "iOS",
          "version_or_date": "App version/capture date unknown; article updated 2026-10-04T07:43:44Z",
          "kind": "help-screenshot",
          "observations": [
            "Ingredients expose portions and database provenance.",
            "Cooked-weight action sits above fixed Next."
          ],
          "limitations": "Official demonstration asset, not our session. Existing red annotations are publisher-added. Article update does not date the UI.",
          "sources": [
            "cr-13"
          ]
        },
        {
          "id": "cr-v09",
          "file": "assets/cr-v09.png",
          "source_url": "https://support.cronometer.com/hc/article_attachments/50698030152980",
          "source_page": "https://support.cronometer.com/api/v2/help_center/en-us/articles/33113157685652.json",
          "title": "Energy and macro target settings",
          "platform": "iOS",
          "version_or_date": "App version/capture date unknown; article updated 2026-10-06T08:27:20Z",
          "kind": "help-screenshot",
          "observations": [
            "Expanded calculation sits above Ratios/Fixed/Keto selector.",
            "Percent inputs display corresponding grams and calories."
          ],
          "limitations": "Official demonstration asset, not our session. Existing red annotations are publisher-added. Article update does not date the UI.",
          "sources": [
            "cr-16"
          ]
        },
        {
          "id": "cr-v10",
          "file": "assets/cr-v10.png",
          "source_url": "https://support.cronometer.com/hc/article_attachments/50655866550164",
          "source_page": "https://support.cronometer.com/api/v2/help_center/en-us/articles/360019864891.json",
          "title": "Period nutrition report",
          "platform": "Android",
          "version_or_date": "App version/capture date unknown; article updated 2026-09-16T19:14:15Z",
          "kind": "help-screenshot",
          "observations": [
            "Discover has Dashboard, Charts, Report and Snapshots tabs.",
            "Period averages use the same ring vocabulary as diary."
          ],
          "limitations": "Official demonstration asset, not our session. Existing red annotations are publisher-added. Article update does not date the UI.",
          "sources": [
            "cr-21"
          ]
        },
        {
          "id": "cr-v11",
          "file": "assets/cr-v11.png",
          "source_url": "https://support.cronometer.com/hc/article_attachments/50598217501460",
          "source_page": "https://support.cronometer.com/api/v2/help_center/en-us/articles/360018760151.json",
          "title": "Web export dialog",
          "platform": "Web",
          "version_or_date": "App version/capture date unknown; article updated 2026-09-25T20:38:30Z",
          "kind": "help-screenshot",
          "observations": [
            "Separate export buttons distinguish records from daily summaries.",
            "Optional meal-group rows are unchecked in the example."
          ],
          "limitations": "Official demonstration asset, not our session. Existing red annotations are publisher-added. Article update does not date the UI.",
          "sources": [
            "cr-28"
          ]
        },
        {
          "id": "cr-v12",
          "file": "assets/cr-v12.png",
          "source_url": "https://support.cronometer.com/hc/article_attachments/50697239673364",
          "source_page": "https://support.cronometer.com/api/v2/help_center/en-us/articles/36866328492564.json",
          "title": "Pro profile switcher",
          "platform": "Android",
          "version_or_date": "App version/capture date unknown; article updated 2026-09-02T17:26:08Z",
          "kind": "help-screenshot",
          "observations": [
            "Bottom sheet separates personal Gold from Pro.",
            "Pro selected; empty-client prompt behind sheet."
          ],
          "limitations": "Official demonstration asset, not our session. Existing red annotations are publisher-added. Article update does not date the UI.",
          "sources": [
            "cr-36"
          ]
        }
      ],
      "design_patterns": [
        {
          "name": "Review before commit",
          "observation": "AI results expose repair before diary insertion.",
          "implication": "Measure correction effort, not recognition alone.",
          "tradeoff": "Siri instead inserts before review.",
          "sources": [
            "cr-06",
            "cr-07",
            "cr-08"
          ],
          "visual_ids": [
            "cr-v04",
            "cr-v05",
            "cr-v06"
          ]
        },
        {
          "name": "Provenance beside portion",
          "observation": "Food detail puts source near quantity.",
          "implication": "Data confidence can inform selection.",
          "tradeoff": "Users must distinguish coverage from accuracy.",
          "sources": [
            "cr-04",
            "cr-20"
          ],
          "visual_ids": [
            "cr-v02"
          ]
        },
        {
          "name": "Same visual grammar across horizons",
          "observation": "Rings appear in diary and period reports.",
          "implication": "Daily and longitudinal views are recognizable.",
          "tradeoff": "Averages and daily values may look alike.",
          "sources": [
            "cr-09",
            "cr-21"
          ],
          "visual_ids": [
            "cr-v07",
            "cr-v10"
          ]
        },
        {
          "name": "Explicit editing scopes",
          "observation": "Recipe menu distinguishes original/copy/adjust/explode.",
          "implication": "Power users can choose scope.",
          "tradeoff": "Choice increases accidental-history-change risk.",
          "sources": [
            "cr-10"
          ],
          "visual_ids": [
            "cr-v07"
          ]
        },
        {
          "name": "Recipe physical model",
          "observation": "Ingredients and cooked weight coexist.",
          "implication": "Portioning respects final dish mass.",
          "tradeoff": "Requires measurements; serving basis locks.",
          "sources": [
            "cr-13",
            "cr-15"
          ],
          "visual_ids": [
            "cr-v08"
          ]
        },
        {
          "name": "Transparent target arithmetic",
          "observation": "Expanded target breakdown precedes macro controls.",
          "implication": "Explain why calorie allowance changes.",
          "tradeoff": "Several independently configurable quantities.",
          "sources": [
            "cr-16",
            "cr-44"
          ],
          "visual_ids": [
            "cr-v09"
          ]
        },
        {
          "name": "Export separated by data semantics",
          "observation": "Dialog separates summaries from entries.",
          "implication": "Analysts can choose appropriate granularity.",
          "tradeoff": "Web handoff interrupts mobile-only workflow.",
          "sources": [
            "cr-28",
            "cr-21"
          ],
          "visual_ids": [
            "cr-v11"
          ]
        },
        {
          "name": "Professional context isolation",
          "observation": "Gold and Pro are explicit profile choices.",
          "implication": "Reduces self/client ambiguity.",
          "tradeoff": "Persistent client labels still need usability validation.",
          "sources": [
            "cr-36"
          ],
          "visual_ids": [
            "cr-v12"
          ]
        },
        {
          "name": "Optional rather than presumed ingredients",
          "observation": "See cr-s08 and cr-v04 for the canonical observation.",
          "implication": "Encourages checking unseen ingredients.",
          "tradeoff": "Suggestion exposure can introduce false additions.",
          "sources": [
            "cr-06"
          ],
          "visual_ids": [
            "cr-v04"
          ]
        }
      ],
      "questions": [
        {
          "question": "Does a corrected AI portion survive rematching, closing, restart and web sync?",
          "why_it_matters": "Core trust and durability.",
          "how_to_verify": "Gold test account; original photo, controlled changes, restart/read back.",
          "priority": "high"
        },
        {
          "question": "How do original/edit-copy/adjust/explode affect historical recipe entries?",
          "why_it_matters": "Avoid retroactive corruption.",
          "how_to_verify": "Synthetic recipe logged on two dates; exercise each branch independently.",
          "priority": "high"
        },
        {
          "question": "Which baseline advice applies to each current integration?",
          "why_it_matters": "Prevent double-counting activity.",
          "how_to_verify": "Compare guide versions; one tracker, known workout, inspect components.",
          "priority": "high"
        },
        {
          "question": "What works offline, and how are sync conflicts resolved?",
          "why_it_matters": "Unknown from sources.",
          "how_to_verify": "Airplane-mode search/log/edit; reconnect; compare web.",
          "priority": "high"
        },
        {
          "question": "Do all Gold AI and Coach features ship on both mobile platforms in this region?",
          "why_it_matters": "Help mobile labels do not guarantee rollout parity.",
          "how_to_verify": "Record app version, OS, country and account tier.",
          "priority": "high"
        },
        {
          "question": "Does turning off Crono Coach stop processing or only hide its card?",
          "why_it_matters": "Privacy semantics.",
          "how_to_verify": "Inspect consent and privacy documentation; ask vendor.",
          "priority": "high"
        },
        {
          "question": "Are barcode, saved meals and progress snapshots identically gated in Basic?",
          "why_it_matters": "Some feature pages omit explicit tier labels.",
          "how_to_verify": "Clean Basic account on iOS, Android and web.",
          "priority": "medium"
        },
        {
          "question": "What happens to edited targets and records when Gold expires?",
          "why_it_matters": "Downgrade continuity.",
          "how_to_verify": "Use already expiring test subscription; export before/after, no purchase.",
          "priority": "medium"
        },
        {
          "question": "Can deletion be completed without canceling store renewal?",
          "why_it_matters": "Prevent unexpected billing.",
          "how_to_verify": "Observe warnings without deleting paid real account; verify store state.",
          "priority": "high"
        },
        {
          "question": "Are Siri errors visibly reversible and attributed after several external logs?",
          "why_it_matters": "Post-commit review risk.",
          "how_to_verify": "Controlled Siri phrases; inspect provenance and corrections.",
          "priority": "medium"
        },
        {
          "question": "Is the Android widget list missing water/streak widgets or only underdocumented?",
          "why_it_matters": "Avoid unsupported platform absence claim.",
          "how_to_verify": "Inspect Android widget picker on current release.",
          "priority": "low"
        },
        {
          "question": "What export columns, timezones and row identities are stable?",
          "why_it_matters": "Migration and auditability.",
          "how_to_verify": "Download sample CSV, reconcile entries and nutrition summaries.",
          "priority": "medium"
        }
      ]
    },
    {
      "slug": "loseit",
      "name": "Lose It!",
      "researched_at": "2026-10-07T11:20:48.220654+00:00",
      "scope": "Desk research of current public official help/API and US iOS store assets; no signup, purchases, native app use or browser session. App identity is Lose It!, not Luze.",
      "positioning": "Calorie-budget-led weight management with optional paid input automation, nutrient goals, flexible schedules and broader health tracking.",
      "mental_model": "Set a weight plan → receive calorie budget → log foods into dated meal slots → compare intake/activity against budget → review goals and reuse prior foods. Premium extends targets and capture methods; it is not proven adaptive expenditure coaching.",
      "platforms": [
        "iOS",
        "Android",
        "Web"
      ],
      "limitations": [
        "All flows are documentation-derived unless explicitly visual; no end-to-end native tests.",
        "Nine useful official iOS marketing composites inspected; no Android or web screenshots.",
        "No coherent post-recognition correction sequence available visually.",
        "Unknown offline behavior, quick-add, body-progress photos and voice result correction.",
        "Store screenshot version is unknown despite current listing metadata.",
        "Official help differs on account-deletion effect on direct-web subscription; cancel explicitly through billing provider.",
        "Some docs retain legacy bottom-plus navigation while current store log differs."
      ],
      "sources": [
        {
          "id": "li-01",
          "title": "Lose It! Membership Tiers & Pricing",
          "url": "https://loseit.zendesk.com/api/v2/help_center/en-us/articles/51906523474708.json",
          "canonical_url": "https://loseit.zendesk.com/hc/en-us/articles/51906523474708-Lose-It-Membership-Tiers-Pricing",
          "retrieved_at": "2026-10-07T11:05:13.892235+00:00",
          "evidence_type": "official-help",
          "published_or_updated": "2026-09-09T17:51:40Z"
        },
        {
          "id": "li-02",
          "title": "How to Log Food in Lose It!",
          "url": "https://loseit.zendesk.com/api/v2/help_center/en-us/articles/49210381551380.json",
          "canonical_url": "https://loseit.zendesk.com/hc/en-us/articles/49210381551380-How-to-Log-Food-in-Lose-It",
          "retrieved_at": "2026-10-07T11:05:14.067716+00:00",
          "evidence_type": "official-help",
          "published_or_updated": "2026-08-25T16:30:55Z"
        },
        {
          "id": "li-03",
          "title": "How to Use the Nutrition Label Scanner",
          "url": "https://loseit.zendesk.com/api/v2/help_center/en-us/articles/52164255037588.json",
          "canonical_url": "https://loseit.zendesk.com/hc/en-us/articles/52164255037588-How-to-Use-the-Nutrition-Label-Scanner",
          "retrieved_at": "2026-10-07T11:05:14.227190+00:00",
          "evidence_type": "official-help",
          "published_or_updated": "2026-08-05T16:16:18Z"
        },
        {
          "id": "li-04",
          "title": "How to Use the Barcode Scanner",
          "url": "https://loseit.zendesk.com/api/v2/help_center/en-us/articles/49209634235924.json",
          "canonical_url": "https://loseit.zendesk.com/hc/en-us/articles/49209634235924-How-to-Use-the-Barcode-Scanner",
          "retrieved_at": "2026-10-07T11:05:14.488551+00:00",
          "evidence_type": "official-help",
          "published_or_updated": "2026-05-13T15:41:40Z"
        },
        {
          "id": "li-05",
          "title": "How to Use Snap It",
          "url": "https://loseit.zendesk.com/api/v2/help_center/en-us/articles/47771695186580.json",
          "canonical_url": "https://loseit.zendesk.com/hc/en-us/articles/47771695186580-How-to-Use-Snap-It",
          "retrieved_at": "2026-10-07T11:05:14.772633+00:00",
          "evidence_type": "official-help",
          "published_or_updated": "2026-08-04T15:01:25Z"
        },
        {
          "id": "li-06",
          "title": "Custom Foods",
          "url": "https://loseit.zendesk.com/api/v2/help_center/en-us/articles/49209748140052.json",
          "canonical_url": "https://loseit.zendesk.com/hc/en-us/articles/49209748140052-Custom-Foods",
          "retrieved_at": "2026-10-07T11:05:14.991284+00:00",
          "evidence_type": "official-help",
          "published_or_updated": "2026-08-04T15:01:56Z"
        },
        {
          "id": "li-07",
          "title": "Incorrect Food Data",
          "url": "https://loseit.zendesk.com/api/v2/help_center/en-us/articles/49210480663316.json",
          "canonical_url": "https://loseit.zendesk.com/hc/en-us/articles/49210480663316-Incorrect-Food-Data",
          "retrieved_at": "2026-10-07T11:05:15.138015+00:00",
          "evidence_type": "official-help",
          "published_or_updated": "2026-09-04T17:43:08Z"
        },
        {
          "id": "li-08",
          "title": "Intermittent Fasting",
          "url": "https://loseit.zendesk.com/api/v2/help_center/en-us/articles/49210295161620.json",
          "canonical_url": "https://loseit.zendesk.com/hc/en-us/articles/49210295161620-Intermittent-Fasting",
          "retrieved_at": "2026-10-07T11:05:15.279149+00:00",
          "evidence_type": "official-help",
          "published_or_updated": "2026-06-17T15:04:02Z"
        },
        {
          "id": "li-09",
          "title": "My Foods",
          "url": "https://loseit.zendesk.com/api/v2/help_center/en-us/articles/49210308470164.json",
          "canonical_url": "https://loseit.zendesk.com/hc/en-us/articles/49210308470164-My-Foods",
          "retrieved_at": "2026-10-07T11:05:15.449647+00:00",
          "evidence_type": "official-help",
          "published_or_updated": "2026-08-04T15:12:49Z"
        },
        {
          "id": "li-10",
          "title": "Using Recipes in Lose It!",
          "url": "https://loseit.zendesk.com/api/v2/help_center/en-us/articles/47345201948052.json",
          "canonical_url": "https://loseit.zendesk.com/hc/en-us/articles/47345201948052-Using-Recipes-in-Lose-It",
          "retrieved_at": "2026-10-07T11:05:15.600374+00:00",
          "evidence_type": "official-help",
          "published_or_updated": "2026-08-04T15:12:30Z"
        },
        {
          "id": "li-11",
          "title": "How to Plan Food in Lose It!",
          "url": "https://loseit.zendesk.com/api/v2/help_center/en-us/articles/47273187626260.json",
          "canonical_url": "https://loseit.zendesk.com/hc/en-us/articles/47273187626260-How-to-Plan-Food-in-Lose-It",
          "retrieved_at": "2026-10-07T11:05:15.795812+00:00",
          "evidence_type": "official-help",
          "published_or_updated": "2026-07-14T17:40:13Z"
        },
        {
          "id": "li-12",
          "title": "How to Edit Your Weight Loss Plan",
          "url": "https://loseit.zendesk.com/api/v2/help_center/en-us/articles/47649738246548.json",
          "canonical_url": "https://loseit.zendesk.com/hc/en-us/articles/47649738246548-How-to-Edit-Your-Weight-Loss-Plan",
          "retrieved_at": "2026-10-07T11:05:15.947508+00:00",
          "evidence_type": "official-help",
          "published_or_updated": "2026-08-04T15:09:14Z"
        },
        {
          "id": "li-13",
          "title": "How to Create Nutrient Goals",
          "url": "https://loseit.zendesk.com/api/v2/help_center/en-us/articles/47649705562004.json",
          "canonical_url": "https://loseit.zendesk.com/hc/en-us/articles/47649705562004-How-to-Create-Nutrient-Goals",
          "retrieved_at": "2026-10-07T11:05:16.107590+00:00",
          "evidence_type": "official-help",
          "published_or_updated": "2026-08-04T15:09:28Z"
        },
        {
          "id": "li-14",
          "title": "How to Edit Your Calorie Budget",
          "url": "https://loseit.zendesk.com/api/v2/help_center/en-us/articles/47648748161172.json",
          "canonical_url": "https://loseit.zendesk.com/hc/en-us/articles/47648748161172-How-to-Edit-Your-Calorie-Budget",
          "retrieved_at": "2026-10-07T11:05:16.250321+00:00",
          "evidence_type": "official-help",
          "published_or_updated": "2026-08-04T15:04:26Z"
        },
        {
          "id": "li-15",
          "title": "How the Calorie Budget is Calculated",
          "url": "https://loseit.zendesk.com/api/v2/help_center/en-us/articles/47497714327060.json",
          "canonical_url": "https://loseit.zendesk.com/hc/en-us/articles/47497714327060-How-the-Calorie-Budget-is-Calculated",
          "retrieved_at": "2026-10-07T11:05:16.395167+00:00",
          "evidence_type": "official-help",
          "published_or_updated": "2026-08-04T15:01:40Z"
        },
        {
          "id": "li-16",
          "title": "Reasons Your Budget Might Change",
          "url": "https://loseit.zendesk.com/api/v2/help_center/en-us/articles/47773659281940.json",
          "canonical_url": "https://loseit.zendesk.com/hc/en-us/articles/47773659281940-Reasons-Your-Budget-Might-Change",
          "retrieved_at": "2026-10-07T11:05:16.529405+00:00",
          "evidence_type": "official-help",
          "published_or_updated": "2026-08-04T14:55:50Z"
        },
        {
          "id": "li-17",
          "title": "How to Set Up Calorie Cycling",
          "url": "https://loseit.zendesk.com/api/v2/help_center/en-us/articles/51659585741972.json",
          "canonical_url": "https://loseit.zendesk.com/hc/en-us/articles/51659585741972-How-to-Set-Up-Calorie-Cycling",
          "retrieved_at": "2026-10-07T11:05:16.679517+00:00",
          "evidence_type": "official-help",
          "published_or_updated": "2026-07-22T13:33:10Z"
        },
        {
          "id": "li-18",
          "title": "How to Change Your Nutrition Strategy",
          "url": "https://loseit.zendesk.com/api/v2/help_center/en-us/articles/51699401666964.json",
          "canonical_url": "https://loseit.zendesk.com/hc/en-us/articles/51699401666964-How-to-Change-Your-Nutrition-Strategy",
          "retrieved_at": "2026-10-07T11:05:16.822587+00:00",
          "evidence_type": "official-help",
          "published_or_updated": "2026-07-23T14:24:46Z"
        },
        {
          "id": "li-19",
          "title": "Nutrition Strategies",
          "url": "https://loseit.zendesk.com/api/v2/help_center/en-us/articles/47773469433364.json",
          "canonical_url": "https://loseit.zendesk.com/hc/en-us/articles/47773469433364-Nutrition-Strategies",
          "retrieved_at": "2026-10-07T11:05:16.962447+00:00",
          "evidence_type": "official-help",
          "published_or_updated": "2026-08-04T15:08:35Z"
        },
        {
          "id": "li-20",
          "title": "Using the Log Header in Lose It!",
          "url": "https://loseit.zendesk.com/api/v2/help_center/en-us/articles/47649133343380.json",
          "canonical_url": "https://loseit.zendesk.com/hc/en-us/articles/47649133343380-Using-the-Log-Header-in-Lose-It",
          "retrieved_at": "2026-10-07T11:05:17.087492+00:00",
          "evidence_type": "official-help",
          "published_or_updated": "2026-08-04T15:03:33Z"
        },
        {
          "id": "li-21",
          "title": "About Highlights",
          "url": "https://loseit.zendesk.com/api/v2/help_center/en-us/articles/47773480314772.json",
          "canonical_url": "https://loseit.zendesk.com/hc/en-us/articles/47773480314772-About-Highlights",
          "retrieved_at": "2026-10-07T11:05:17.207563+00:00",
          "evidence_type": "official-help",
          "published_or_updated": "2026-08-04T14:53:22Z"
        },
        {
          "id": "li-22",
          "title": "Water Tracking in Lose It!",
          "url": "https://loseit.zendesk.com/api/v2/help_center/en-us/articles/47772444078996.json",
          "canonical_url": "https://loseit.zendesk.com/hc/en-us/articles/47772444078996-Water-Tracking-in-Lose-It",
          "retrieved_at": "2026-10-07T11:05:17.346010+00:00",
          "evidence_type": "official-help",
          "published_or_updated": "2026-08-04T15:04:08Z"
        },
        {
          "id": "li-23",
          "title": "Using Apple Health With Lose It!",
          "url": "https://loseit.zendesk.com/api/v2/help_center/en-us/articles/47773580085140.json",
          "canonical_url": "https://loseit.zendesk.com/hc/en-us/articles/47773580085140-Using-Apple-Health-With-Lose-It",
          "retrieved_at": "2026-10-07T11:05:17.515414+00:00",
          "evidence_type": "official-help",
          "published_or_updated": "2026-04-01T16:07:20Z"
        },
        {
          "id": "li-24",
          "title": "Using Health Connect With Lose It!",
          "url": "https://loseit.zendesk.com/api/v2/help_center/en-us/articles/47650100219028.json",
          "canonical_url": "https://loseit.zendesk.com/hc/en-us/articles/47650100219028-Using-Health-Connect-With-Lose-It",
          "retrieved_at": "2026-10-07T11:05:17.754193+00:00",
          "evidence_type": "official-help",
          "published_or_updated": "2026-07-23T13:58:33Z"
        },
        {
          "id": "li-25",
          "title": "How to Connect Your Garmin",
          "url": "https://loseit.zendesk.com/api/v2/help_center/en-us/articles/47649863625364.json",
          "canonical_url": "https://loseit.zendesk.com/hc/en-us/articles/47649863625364-How-to-Connect-Your-Garmin",
          "retrieved_at": "2026-10-07T11:05:17.897432+00:00",
          "evidence_type": "official-help",
          "published_or_updated": "2026-04-01T16:08:23Z"
        },
        {
          "id": "li-26",
          "title": "The Calorie Bonus",
          "url": "https://loseit.zendesk.com/api/v2/help_center/en-us/articles/47492627092372.json",
          "canonical_url": "https://loseit.zendesk.com/hc/en-us/articles/47492627092372-The-Calorie-Bonus",
          "retrieved_at": "2026-10-07T11:05:18.073225+00:00",
          "evidence_type": "official-help",
          "published_or_updated": "2026-08-06T22:37:43Z"
        },
        {
          "id": "li-27",
          "title": "How to Log Exercise Without Adding Calorie Burn to Your Budget",
          "url": "https://loseit.zendesk.com/api/v2/help_center/en-us/articles/47648836406420.json",
          "canonical_url": "https://loseit.zendesk.com/hc/en-us/articles/47648836406420-How-to-Log-Exercise-Without-Adding-Calorie-Burn-to-Your-Budget",
          "retrieved_at": "2026-10-07T11:05:18.214754+00:00",
          "evidence_type": "official-help",
          "published_or_updated": "2026-06-04T15:08:54Z"
        },
        {
          "id": "li-28",
          "title": "How to Download Your Data",
          "url": "https://loseit.zendesk.com/api/v2/help_center/en-us/articles/47497914864916.json",
          "canonical_url": "https://loseit.zendesk.com/hc/en-us/articles/47497914864916-How-to-Download-Your-Data",
          "retrieved_at": "2026-10-07T11:05:18.516008+00:00",
          "evidence_type": "official-help",
          "published_or_updated": "2026-08-04T17:32:39Z"
        },
        {
          "id": "li-29",
          "title": "How to Close or Delete Your Account",
          "url": "https://loseit.zendesk.com/api/v2/help_center/en-us/articles/47574713915412.json",
          "canonical_url": "https://loseit.zendesk.com/hc/en-us/articles/47574713915412-How-to-Close-or-Delete-Your-Account",
          "retrieved_at": "2026-10-07T11:05:18.679898+00:00",
          "evidence_type": "official-help",
          "published_or_updated": "2026-07-15T19:12:30Z"
        },
        {
          "id": "li-30",
          "title": "How to Cancel a Lose It! Premium Subscription or Trial",
          "url": "https://loseit.zendesk.com/api/v2/help_center/en-us/articles/47274554961812.json",
          "canonical_url": "https://loseit.zendesk.com/hc/en-us/articles/47274554961812-How-to-Cancel-a-Lose-It-Premium-Subscription-or-Trial",
          "retrieved_at": "2026-10-07T11:05:18.909211+00:00",
          "evidence_type": "official-help",
          "published_or_updated": "2026-09-28T14:42:44Z"
        },
        {
          "id": "li-31",
          "title": "What is Lose It! Premium?",
          "url": "https://loseit.zendesk.com/api/v2/help_center/en-us/articles/47345136549652.json",
          "canonical_url": "https://loseit.zendesk.com/hc/en-us/articles/47345136549652-What-is-Lose-It-Premium",
          "retrieved_at": "2026-10-07T11:05:19.085753+00:00",
          "evidence_type": "official-help",
          "published_or_updated": "2026-08-04T15:12:18Z"
        },
        {
          "id": "li-32",
          "title": "What is Lose It! Lifetime?",
          "url": "https://loseit.zendesk.com/api/v2/help_center/en-us/articles/47492421271956.json",
          "canonical_url": "https://loseit.zendesk.com/hc/en-us/articles/47492421271956-What-is-Lose-It-Lifetime",
          "retrieved_at": "2026-10-07T11:05:19.238348+00:00",
          "evidence_type": "official-help",
          "published_or_updated": "2026-08-04T14:53:07Z"
        },
        {
          "id": "li-33",
          "title": "Updating Your Personal Health Details",
          "url": "https://loseit.zendesk.com/api/v2/help_center/en-us/articles/49210059701012.json",
          "canonical_url": "https://loseit.zendesk.com/hc/en-us/articles/49210059701012-Updating-Your-Personal-Health-Details",
          "retrieved_at": "2026-10-07T11:05:19.455037+00:00",
          "evidence_type": "official-help",
          "published_or_updated": "2026-05-13T15:51:52Z"
        },
        {
          "id": "li-34",
          "title": "How to Connect Apple Health",
          "url": "https://loseit.zendesk.com/api/v2/help_center/en-us/articles/47772792722708.json",
          "canonical_url": "https://loseit.zendesk.com/hc/en-us/articles/47772792722708-How-to-Connect-Apple-Health",
          "retrieved_at": "2026-10-07T11:05:19.624910+00:00",
          "evidence_type": "official-help",
          "published_or_updated": "2026-04-01T16:08:20Z"
        },
        {
          "id": "li-35",
          "title": "How to Set Up Widgets",
          "url": "https://loseit.zendesk.com/api/v2/help_center/en-us/articles/51045533782548.json",
          "canonical_url": "https://loseit.zendesk.com/hc/en-us/articles/51045533782548-How-to-Set-Up-Widgets",
          "retrieved_at": "2026-10-07T11:05:19.778758+00:00",
          "evidence_type": "official-help",
          "published_or_updated": "2026-08-04T14:56:18Z"
        },
        {
          "id": "li-36",
          "title": "Widget Customization Options",
          "url": "https://loseit.zendesk.com/api/v2/help_center/en-us/articles/51045542782996.json",
          "canonical_url": "https://loseit.zendesk.com/hc/en-us/articles/51045542782996-Widget-Customization-Options",
          "retrieved_at": "2026-10-07T11:05:19.948780+00:00",
          "evidence_type": "official-help",
          "published_or_updated": "2026-07-10T12:00:35Z"
        },
        {
          "id": "li-37",
          "title": "How to Set Up Intermittent Fasting",
          "url": "https://loseit.zendesk.com/api/v2/help_center/en-us/articles/51856350428052.json",
          "canonical_url": "https://loseit.zendesk.com/hc/en-us/articles/51856350428052-How-to-Set-Up-Intermittent-Fasting",
          "retrieved_at": "2026-10-07T11:05:20.104918+00:00",
          "evidence_type": "official-help",
          "published_or_updated": "2026-07-28T14:46:53Z"
        },
        {
          "id": "li-38",
          "title": "Intermittent Fasting FAQs and Troubleshooting Guide",
          "url": "https://loseit.zendesk.com/api/v2/help_center/en-us/articles/51856472427284.json",
          "canonical_url": "https://loseit.zendesk.com/hc/en-us/articles/51856472427284-Intermittent-Fasting-FAQs-and-Troubleshooting-Guide",
          "retrieved_at": "2026-10-07T11:05:20.251335+00:00",
          "evidence_type": "official-help",
          "published_or_updated": "2026-08-06T03:17:21Z"
        },
        {
          "id": "li-39",
          "title": "How to Send Email Reports",
          "url": "https://loseit.zendesk.com/api/v2/help_center/en-us/articles/47773831414932.json",
          "canonical_url": "https://loseit.zendesk.com/hc/en-us/articles/47773831414932-How-to-Send-Email-Reports",
          "retrieved_at": "2026-10-07T11:05:20.396161+00:00",
          "evidence_type": "official-help",
          "published_or_updated": "2026-08-04T14:53:37Z"
        },
        {
          "id": "li-40",
          "title": "Are There Meal Plans or Recipes for My Nutrition Strategy?",
          "url": "https://loseit.zendesk.com/api/v2/help_center/en-us/articles/47773953397524.json",
          "canonical_url": "https://loseit.zendesk.com/hc/en-us/articles/47773953397524-Are-There-Meal-Plans-or-Recipes-for-My-Nutrition-Strategy",
          "retrieved_at": "2026-10-07T11:05:20.529765+00:00",
          "evidence_type": "official-help",
          "published_or_updated": "2026-04-01T16:07:18Z"
        },
        {
          "id": "li-41",
          "title": "How to Delete a Food Log",
          "url": "https://loseit.zendesk.com/api/v2/help_center/en-us/articles/53007221459348.json",
          "canonical_url": "https://loseit.zendesk.com/hc/en-us/articles/53007221459348-How-to-Delete-a-Food-Log",
          "retrieved_at": "2026-10-07T11:05:20.683697+00:00",
          "evidence_type": "official-help",
          "published_or_updated": "2026-08-28T16:47:30Z"
        },
        {
          "id": "li-42",
          "title": "Community Standards",
          "url": "https://loseit.zendesk.com/api/v2/help_center/en-us/articles/49209755238548.json",
          "canonical_url": "https://loseit.zendesk.com/hc/en-us/articles/49209755238548-Community-Standards",
          "retrieved_at": "2026-10-07T11:05:20.836037+00:00",
          "evidence_type": "official-help",
          "published_or_updated": "2026-08-04T15:12:40Z"
        },
        {
          "id": "li-43",
          "title": "How to Add and Accept Friends",
          "url": "https://loseit.zendesk.com/api/v2/help_center/en-us/articles/47771907495700.json",
          "canonical_url": "https://loseit.zendesk.com/hc/en-us/articles/47771907495700-How-to-Add-and-Accept-Friends",
          "retrieved_at": "2026-10-07T11:05:20.989507+00:00",
          "evidence_type": "official-help",
          "published_or_updated": "2026-08-04T14:55:19Z"
        },
        {
          "id": "li-44",
          "title": "Lose It! Courses",
          "url": "https://loseit.zendesk.com/api/v2/help_center/en-us/articles/50062272471060.json",
          "canonical_url": "https://loseit.zendesk.com/hc/en-us/articles/50062272471060-Lose-It-Courses",
          "retrieved_at": "2026-10-07T11:05:21.198993+00:00",
          "evidence_type": "official-help",
          "published_or_updated": "2026-06-08T12:56:40Z"
        },
        {
          "id": "li-45",
          "title": "Inaccurate Timestamps: Blood Pressure and Glucose",
          "url": "https://loseit.zendesk.com/api/v2/help_center/en-us/articles/52676657131668.json",
          "canonical_url": "https://loseit.zendesk.com/hc/en-us/articles/52676657131668-Inaccurate-Timestamps-Blood-Pressure-and-Glucose",
          "retrieved_at": "2026-10-07T11:05:21.334290+00:00",
          "evidence_type": "official-help",
          "published_or_updated": "2026-09-10T18:51:09Z"
        },
        {
          "id": "li-46",
          "title": "How to Skip Survey Questions After Returning to Lose It!",
          "url": "https://loseit.zendesk.com/api/v2/help_center/en-us/articles/53670144511252.json",
          "canonical_url": "https://loseit.zendesk.com/hc/en-us/articles/53670144511252-How-to-Skip-Survey-Questions-After-Returning-to-Lose-It",
          "retrieved_at": "2026-10-07T11:05:21.450879+00:00",
          "evidence_type": "official-help",
          "published_or_updated": "2026-09-17T17:48:58Z"
        },
        {
          "id": "li-47",
          "title": "Troubleshooting Recipe Importer Error Messages",
          "url": "https://loseit.zendesk.com/api/v2/help_center/en-us/articles/51197596722836.json",
          "canonical_url": "https://loseit.zendesk.com/hc/en-us/articles/51197596722836-Troubleshooting-Recipe-Importer-Error-Messages",
          "retrieved_at": "2026-10-07T11:05:21.591216+00:00",
          "evidence_type": "official-help",
          "published_or_updated": "2026-07-10T13:57:02Z"
        },
        {
          "id": "li-48",
          "title": "How to Edit a Nutrient Goal",
          "url": "https://loseit.zendesk.com/api/v2/help_center/en-us/articles/51322382978964.json",
          "canonical_url": "https://loseit.zendesk.com/hc/en-us/articles/51322382978964-How-to-Edit-a-Nutrient-Goal",
          "retrieved_at": "2026-10-07T11:05:21.733250+00:00",
          "evidence_type": "official-help",
          "published_or_updated": "2026-09-11T12:55:22Z"
        },
        {
          "id": "li-49",
          "title": "Understanding Food Timestamps",
          "url": "https://loseit.zendesk.com/api/v2/help_center/en-us/articles/51699529280532.json",
          "canonical_url": "https://loseit.zendesk.com/hc/en-us/articles/51699529280532-Understanding-Food-Timestamps",
          "retrieved_at": "2026-10-07T11:05:21.893026+00:00",
          "evidence_type": "official-help",
          "published_or_updated": "2026-07-23T14:26:46Z"
        },
        {
          "id": "li-50",
          "title": "Lose It! US Apple App Store listing",
          "url": "https://apps.apple.com/us/app/lose-it-calorie-counter/id297368629",
          "retrieved_at": "2026-10-07T11:08:41.510213+00:00",
          "evidence_type": "store-listing",
          "published_or_updated": null
        },
        {
          "id": "li-51",
          "title": "Apple US listing metadata and description",
          "url": "https://itunes.apple.com/lookup?id=297368629&country=us",
          "retrieved_at": "2026-10-07T11:08:41.664559+00:00",
          "evidence_type": "store-listing",
          "published_or_updated": "2026-09-30T13:11:25Z"
        },
        {
          "id": "li-52",
          "title": "Previous Meals",
          "url": "https://loseit.zendesk.com/api/v2/help_center/en-us/articles/49209714942996.json",
          "retrieved_at": "2026-10-07T11:08:42.147135+00:00",
          "evidence_type": "official-help",
          "published_or_updated": "2026-08-04T14:55:31Z"
        },
        {
          "id": "li-53",
          "title": "Tracking Nutrients",
          "url": "https://loseit.zendesk.com/api/v2/help_center/en-us/articles/47273196503572.json",
          "retrieved_at": "2026-10-07T11:08:42.634685+00:00",
          "evidence_type": "official-help",
          "published_or_updated": "2026-07-14T17:34:43Z"
        },
        {
          "id": "li-54",
          "title": "How to Start a New Weight Loss Plan",
          "url": "https://loseit.zendesk.com/api/v2/help_center/en-us/articles/47649627723540.json",
          "retrieved_at": "2026-10-07T11:08:43.091178+00:00",
          "evidence_type": "official-help",
          "published_or_updated": "2026-04-01T16:11:50Z"
        },
        {
          "id": "li-55",
          "title": "Official store image: Log Every Meal",
          "url": "https://is1-ssl.mzstatic.com/image/thumb/PurpleSource221/v4/5b/46/f9/5b46f98d-5464-4441-0e1c-087debabe39b/SC-2.jpg/900x0w.jpg",
          "retrieved_at": "2026-10-07T11:08:43.238605+00:00",
          "evidence_type": "store-listing",
          "published_or_updated": null
        },
        {
          "id": "li-56",
          "title": "Official store image: Snap Your Food",
          "url": "https://is1-ssl.mzstatic.com/image/thumb/PurpleSource211/v4/73/54/b5/7354b5e8-ff0f-58fc-2fbe-6347980854dd/SC-3.jpg/900x0w.jpg",
          "retrieved_at": "2026-10-07T11:08:43.379000+00:00",
          "evidence_type": "store-listing",
          "published_or_updated": null
        },
        {
          "id": "li-57",
          "title": "Official store image: Lose Weight",
          "url": "https://is1-ssl.mzstatic.com/image/thumb/PurpleSource211/v4/59/b5/ac/59b5ac74-d510-9833-85a1-e73b0587ee5a/SC-4.jpg/900x0w.jpg",
          "retrieved_at": "2026-10-07T11:08:43.522208+00:00",
          "evidence_type": "store-listing",
          "published_or_updated": null
        },
        {
          "id": "li-58",
          "title": "Official store image: Voice Logging",
          "url": "https://is1-ssl.mzstatic.com/image/thumb/PurpleSource221/v4/5d/6a/18/5d6a1864-7bbb-7c14-0b88-bad8cabeb994/SC-5.jpg/900x0w.jpg",
          "retrieved_at": "2026-10-07T11:08:43.664145+00:00",
          "evidence_type": "store-listing",
          "published_or_updated": null
        },
        {
          "id": "li-59",
          "title": "Official store image: Scan Barcodes",
          "url": "https://is1-ssl.mzstatic.com/image/thumb/PurpleSource221/v4/12/7b/6a/127b6a1c-c772-fc07-046c-b444dde77ca0/SC-6.jpg/900x0w.jpg",
          "retrieved_at": "2026-10-07T11:08:43.802611+00:00",
          "evidence_type": "store-listing",
          "published_or_updated": null
        },
        {
          "id": "li-60",
          "title": "Official store image: Learn About Macros",
          "url": "https://is1-ssl.mzstatic.com/image/thumb/PurpleSource221/v4/10/f3/28/10f32834-5ac2-d585-95e5-9466b641af4b/SC-7.jpg/900x0w.jpg",
          "retrieved_at": "2026-10-07T11:08:43.945560+00:00",
          "evidence_type": "store-listing",
          "published_or_updated": null
        },
        {
          "id": "li-61",
          "title": "Official store image: Sync Fitness Apps",
          "url": "https://is1-ssl.mzstatic.com/image/thumb/PurpleSource211/v4/23/0a/03/230a03aa-568e-a2c2-eef7-e01d71d7c271/SC-8.jpg/900x0w.jpg",
          "retrieved_at": "2026-10-07T11:08:44.068989+00:00",
          "evidence_type": "store-listing",
          "published_or_updated": null
        },
        {
          "id": "li-62",
          "title": "Official store image: Support Groups",
          "url": "https://is1-ssl.mzstatic.com/image/thumb/PurpleSource221/v4/d0/47/70/d04770c7-415d-9bdb-791f-d4e271c56e05/SC-9.jpg/900x0w.jpg",
          "retrieved_at": "2026-10-07T11:08:44.187386+00:00",
          "evidence_type": "store-listing",
          "published_or_updated": null
        },
        {
          "id": "li-63",
          "title": "Official store image: Customized Recipes",
          "url": "https://is1-ssl.mzstatic.com/image/thumb/PurpleSource221/v4/ca/7e/5d/ca7e5d86-78d0-f3aa-73fd-47890c65c5f3/SC-10.jpg/900x0w.jpg",
          "retrieved_at": "2026-10-07T11:08:44.310213+00:00",
          "evidence_type": "store-listing",
          "published_or_updated": null
        }
      ],
      "features": [
        {
          "key": "onboarding",
          "label": "Onboarding",
          "status": "limited",
          "tier": "Basic",
          "platforms": "iOS; Android; web",
          "detail": "Profile-to-budget setup documented; fresh-install question sequence not inspected. Return survey can be bypassed by restarting.",
          "sources": [
            "li-51",
            "li-46"
          ]
        },
        {
          "key": "goal_setting",
          "label": "Weight goal and plan",
          "status": "documented",
          "tier": "Basic",
          "platforms": "iOS; Android; web",
          "detail": "Start/current/goal weight and plan dates editable; calorie schedules restrict some web edits.",
          "sources": [
            "li-12",
            "li-54"
          ]
        },
        {
          "key": "calorie_budget",
          "label": "Calorie budget",
          "status": "documented",
          "tier": "Basic; Premium schedules",
          "platforms": "iOS; Android; web",
          "detail": "BMR × activity estimate less rate-dependent deficit; editable settings and minimum-budget threshold.",
          "sources": [
            "li-14",
            "li-15"
          ]
        },
        {
          "key": "macro_targets",
          "label": "Macro targets",
          "status": "limited",
          "tier": "Premium",
          "platforms": "iOS; Android; web",
          "detail": "Gram targets or percentage ranges; no different targets by weekday or macro cycling.",
          "sources": [
            "li-13"
          ]
        },
        {
          "key": "micronutrients",
          "label": "Additional nutrients",
          "status": "limited",
          "tier": "Tier of detailed views not explicit",
          "platforms": "iOS; Android",
          "detail": "18 additional nutrients viewable but no dedicated individual goals; availability depends on food data.",
          "sources": [
            "li-53"
          ]
        },
        {
          "key": "food_search",
          "label": "Food search",
          "status": "documented",
          "tier": "Basic",
          "platforms": "iOS; Android; web",
          "detail": "Public search alongside My Foods, Meals, Recipes; serving unit and quantity before commit.",
          "sources": [
            "li-02"
          ]
        },
        {
          "key": "verified_database",
          "label": "Verified foods",
          "status": "documented",
          "tier": "Basic; scanner Premium",
          "platforms": "iOS; Android",
          "detail": "Green-check curated subset, not a guarantee for every database entry; verified-only filter.",
          "sources": [
            "li-07"
          ]
        },
        {
          "key": "barcode_scan",
          "label": "Scan It",
          "status": "documented",
          "tier": "Premium",
          "platforms": "iOS; Android",
          "detail": "English device language required; result still requires portion selection and confirmation.",
          "sources": [
            "li-01",
            "li-04"
          ]
        },
        {
          "key": "label_scan",
          "label": "Label Autofill",
          "status": "documented",
          "tier": "Premium",
          "platforms": "iOS; Android",
          "detail": "Version 16.6.601 onward: camera Autofill within custom-food creation or Edit Nutrition.",
          "sources": [
            "li-03"
          ]
        },
        {
          "key": "photo_logging",
          "label": "Snap It",
          "status": "documented",
          "tier": "Premium",
          "platforms": "iOS; Android",
          "detail": "Photo or gallery image produces candidates and serving estimates; Swap and Edit before save.",
          "sources": [
            "li-05"
          ]
        },
        {
          "key": "voice_logging",
          "label": "Say It",
          "status": "limited",
          "tier": "Premium",
          "platforms": "Mobile; iOS visual",
          "detail": "English voice logging documented; result correction and confirmation sequence not fully evidenced.",
          "sources": [
            "li-01",
            "li-02",
            "li-58"
          ]
        },
        {
          "key": "text_ai",
          "label": "Text-based import",
          "status": "limited",
          "tier": "Not established",
          "platforms": "Mobile",
          "detail": "Recipe Text Importer matches ingredient text. General conversational typed meal logging not established.",
          "sources": [
            "li-47"
          ]
        },
        {
          "key": "quick_add",
          "label": "Quick calorie add",
          "status": "not-found",
          "tier": "Unknown",
          "platforms": "Unknown",
          "detail": "No dedicated quick-add workflow located in reviewed current help.",
          "sources": [
            "li-02"
          ]
        },
        {
          "key": "portion_edit",
          "label": "Serving adjustment",
          "status": "documented",
          "tier": "Basic; Snap It Premium",
          "platforms": "iOS; Android; web",
          "detail": "Select serving unit/quantity; Snap It serving estimate editable before final save.",
          "sources": [
            "li-02",
            "li-05"
          ]
        },
        {
          "key": "meal_correction",
          "label": "Correct log and food data",
          "status": "documented",
          "tier": "Basic; Autofill Premium",
          "platforms": "iOS; Android",
          "detail": "Delete individual or whole meal; edit food nutrition and timestamps. Retroactive propagation untested.",
          "sources": [
            "li-07",
            "li-41",
            "li-49"
          ]
        },
        {
          "key": "history_favorites",
          "label": "Personal food history",
          "status": "documented",
          "tier": "Basic",
          "platforms": "iOS; Android; web",
          "detail": "My Foods is automatically populated by logged/custom foods, not an independently curated bookmark list.",
          "sources": [
            "li-09"
          ]
        },
        {
          "key": "copy_meals",
          "label": "Reuse previous meals",
          "status": "limited",
          "tier": "Not explicitly gated",
          "platforms": "iOS; Android",
          "detail": "Previous Meals re-logs recent meals; cross-day bulk-copy behavior not established.",
          "sources": [
            "li-52"
          ]
        },
        {
          "key": "saved_meals",
          "label": "Reusable meal templates",
          "status": "documented",
          "tier": "Basic recipes",
          "platforms": "iOS; Android",
          "detail": "Convert logged meal to recipe. Distinct named Saved Meals object not established.",
          "sources": [
            "li-10"
          ]
        },
        {
          "key": "recipes",
          "label": "Recipes",
          "status": "documented",
          "tier": "Basic manual recipes",
          "platforms": "iOS; Android; web",
          "detail": "Ingredient list with total yield and portion size. Meal-to-recipe conversion mobile only.",
          "sources": [
            "li-10"
          ]
        },
        {
          "key": "recipe_import",
          "label": "Recipe importing",
          "status": "limited",
          "tier": "Not established",
          "platforms": "Mobile",
          "detail": "Web-import failure documented; Text Importer fallback accepts copied ingredients. Tier and review flow unclear.",
          "sources": [
            "li-47"
          ]
        },
        {
          "key": "meal_planning",
          "label": "Planned foods",
          "status": "limited",
          "tier": "Premium",
          "platforms": "iOS; Android; web",
          "detail": "Future foods marked planned; same-day planned state mobile only. No strategy-generated meal plans.",
          "sources": [
            "li-11",
            "li-40"
          ]
        },
        {
          "key": "water",
          "label": "Water goals",
          "status": "limited",
          "tier": "Premium",
          "platforms": "iOS; Android; web",
          "detail": "Goal plus Log tracker; fixed serving units; Apple Health read-only water path.",
          "sources": [
            "li-22"
          ]
        },
        {
          "key": "weight_trend",
          "label": "Weight progress",
          "status": "documented",
          "tier": "Basic; Highlights Premium",
          "platforms": "iOS visual; mobile/web plan",
          "detail": "Goals chart, weekly rate and milestones visible; no verified smoothing algorithm.",
          "sources": [
            "li-57",
            "li-21"
          ]
        },
        {
          "key": "body_metrics",
          "label": "Body metrics",
          "status": "documented",
          "tier": "Premium custom goals",
          "platforms": "iOS; Android",
          "detail": "Body fat/BMI and blood pressure/glucose supported; Android timestamp fix documented in 18.4.600.",
          "sources": [
            "li-23",
            "li-45"
          ]
        },
        {
          "key": "progress_photos",
          "label": "Progress photographs",
          "status": "not-found",
          "tier": "Unknown",
          "platforms": "Unknown",
          "detail": "No body-progress-photo workflow established. Food photos do not establish this feature.",
          "sources": [
            "li-05"
          ]
        },
        {
          "key": "exercise_logging",
          "label": "Exercise logging",
          "status": "documented",
          "tier": "Basic manual logging",
          "platforms": "iOS; Android; web",
          "detail": "Exercise details can be recorded without crediting burn; controls differ by platform.",
          "sources": [
            "li-27"
          ]
        },
        {
          "key": "wearable_sync",
          "label": "Wearable sync",
          "status": "limited",
          "tier": "Garmin Premium; Apple Watch exception",
          "platforms": "iOS; Android; web connection",
          "detail": "Garmin authorization and custom-goal prerequisites documented; bonus is distinct from raw workout credit.",
          "sources": [
            "li-25",
            "li-26"
          ]
        },
        {
          "key": "health_platform_sync",
          "label": "Health hubs",
          "status": "limited",
          "tier": "Apple Health base sync free; custom goals Premium",
          "platforms": "iOS Apple Health; Android Health Connect",
          "detail": "Permission-specific directional sync; Apple Health history cannot be backfilled.",
          "sources": [
            "li-23",
            "li-24"
          ]
        },
        {
          "key": "adaptive_targets",
          "label": "Target adjustments",
          "status": "limited",
          "tier": "Basic",
          "platforms": "iOS; Android; web",
          "detail": "Recalculates with weight and maintenance transition; no intake/weight-learned expenditure algorithm established.",
          "sources": [
            "li-16"
          ]
        },
        {
          "key": "weekly_review",
          "label": "Review and reports",
          "status": "documented",
          "tier": "Premium Highlights/automatic reports",
          "platforms": "Mobile; manual email iOS only",
          "detail": "Daily/weekly calorie breakdown, Highlights after seven logged days, and scheduled reports.",
          "sources": [
            "li-20",
            "li-21",
            "li-39"
          ]
        },
        {
          "key": "fasting",
          "label": "Intermittent fasting",
          "status": "limited",
          "tier": "Premium",
          "platforms": "iOS; Android only",
          "detail": "Fixed hours across chosen days; manual timer start/stop, 22-hour maximum, no consolidated history dashboard.",
          "sources": [
            "li-37",
            "li-38"
          ]
        },
        {
          "key": "reminders",
          "label": "Reminders",
          "status": "documented",
          "tier": "Premium fasting reminders",
          "platforms": "iOS; Android",
          "detail": "Start/end fasting notifications configured under Profile > Reminders; broader reminders not audited.",
          "sources": [
            "li-37"
          ]
        },
        {
          "key": "widgets",
          "label": "Widgets",
          "status": "limited",
          "tier": "Not explicit",
          "platforms": "iOS; Android",
          "detail": "Home widgets on both; customization restricted to three iOS widget types.",
          "sources": [
            "li-35",
            "li-36"
          ]
        },
        {
          "key": "offline_logging",
          "label": "Offline behavior",
          "status": "not-found",
          "tier": "Unknown",
          "platforms": "Unknown",
          "detail": "No verified offline persistence, cached database or offline AI contract located.",
          "sources": []
        },
        {
          "key": "data_export",
          "label": "Data export",
          "status": "limited",
          "tier": "Full-export gate not stated; scheduled reports Premium",
          "platforms": "Web export; iOS manual reports",
          "detail": "Full history and individual goal export; no data import; goal exports have no date-range filter.",
          "sources": [
            "li-28",
            "li-39"
          ]
        },
        {
          "key": "data_delete",
          "label": "Account deletion",
          "status": "documented",
          "tier": "All accounts",
          "platforms": "iOS; Android; web",
          "detail": "Irreversible account closure includes other FitNow apps; device app must also be removed.",
          "sources": [
            "li-29"
          ]
        },
        {
          "key": "subscription_cancel",
          "label": "Subscription cancellation",
          "status": "documented",
          "tier": "Paid/trial",
          "platforms": "Apple; Google Play; web Stripe",
          "detail": "Must use purchase origin; new US 2026 purchases may use Stripe even when initiated inside app.",
          "sources": [
            "li-30"
          ]
        },
        {
          "key": "web_app",
          "label": "Web application",
          "status": "limited",
          "tier": "Basic; Premium feature-dependent",
          "platforms": "Web",
          "detail": "Food logging, custom foods, recipes, goals and exports documented; not full mobile parity.",
          "sources": [
            "li-06",
            "li-12",
            "li-28"
          ]
        },
        {
          "key": "social",
          "label": "Friends and groups",
          "status": "documented",
          "tier": "Basic community",
          "platforms": "iOS; Android; web",
          "detail": "Friend invites by email and accept/ignore; Discover groups visibly shown in marketing.",
          "sources": [
            "li-42",
            "li-43",
            "li-62"
          ]
        },
        {
          "key": "coaching",
          "label": "Guidance and courses",
          "status": "limited",
          "tier": "Courses separately purchased",
          "platforms": "English mobile only",
          "detail": "Text-based lessons and nutrition strategies; no verified human-coach service.",
          "sources": [
            "li-19",
            "li-44"
          ]
        }
      ],
      "screens": [
        {
          "id": "li-s-dashboard",
          "name": "Dashboard favorites",
          "area": "Review",
          "entry": "Bottom Dashboard",
          "primary_actions": [
            "Review cards",
            "Edit favorites"
          ],
          "states": [
            "Calorie week bars",
            "Nutrient rings",
            "Macro distribution",
            "Streak"
          ],
          "platform": "iOS visual",
          "tier": "Mixed",
          "evidence": "visual",
          "sources": [
            "li-60"
          ],
          "visual_ids": [
            "li-v07"
          ]
        },
        {
          "id": "li-s-log",
          "name": "Daily Log",
          "area": "Logging",
          "entry": "Bottom Log",
          "primary_actions": [
            "Change date",
            "Add Food",
            "Meal menu"
          ],
          "states": [
            "Budget ring",
            "Food/exercise totals",
            "Meal groups"
          ],
          "platform": "iOS visual; Android documented",
          "tier": "Basic",
          "evidence": "visual",
          "sources": [
            "li-20",
            "li-55"
          ],
          "visual_ids": [
            "li-v02"
          ]
        },
        {
          "id": "li-s-goals",
          "name": "Goals overview",
          "area": "Goals",
          "entry": "Bottom Goals",
          "primary_actions": [
            "Record weight",
            "Change range",
            "Review milestone"
          ],
          "states": [
            "Weight summary",
            "Journey",
            "More Goals"
          ],
          "platform": "iOS visual",
          "tier": "Mixed",
          "evidence": "visual",
          "sources": [
            "li-57"
          ],
          "visual_ids": [
            "li-v04"
          ]
        },
        {
          "id": "li-s-discover",
          "name": "Discover groups",
          "area": "Community",
          "entry": "Bottom Discover",
          "primary_actions": [
            "Select Feed/Courses/Groups/Friends",
            "Filter posts"
          ],
          "states": [
            "Community introduction",
            "Post feed"
          ],
          "platform": "iOS visual",
          "tier": "Basic community",
          "evidence": "visual",
          "sources": [
            "li-62"
          ],
          "visual_ids": [
            "li-v09"
          ]
        },
        {
          "id": "li-s-profile",
          "name": "Profile settings",
          "area": "Settings",
          "entry": "Top-right profile",
          "primary_actions": [
            "Automatic Tracking",
            "Insights",
            "Export Data"
          ],
          "states": [
            "Grouped setting sections"
          ],
          "platform": "iOS visual",
          "tier": "Mixed",
          "evidence": "visual",
          "sources": [
            "li-61"
          ],
          "visual_ids": [
            "li-v08"
          ]
        },
        {
          "id": "li-s-search",
          "name": "Add Food search",
          "area": "Logging",
          "entry": "Log > Add Food",
          "primary_actions": [
            "Search",
            "Select My Foods/Meals/Recipes",
            "Scan/Snap/Say"
          ],
          "states": [
            "Search results",
            "Verified filter"
          ],
          "platform": "iOS; Android; web subset",
          "tier": "Basic; smart input Premium",
          "evidence": "documented",
          "sources": [
            "li-02",
            "li-07"
          ],
          "visual_ids": []
        },
        {
          "id": "li-s-food",
          "name": "Food detail and portion",
          "area": "Logging",
          "entry": "Select search result",
          "primary_actions": [
            "Set unit and amount",
            "Edit Nutrition",
            "Add/Save"
          ],
          "states": [
            "Nutrition",
            "Log Details"
          ],
          "platform": "iOS; Android; web subset",
          "tier": "Basic",
          "evidence": "documented",
          "sources": [
            "li-02",
            "li-49"
          ],
          "visual_ids": []
        },
        {
          "id": "li-s-scan",
          "name": "Scan It camera",
          "area": "Logging",
          "entry": "Add Food > Scan It",
          "primary_actions": [
            "Align barcode",
            "Close",
            "Flash"
          ],
          "states": [
            "Framing reticle",
            "Marketing nutrition overlay"
          ],
          "platform": "iOS visual; Android documented",
          "tier": "Premium",
          "evidence": "visual",
          "sources": [
            "li-04",
            "li-59"
          ],
          "visual_ids": [
            "li-v06"
          ]
        },
        {
          "id": "li-s-snap",
          "name": "Snap It camera",
          "area": "Logging",
          "entry": "Add Food > Snap It",
          "primary_actions": [
            "Capture",
            "Upload image",
            "Flash",
            "Close"
          ],
          "states": [
            "Camera reticle",
            "Gallery shortcut"
          ],
          "platform": "iOS visual; Android documented",
          "tier": "Premium",
          "evidence": "visual",
          "sources": [
            "li-05",
            "li-56"
          ],
          "visual_ids": [
            "li-v03"
          ]
        },
        {
          "id": "li-s-snap-review",
          "name": "Snap It results",
          "area": "Logging",
          "entry": "Photo analysis",
          "primary_actions": [
            "Swap",
            "Edit serving",
            "Save"
          ],
          "states": [
            "Detected foods",
            "Estimated portions",
            "Optional alternatives"
          ],
          "platform": "iOS; Android",
          "tier": "Premium",
          "evidence": "documented",
          "sources": [
            "li-05"
          ],
          "visual_ids": []
        },
        {
          "id": "li-s-say",
          "name": "Say It listening",
          "area": "Logging",
          "entry": "Add Food > Say It",
          "primary_actions": [
            "Stop recording",
            "Close"
          ],
          "states": [
            "Listening label",
            "Transcript",
            "Circular stop control"
          ],
          "platform": "iOS visual",
          "tier": "Premium",
          "evidence": "visual",
          "sources": [
            "li-58"
          ],
          "visual_ids": [
            "li-v05"
          ]
        },
        {
          "id": "li-s-edit-nutrition",
          "name": "Edit Nutrition",
          "area": "Correction",
          "entry": "Food detail",
          "primary_actions": [
            "Change nutrient values",
            "Camera Autofill",
            "Save"
          ],
          "states": [
            "Manual fields",
            "Label input"
          ],
          "platform": "iOS; Android",
          "tier": "Basic; camera Premium",
          "evidence": "documented",
          "sources": [
            "li-07",
            "li-03"
          ],
          "visual_ids": []
        },
        {
          "id": "li-s-custom-foods",
          "name": "Custom Foods manager",
          "area": "Food library",
          "entry": "Profile > Foods > Custom Foods",
          "primary_actions": [
            "Create",
            "Edit",
            "Delete"
          ],
          "states": [
            "Existing custom entries"
          ],
          "platform": "iOS; Android; web",
          "tier": "Basic",
          "evidence": "documented",
          "sources": [
            "li-06"
          ],
          "visual_ids": []
        },
        {
          "id": "li-s-custom-editor",
          "name": "Custom Food editor",
          "area": "Food library",
          "entry": "Custom Foods > +/New",
          "primary_actions": [
            "Enter nutrition",
            "Share with community",
            "Save"
          ],
          "states": [
            "New food",
            "Edited food"
          ],
          "platform": "iOS; Android; web",
          "tier": "Basic; Autofill Premium",
          "evidence": "documented",
          "sources": [
            "li-06",
            "li-03"
          ],
          "visual_ids": []
        },
        {
          "id": "li-s-my-foods",
          "name": "My Foods manager",
          "area": "Food library",
          "entry": "Profile > Foods > My Foods",
          "primary_actions": [
            "Select entries",
            "Remove"
          ],
          "states": [
            "Automatically accumulated foods"
          ],
          "platform": "iOS; Android; web",
          "tier": "Basic",
          "evidence": "documented",
          "sources": [
            "li-09"
          ],
          "visual_ids": []
        },
        {
          "id": "li-s-previous",
          "name": "Previous Meals",
          "area": "Reuse",
          "entry": "Add Food > Meals",
          "primary_actions": [
            "Choose past meal",
            "Add"
          ],
          "states": [
            "Meal-time filtered",
            "Unfiltered"
          ],
          "platform": "iOS; Android",
          "tier": "Not specified",
          "evidence": "documented",
          "sources": [
            "li-52"
          ],
          "visual_ids": []
        },
        {
          "id": "li-s-recipe-list",
          "name": "Recipes library",
          "area": "Reuse",
          "entry": "Profile > Foods > Recipes",
          "primary_actions": [
            "Create recipe",
            "Open recipe"
          ],
          "states": [
            "Saved recipes"
          ],
          "platform": "iOS; Android; web",
          "tier": "Basic manual creation",
          "evidence": "documented",
          "sources": [
            "li-10"
          ],
          "visual_ids": []
        },
        {
          "id": "li-s-recipe",
          "name": "Recipe detail",
          "area": "Reuse",
          "entry": "Open recipe",
          "primary_actions": [
            "Edit",
            "View all nutrients",
            "Share",
            "Delete"
          ],
          "states": [
            "Ingredients",
            "Nutrition",
            "Notes"
          ],
          "platform": "iOS visual",
          "tier": "Basic manual recipes",
          "evidence": "visual",
          "sources": [
            "li-63"
          ],
          "visual_ids": [
            "li-v10"
          ]
        },
        {
          "id": "li-s-recipe-builder",
          "name": "Recipe builder",
          "area": "Reuse",
          "entry": "Recipes > create",
          "primary_actions": [
            "Set yield",
            "Add ingredients",
            "Set portion",
            "Save"
          ],
          "states": [
            "Ingredient search",
            "Text Importer fallback"
          ],
          "platform": "iOS; Android; web subset",
          "tier": "Basic manual; importer unspecified",
          "evidence": "documented",
          "sources": [
            "li-10",
            "li-47"
          ],
          "visual_ids": []
        },
        {
          "id": "li-s-goal-plan",
          "name": "Weight plan settings",
          "area": "Goals",
          "entry": "Profile > Program > Goal",
          "primary_actions": [
            "Edit weights/date",
            "Start new plan"
          ],
          "states": [
            "Start/current/goal weight"
          ],
          "platform": "iOS; Android; web",
          "tier": "Basic",
          "evidence": "documented",
          "sources": [
            "li-12",
            "li-54"
          ],
          "visual_ids": []
        },
        {
          "id": "li-s-reset",
          "name": "New plan setup",
          "area": "Goals",
          "entry": "Goal > Start Fresh & Reset Plan",
          "primary_actions": [
            "Keep/Clear data display",
            "Set current/goal weight",
            "Select rate"
          ],
          "states": [
            "Restart flow"
          ],
          "platform": "iOS; Android; web differences",
          "tier": "Basic",
          "evidence": "documented",
          "sources": [
            "li-54"
          ],
          "visual_ids": []
        },
        {
          "id": "li-s-return",
          "name": "Returning-user survey",
          "area": "Onboarding",
          "entry": "After 3–4 weeks without logging",
          "primary_actions": [
            "Answer questions",
            "OS force-close workaround"
          ],
          "states": [
            "No in-app skip documented"
          ],
          "platform": "iOS; Android",
          "tier": "Not specified",
          "evidence": "documented",
          "sources": [
            "li-46"
          ],
          "visual_ids": []
        },
        {
          "id": "li-s-budget",
          "name": "Budget settings",
          "area": "Goals",
          "entry": "Profile > Program > Budget",
          "primary_actions": [
            "Activity Level",
            "Weekly Rate",
            "Minimum Average Budget"
          ],
          "states": [
            "Calculated budget",
            "Maintenance option"
          ],
          "platform": "iOS; Android; web subset",
          "tier": "Basic",
          "evidence": "documented",
          "sources": [
            "li-14",
            "li-26"
          ],
          "visual_ids": []
        },
        {
          "id": "li-s-schedule",
          "name": "Calorie Schedule",
          "area": "Goals",
          "entry": "Profile > Program > Calorie Schedule",
          "primary_actions": [
            "Choose high days",
            "Choose additional calories",
            "Save Schedule"
          ],
          "states": [
            "Preset/custom allocation"
          ],
          "platform": "iOS; Android",
          "tier": "Premium",
          "evidence": "documented",
          "sources": [
            "li-17"
          ],
          "visual_ids": []
        },
        {
          "id": "li-s-strategy",
          "name": "Nutrition Strategy",
          "area": "Goals",
          "entry": "Profile > Program > Nutrition Strategy",
          "primary_actions": [
            "Recommended questions",
            "Browse",
            "Custom strategy"
          ],
          "states": [
            "Preset",
            "Custom"
          ],
          "platform": "iOS; Android only",
          "tier": "Premium",
          "evidence": "documented",
          "sources": [
            "li-18",
            "li-19"
          ],
          "visual_ids": []
        },
        {
          "id": "li-s-nutrient",
          "name": "Custom nutrient goal",
          "area": "Goals",
          "entry": "Goals > Set Another Goal > Nutrition",
          "primary_actions": [
            "Set grams/range",
            "Edit",
            "Delete"
          ],
          "states": [
            "Tracking graph",
            "Target editor"
          ],
          "platform": "iOS; Android; web",
          "tier": "Premium",
          "evidence": "documented",
          "sources": [
            "li-13",
            "li-48"
          ],
          "visual_ids": []
        },
        {
          "id": "li-s-water",
          "name": "Water Intake goal",
          "area": "Goals",
          "entry": "Goals > General > Water Intake",
          "primary_actions": [
            "Record intake",
            "Show on Log"
          ],
          "states": [
            "Goal graph",
            "Fixed-unit increment"
          ],
          "platform": "iOS; Android; web",
          "tier": "Premium",
          "evidence": "documented",
          "sources": [
            "li-22"
          ],
          "visual_ids": []
        },
        {
          "id": "li-s-fasting",
          "name": "Fasting setup and timer",
          "area": "Goals",
          "entry": "Profile > Program > Intermittent Fasting",
          "primary_actions": [
            "Choose days/hours",
            "Start/stop timer",
            "Set alerts"
          ],
          "states": [
            "Hidden option",
            "Scheduled",
            "Manual running timer"
          ],
          "platform": "iOS; Android",
          "tier": "Premium",
          "evidence": "documented",
          "sources": [
            "li-37",
            "li-38"
          ],
          "visual_ids": []
        },
        {
          "id": "li-s-highlights",
          "name": "Highlights",
          "area": "Review",
          "entry": "Dashboard below Favorites",
          "primary_actions": [
            "Review generated insight"
          ],
          "states": [
            "Locked until consistent logging",
            "Available insights"
          ],
          "platform": "iOS; Android only",
          "tier": "Premium",
          "evidence": "documented",
          "sources": [
            "li-21"
          ],
          "visual_ids": []
        },
        {
          "id": "li-s-calorie-review",
          "name": "Calorie breakdown",
          "area": "Review",
          "entry": "Tap Log calorie ring",
          "primary_actions": [
            "Review daily/week breakdown"
          ],
          "states": [
            "Net calorie detail"
          ],
          "platform": "iOS; Android",
          "tier": "Not explicitly gated",
          "evidence": "documented",
          "sources": [
            "li-20"
          ],
          "visual_ids": []
        },
        {
          "id": "li-s-exercise",
          "name": "Exercise editor",
          "area": "Activity",
          "entry": "Log > Exercise > Add Workouts/Exercise",
          "primary_actions": [
            "Select exercise",
            "Enter details",
            "Exclude burn"
          ],
          "states": [
            "Credited",
            "Excluded"
          ],
          "platform": "iOS; Android; web",
          "tier": "Basic",
          "evidence": "documented",
          "sources": [
            "li-27"
          ],
          "visual_ids": []
        },
        {
          "id": "li-s-health",
          "name": "Health integration permissions",
          "area": "Integration",
          "entry": "Profile > Automatic Tracking",
          "primary_actions": [
            "Choose service",
            "Manage read/write categories",
            "Authorize"
          ],
          "states": [
            "Unlinked",
            "Permission granted"
          ],
          "platform": "iOS Apple Health; Android Health Connect",
          "tier": "Mixed",
          "evidence": "documented",
          "sources": [
            "li-24",
            "li-34"
          ],
          "visual_ids": []
        },
        {
          "id": "li-s-reports",
          "name": "Email reports",
          "area": "Export",
          "entry": "Profile > Export Data / Insights",
          "primary_actions": [
            "Daily/weekly report",
            "Email/print",
            "Schedule"
          ],
          "states": [
            "Manual iOS",
            "Scheduled Premium"
          ],
          "platform": "iOS; Android scheduled",
          "tier": "Mixed",
          "evidence": "documented",
          "sources": [
            "li-39"
          ],
          "visual_ids": []
        },
        {
          "id": "li-s-purchases",
          "name": "Purchases",
          "area": "Account",
          "entry": "my.loseit.com sidebar",
          "primary_actions": [
            "Open active subscription",
            "Cancel Subscription"
          ],
          "states": [
            "Active",
            "Canceled/expiring"
          ],
          "platform": "Web Stripe",
          "tier": "Paid/trial",
          "evidence": "documented",
          "sources": [
            "li-30"
          ],
          "visual_ids": []
        },
        {
          "id": "li-s-delete",
          "name": "Delete Account",
          "area": "Account",
          "entry": "Profile > Manage > Lose It! Account",
          "primary_actions": [
            "Delete",
            "Confirm"
          ],
          "states": [
            "iOS password confirmation",
            "Android email confirmation"
          ],
          "platform": "iOS; Android; web variant",
          "tier": "All",
          "evidence": "documented",
          "sources": [
            "li-29"
          ],
          "visual_ids": []
        }
      ],
      "flows": [
        {
          "id": "li-f-setup",
          "name": "Start or restart a plan",
          "job": "Establish weight target",
          "preconditions": [
            "Account access"
          ],
          "steps": [
            {
              "screen": "li-s-goal-plan",
              "action": "Start Fresh & Reset Plan",
              "result": "New-plan setup"
            },
            {
              "screen": "li-s-reset",
              "action": "Keep/Clear historical display; enter weights",
              "result": "Plan selection"
            },
            {
              "screen": "li-s-reset",
              "action": "Choose rate; Continue",
              "result": "New plan"
            }
          ],
          "branches": [
            "Fresh-install preceding screens unknown; restart path is documented."
          ],
          "persistence": "Plan setup documented; no account created.",
          "friction": "Clear Data wording refers to hiding weight history, not verified deletion.",
          "evidence": "documented",
          "sources": [
            "li-54",
            "li-51"
          ],
          "visual_ids": []
        },
        {
          "id": "li-f-return",
          "name": "Resume after inactivity",
          "job": "Return without repeating survey",
          "preconditions": [
            "3–4-week logging gap"
          ],
          "steps": [
            {
              "screen": "li-s-return",
              "action": "Answer questions",
              "result": "Plan recalibration"
            },
            {
              "screen": "li-s-return",
              "action": "Alternatively force-close and reopen",
              "result": "Survey bypass"
            }
          ],
          "branches": [
            "No documented in-app Skip."
          ],
          "persistence": "Existing plan retention not tested.",
          "friction": "Recovery relies on OS app switcher.",
          "evidence": "documented",
          "sources": [
            "li-46"
          ],
          "visual_ids": []
        },
        {
          "id": "li-f-search",
          "name": "Search and log",
          "job": "Record known food",
          "preconditions": [
            "Basic account"
          ],
          "steps": [
            {
              "screen": "li-s-log",
              "action": "Add Food under meal",
              "result": "Search"
            },
            {
              "screen": "li-s-search",
              "action": "Find and select item",
              "result": "Food detail"
            },
            {
              "screen": "li-s-food",
              "action": "Set unit/quantity; Add/Save; Done",
              "result": "Meal logged"
            }
          ],
          "branches": [
            "Verified filter narrows results."
          ],
          "persistence": "Added food enters personal history.",
          "friction": "Public database accuracy varies.",
          "evidence": "documented",
          "sources": [
            "li-02",
            "li-09",
            "li-07"
          ],
          "visual_ids": [
            "li-v02"
          ]
        },
        {
          "id": "li-f-barcode",
          "name": "Barcode to meal",
          "job": "Identify packaged food",
          "preconditions": [
            "Premium",
            "English device language",
            "Camera permission"
          ],
          "steps": [
            {
              "screen": "li-s-search",
              "action": "Scan It",
              "result": "Camera"
            },
            {
              "screen": "li-s-scan",
              "action": "Align barcode",
              "result": "Matched food"
            },
            {
              "screen": "li-s-food",
              "action": "Set portion; Add/Save; Done",
              "result": "Logged item"
            }
          ],
          "branches": [
            "Unknown barcode can lead to custom-food creation."
          ],
          "persistence": "Committed food log; untested across devices.",
          "friction": "Scan identity does not ensure correct current label.",
          "evidence": "documented",
          "sources": [
            "li-04",
            "li-06"
          ],
          "visual_ids": [
            "li-v06"
          ]
        },
        {
          "id": "li-f-label",
          "name": "Correct using package label",
          "job": "Repair nutrient values",
          "preconditions": [
            "Premium",
            "Supported app version",
            "Camera access"
          ],
          "steps": [
            {
              "screen": "li-s-food",
              "action": "Edit Nutrition",
              "result": "Nutrient editor"
            },
            {
              "screen": "li-s-edit-nutrition",
              "action": "Autofill camera; scan label",
              "result": "Captured values"
            },
            {
              "screen": "li-s-edit-nutrition",
              "action": "Save; Add on iOS / Save again Android",
              "result": "Food logged"
            }
          ],
          "branches": [
            "New custom food has the same Autofill affordance."
          ],
          "persistence": "Captured values saved; historical propagation unknown.",
          "friction": "Buried inside editing, not necessarily a top-level scanner.",
          "evidence": "documented",
          "sources": [
            "li-03"
          ],
          "visual_ids": []
        },
        {
          "id": "li-f-photo",
          "name": "Photo recognition with repair",
          "job": "Log mixed meal",
          "preconditions": [
            "Premium",
            "English",
            "Camera permission"
          ],
          "steps": [
            {
              "screen": "li-s-snap",
              "action": "Capture/upload",
              "result": "Candidate results"
            },
            {
              "screen": "li-s-snap-review",
              "action": "Swap if offered; Edit portion",
              "result": "Adjusted candidates"
            },
            {
              "screen": "li-s-snap-review",
              "action": "Save",
              "result": "Foods logged"
            }
          ],
          "branches": [
            "Swap only appears for alternative matches."
          ],
          "persistence": "Documented save; no accuracy or durability test.",
          "friction": "Portions remain estimates requiring review.",
          "evidence": "documented",
          "sources": [
            "li-05"
          ],
          "visual_ids": [
            "li-v03"
          ]
        },
        {
          "id": "li-f-voice",
          "name": "Voice entry boundary",
          "job": "Speak meal description",
          "preconditions": [
            "Premium",
            "English"
          ],
          "steps": [
            {
              "screen": "li-s-search",
              "action": "Say It",
              "result": "Listening UI"
            },
            {
              "screen": "li-s-say",
              "action": "Speak; stop recording",
              "result": "Post-recording transition not evidenced"
            }
          ],
          "branches": [
            "Result review, correction and final save require hands-on verification."
          ],
          "persistence": "Final saved state not demonstrated.",
          "friction": "Cannot claim one-step voice logging.",
          "evidence": "inferred",
          "sources": [
            "li-01",
            "li-58"
          ],
          "visual_ids": [
            "li-v05"
          ]
        },
        {
          "id": "li-f-correct",
          "name": "Remove an incorrect item or meal",
          "job": "Repair erroneous log entries",
          "preconditions": [
            "Existing log entry"
          ],
          "steps": [
            {
              "screen": "li-s-log",
              "action": "Swipe left iOS / long-press Android; Delete",
              "result": "Item removed"
            },
            {
              "screen": "li-s-log",
              "action": "Alternatively meal menu > Clear Meal Entries; confirm",
              "result": "All meal entries removed"
            }
          ],
          "branches": [
            "Re-entry uses ordinary logging; direct post-save portion editing untested."
          ],
          "persistence": "Documented deletion; recovery not tested.",
          "friction": "No verified undo.",
          "evidence": "documented",
          "sources": [
            "li-41"
          ],
          "visual_ids": []
        },
        {
          "id": "li-f-timestamp",
          "name": "Repair eating time",
          "job": "Correct time metadata",
          "preconditions": [
            "Logged mobile food"
          ],
          "steps": [
            {
              "screen": "li-s-log",
              "action": "Tap entry",
              "result": "Food detail"
            },
            {
              "screen": "li-s-food",
              "action": "Log Details > Log Time; adjust",
              "result": "New time"
            },
            {
              "screen": "li-s-food",
              "action": "Save/OK then Save",
              "result": "Updated timestamp"
            }
          ],
          "branches": [
            "First timestamp propagates within one logging session; not Meals-tab logging."
          ],
          "persistence": "Timestamp update documented.",
          "friction": "No automatic timestamp preference.",
          "evidence": "documented",
          "sources": [
            "li-49"
          ],
          "visual_ids": []
        },
        {
          "id": "li-f-reuse",
          "name": "Reuse previous meal",
          "job": "Avoid repeated entry",
          "preconditions": [
            "Previously logged meal"
          ],
          "steps": [
            {
              "screen": "li-s-log",
              "action": "Choose destination meal",
              "result": "Add Food"
            },
            {
              "screen": "li-s-previous",
              "action": "Select past meal; Add",
              "result": "Meal re-logged"
            }
          ],
          "branches": [
            "Filter groups lunch and dinner together; preference can show all meals."
          ],
          "persistence": "New meal log documented.",
          "friction": "Documentation still mentions bottom + entry; current UI may differ.",
          "evidence": "documented",
          "sources": [
            "li-52"
          ],
          "visual_ids": []
        },
        {
          "id": "li-f-recipe",
          "name": "Build and reuse recipe",
          "job": "Model cooked batch",
          "preconditions": [
            "Manual recipe creation available to all"
          ],
          "steps": [
            {
              "screen": "li-s-recipe-list",
              "action": "Create; name",
              "result": "Builder"
            },
            {
              "screen": "li-s-recipe-builder",
              "action": "Set total yield; add ingredients; portion",
              "result": "Recipe saved"
            },
            {
              "screen": "li-s-search",
              "action": "Recipes tab; select recipe",
              "result": "Portion logging"
            }
          ],
          "branches": [
            "Meal menu can convert a logged meal into recipe; mobile only."
          ],
          "persistence": "Saved recipe; historical edit propagation untested.",
          "friction": "Yield versus consumed portion requires careful review.",
          "evidence": "documented",
          "sources": [
            "li-10",
            "li-02"
          ],
          "visual_ids": [
            "li-v10"
          ]
        },
        {
          "id": "li-f-import",
          "name": "Recover failed recipe import",
          "job": "Use recipe despite scraper failure",
          "preconditions": [
            "Recipe page available"
          ],
          "steps": [
            {
              "screen": "li-s-recipe-builder",
              "action": "If URL import fails, copy ingredients externally",
              "result": "Clipboard text"
            },
            {
              "screen": "li-s-recipe-builder",
              "action": "Text Importer; paste",
              "result": "Matched ingredients"
            }
          ],
          "branches": [
            "Final match-review/save behavior not described in troubleshooting article."
          ],
          "persistence": "Import result documented, durable save not verified.",
          "friction": "Parsing must still be checked; tier unknown.",
          "evidence": "documented",
          "sources": [
            "li-47"
          ],
          "visual_ids": []
        },
        {
          "id": "li-f-plan",
          "name": "Plan then consume food",
          "job": "Separate intention from consumption",
          "preconditions": [
            "Premium"
          ],
          "steps": [
            {
              "screen": "li-s-log",
              "action": "Navigate future date; add foods",
              "result": "Planned entries"
            },
            {
              "screen": "li-s-food",
              "action": "For today choose Mark as Planned",
              "result": "Clock/gray state"
            },
            {
              "screen": "li-s-log",
              "action": "Tap clock when eaten",
              "result": "Activated entry"
            }
          ],
          "branches": [
            "Same-day planning unavailable on web."
          ],
          "persistence": "Planned and consumed states documented.",
          "friction": "Done Logging requires no remaining planned foods for the day.",
          "evidence": "documented",
          "sources": [
            "li-11"
          ],
          "visual_ids": []
        },
        {
          "id": "li-f-review",
          "name": "Review week and insights",
          "job": "Understand adherence",
          "preconditions": [
            "Food logs; Premium and seven days for Highlights"
          ],
          "steps": [
            {
              "screen": "li-s-log",
              "action": "Tap calorie ring",
              "result": "Daily/week breakdown"
            },
            {
              "screen": "li-s-dashboard",
              "action": "Review Favorites",
              "result": "Week/macro context"
            },
            {
              "screen": "li-s-highlights",
              "action": "Scroll below Favorites",
              "result": "Generated observations"
            }
          ],
          "branches": [
            "Email reports offer separate review route."
          ],
          "persistence": "No automatic goal change documented from review.",
          "friction": "Insights are not a verified causal explanation.",
          "evidence": "documented",
          "sources": [
            "li-20",
            "li-21",
            "li-60"
          ],
          "visual_ids": [
            "li-v07"
          ]
        },
        {
          "id": "li-f-targets",
          "name": "Change target without losing history",
          "job": "Adjust nutrition strategy",
          "preconditions": [
            "Premium nutrient goals"
          ],
          "steps": [
            {
              "screen": "li-s-nutrient",
              "action": "Open goal graph; Edit/gear",
              "result": "Target editor"
            },
            {
              "screen": "li-s-nutrient",
              "action": "Change values; Save",
              "result": "New targets"
            }
          ],
          "branches": [
            "Changing date can remove earlier goal data; deleting goal removes history.",
            "Outside strategy bounds switches to Custom Strategy."
          ],
          "persistence": "Goal update documented; destructive history boundaries explicit.",
          "friction": "Export before destructive goal changes.",
          "evidence": "documented",
          "sources": [
            "li-48",
            "li-18"
          ],
          "visual_ids": []
        },
        {
          "id": "li-f-cycling",
          "name": "Redistribute weekly calories",
          "job": "Accommodate high-intake days",
          "preconditions": [
            "Premium mobile app"
          ],
          "steps": [
            {
              "screen": "li-s-profile",
              "action": "Program > Calorie Schedule",
              "result": "Schedule setup"
            },
            {
              "screen": "li-s-schedule",
              "action": "Choose days and additional allocation",
              "result": "High/low-day plan"
            },
            {
              "screen": "li-s-schedule",
              "action": "Save Schedule",
              "result": "Weekly-average-preserving schedule"
            }
          ],
          "branches": [
            "Can adjust/remove later; not macro cycling."
          ],
          "persistence": "Schedule saved.",
          "friction": "Web plan editing has restrictions when schedule active.",
          "evidence": "documented",
          "sources": [
            "li-17",
            "li-13",
            "li-12"
          ],
          "visual_ids": []
        },
        {
          "id": "li-f-sync",
          "name": "Connect health hub",
          "job": "Import activity without blind duplication",
          "preconditions": [
            "Hub installed; data source writing to it"
          ],
          "steps": [
            {
              "screen": "li-s-profile",
              "action": "Automatic Tracking",
              "result": "Service options"
            },
            {
              "screen": "li-s-health",
              "action": "Select Apple Health or Health Connect",
              "result": "Permission controls"
            },
            {
              "screen": "li-s-health",
              "action": "Choose categories; allow",
              "result": "Sync enabled"
            }
          ],
          "branches": [
            "Apple workout reading also needs Steps from iPhone or Apple Watch integration.",
            "Apple history backfill unsupported."
          ],
          "persistence": "Permission-driven sync documented, not tested.",
          "friction": "Android hub does not generate steps itself.",
          "evidence": "documented",
          "sources": [
            "li-23",
            "li-24",
            "li-34"
          ],
          "visual_ids": [
            "li-v08"
          ]
        },
        {
          "id": "li-f-exercise",
          "name": "Record workout without food credit",
          "job": "Separate activity history from budget",
          "preconditions": [
            "Manual exercise entry"
          ],
          "steps": [
            {
              "screen": "li-s-log",
              "action": "Add Workouts/Exercise",
              "result": "Exercise picker"
            },
            {
              "screen": "li-s-exercise",
              "action": "Enter details; enable Exclude from total",
              "result": "Excluded workout"
            },
            {
              "screen": "li-s-exercise",
              "action": "Add/Save",
              "result": "Log entry"
            }
          ],
          "branches": [
            "Web labels exclusion Wearing Tracker."
          ],
          "persistence": "Exercise saved without burn added.",
          "friction": "Total-burn tracker bonuses use separate logic.",
          "evidence": "documented",
          "sources": [
            "li-27",
            "li-26"
          ],
          "visual_ids": []
        },
        {
          "id": "li-f-export",
          "name": "Export before destructive changes",
          "job": "Keep personal archive",
          "preconditions": [
            "Web login"
          ],
          "steps": [
            {
              "screen": "li-s-profile",
              "action": "Open documented full-export URL in authenticated web session",
              "result": "Download"
            },
            {
              "screen": "li-s-nutrient",
              "action": "Web Goals > select goal > Export",
              "result": "All goal records"
            }
          ],
          "branches": [
            "No date-range filter; cannot re-import."
          ],
          "persistence": "Downloaded files documented; format not inspected.",
          "friction": "Export is not a restorable backup.",
          "evidence": "documented",
          "sources": [
            "li-28"
          ],
          "visual_ids": []
        },
        {
          "id": "li-f-cancel",
          "name": "Cancel renewal at purchase origin",
          "job": "Stop future billing",
          "preconditions": [
            "Identify billing provider"
          ],
          "steps": [
            {
              "screen": "li-s-purchases",
              "action": "Stripe: active subscription > Cancel Subscription",
              "result": "Confirmation prompts"
            },
            {
              "screen": "li-s-purchases",
              "action": "For Apple/Google use store subscription settings instead",
              "result": "Provider cancellation"
            }
          ],
          "branches": [
            "In-app purchase origin may be Stripe in US 2026."
          ],
          "persistence": "Benefits last until current period/trial ends.",
          "friction": "Account deletion is not a reliable substitute.",
          "evidence": "documented",
          "sources": [
            "li-30"
          ],
          "visual_ids": []
        },
        {
          "id": "li-f-delete",
          "name": "Close account safely",
          "job": "Remove account and associated data",
          "preconditions": [
            "Export if wanted; cancel store billing"
          ],
          "steps": [
            {
              "screen": "li-s-delete",
              "action": "Delete Account twice",
              "result": "Platform confirmation"
            },
            {
              "screen": "li-s-delete",
              "action": "iOS password / Android email link / web confirmation",
              "result": "Irreversible closure"
            }
          ],
          "branches": [
            "Deletion article says direct-web subscription cancels; cancellation article warns broadly. Verify billing explicitly."
          ],
          "persistence": "Account data and other FitNow app accounts removed per documentation.",
          "friction": "Device app removal also required; no recovery.",
          "evidence": "documented",
          "sources": [
            "li-29",
            "li-30"
          ],
          "visual_ids": []
        }
      ],
      "visuals": [
        {
          "id": "li-v02",
          "file": "assets/store-02.jpg",
          "source_url": "https://is1-ssl.mzstatic.com/image/thumb/PurpleSource221/v4/5b/46/f9/5b46f98d-5464-4441-0e1c-087debabe39b/SC-2.jpg/900x0w.jpg",
          "source_page": "https://apps.apple.com/us/app/lose-it-calorie-counter/id297368629",
          "title": "Daily Log",
          "platform": "iOS (store marketing composite)",
          "version_or_date": "Retrieved 2026-10-07; asset production date/build unknown. Listing metadata version 18.5.400 is not proof of screenshot version.",
          "kind": "store-marketing",
          "observations": [
            "Budget separates food and exercise; green remainder ring.",
            "Meal items are magnified in a promotional overlay, not an ordinary native card.",
            "Four persistent tabs: Dashboard, Log, Goals, Discover."
          ],
          "limitations": "Official promotional composite; enlarged overlays may obscure native layout. No interaction or successful operation tested. Annotated derivative: assets/annotated-02.jpg",
          "sources": [
            "li-55"
          ]
        },
        {
          "id": "li-v03",
          "file": "assets/store-03.jpg",
          "source_url": "https://is1-ssl.mzstatic.com/image/thumb/PurpleSource211/v4/73/54/b5/7354b5e8-ff0f-58fc-2fbe-6347980854dd/SC-3.jpg/900x0w.jpg",
          "source_page": "https://apps.apple.com/us/app/lose-it-calorie-counter/id297368629",
          "title": "Snap It camera",
          "platform": "iOS (store marketing composite)",
          "version_or_date": "Retrieved 2026-10-07; asset production date/build unknown. Listing metadata version 18.5.400 is not proof of screenshot version.",
          "kind": "store-marketing",
          "observations": [
            "Framing corners surround the meal; ingredient labels are promotional overlays.",
            "Shutter is central; gallery and help flank it.",
            "Flash and close controls occupy opposite top corners."
          ],
          "limitations": "Official promotional composite; enlarged overlays may obscure native layout. No interaction or successful operation tested. Annotated derivative: assets/annotated-03.jpg",
          "sources": [
            "li-56"
          ]
        },
        {
          "id": "li-v04",
          "file": "assets/store-04.jpg",
          "source_url": "https://is1-ssl.mzstatic.com/image/thumb/PurpleSource211/v4/59/b5/ac/59b5ac74-d510-9833-85a1-e73b0587ee5a/SC-4.jpg/900x0w.jpg",
          "source_page": "https://apps.apple.com/us/app/lose-it-calorie-counter/id297368629",
          "title": "Goals and weight progress",
          "platform": "iOS (store marketing composite)",
          "version_or_date": "Retrieved 2026-10-07; asset production date/build unknown. Listing metadata version 18.5.400 is not proof of screenshot version.",
          "kind": "store-marketing",
          "observations": [
            "Time-range selector sits above the plan summary.",
            "Enlarged metrics overlay covers part of the actual chart.",
            "Record Weight and milestone Journey remain visible below."
          ],
          "limitations": "Official promotional composite; enlarged overlays may obscure native layout. No interaction or successful operation tested. Annotated derivative: assets/annotated-04.jpg",
          "sources": [
            "li-57"
          ]
        },
        {
          "id": "li-v05",
          "file": "assets/store-05.jpg",
          "source_url": "https://is1-ssl.mzstatic.com/image/thumb/PurpleSource221/v4/5d/6a/18/5d6a1864-7bbb-7c14-0b88-bad8cabeb994/SC-5.jpg/900x0w.jpg",
          "source_page": "https://apps.apple.com/us/app/lose-it-calorie-counter/id297368629",
          "title": "Say It listening",
          "platform": "iOS (store marketing composite)",
          "version_or_date": "Retrieved 2026-10-07; asset production date/build unknown. Listing metadata version 18.5.400 is not proof of screenshot version.",
          "kind": "store-marketing",
          "observations": [
            "Listening status, partial transcript and close affordance.",
            "Stop icon centered in concentric colored circles.",
            "Large speech bubble is promotional copy, not proven editable transcript."
          ],
          "limitations": "Official promotional composite; enlarged overlays may obscure native layout. No interaction or successful operation tested. Annotated derivative: assets/annotated-05.jpg",
          "sources": [
            "li-58"
          ]
        },
        {
          "id": "li-v06",
          "file": "assets/store-06.jpg",
          "source_url": "https://is1-ssl.mzstatic.com/image/thumb/PurpleSource221/v4/12/7b/6a/127b6a1c-c772-fc07-046c-b444dde77ca0/SC-6.jpg/900x0w.jpg",
          "source_page": "https://apps.apple.com/us/app/lose-it-calorie-counter/id297368629",
          "title": "Scan It barcode",
          "platform": "iOS (store marketing composite)",
          "version_or_date": "Retrieved 2026-10-07; asset production date/build unknown. Listing metadata version 18.5.400 is not proof of screenshot version.",
          "kind": "store-marketing",
          "observations": [
            "Rectangular barcode framing window with flash and close.",
            "Enlarged nutrition result is a marketing overlay."
          ],
          "limitations": "Official promotional composite; enlarged overlays may obscure native layout. No interaction or successful operation tested. Annotated derivative: assets/annotated-06.jpg",
          "sources": [
            "li-59"
          ]
        },
        {
          "id": "li-v07",
          "file": "assets/store-07.jpg",
          "source_url": "https://is1-ssl.mzstatic.com/image/thumb/PurpleSource221/v4/10/f3/28/10f32834-5ac2-d585-95e5-9466b641af4b/SC-7.jpg/900x0w.jpg",
          "source_page": "https://apps.apple.com/us/app/lose-it-calorie-counter/id297368629",
          "title": "Dashboard nutrition favorites",
          "platform": "iOS (store marketing composite)",
          "version_or_date": "Retrieved 2026-10-07; asset production date/build unknown. Listing metadata version 18.5.400 is not proof of screenshot version.",
          "kind": "store-marketing",
          "observations": [
            "Calorie card combines daily ring with seven-day bars.",
            "Protein and fiber have separate colored goal rings.",
            "Macro chart and streak place longer-term context below."
          ],
          "limitations": "Official promotional composite; enlarged overlays may obscure native layout. No interaction or successful operation tested. Annotated derivative: assets/annotated-07.jpg",
          "sources": [
            "li-60"
          ]
        },
        {
          "id": "li-v08",
          "file": "assets/store-08.jpg",
          "source_url": "https://is1-ssl.mzstatic.com/image/thumb/PurpleSource211/v4/23/0a/03/230a03aa-568e-a2c2-eef7-e01d71d7c271/SC-8.jpg/900x0w.jpg",
          "source_page": "https://apps.apple.com/us/app/lose-it-calorie-counter/id297368629",
          "title": "Profile integrations and reports",
          "platform": "iOS (store marketing composite)",
          "version_or_date": "Retrieved 2026-10-07; asset production date/build unknown. Listing metadata version 18.5.400 is not proof of screenshot version.",
          "kind": "store-marketing",
          "observations": [
            "Automatic Tracking icons enlarged as promotional overlay.",
            "Insights are separate navigable rows.",
            "Manual and scheduled reports grouped under Export Data."
          ],
          "limitations": "Official promotional composite; enlarged overlays may obscure native layout. No interaction or successful operation tested. Annotated derivative: assets/annotated-08.jpg",
          "sources": [
            "li-61"
          ]
        },
        {
          "id": "li-v09",
          "file": "assets/store-09.jpg",
          "source_url": "https://is1-ssl.mzstatic.com/image/thumb/PurpleSource221/v4/d0/47/70/d04770c7-415d-9bdb-791f-d4e271c56e05/SC-9.jpg/900x0w.jpg",
          "source_page": "https://apps.apple.com/us/app/lose-it-calorie-counter/id297368629",
          "title": "Discover Groups",
          "platform": "iOS (store marketing composite)",
          "version_or_date": "Retrieved 2026-10-07; asset production date/build unknown. Listing metadata version 18.5.400 is not proof of screenshot version.",
          "kind": "store-marketing",
          "observations": [
            "Feed, Courses, Groups, Friends form a local tab row.",
            "Community invitation sits before the posts feed.",
            "Post action icons and comment counts shown; lower post enlarged."
          ],
          "limitations": "Official promotional composite; enlarged overlays may obscure native layout. No interaction or successful operation tested. Annotated derivative: assets/annotated-09.jpg",
          "sources": [
            "li-62"
          ]
        },
        {
          "id": "li-v10",
          "file": "assets/store-10.jpg",
          "source_url": "https://is1-ssl.mzstatic.com/image/thumb/PurpleSource221/v4/ca/7e/5d/ca7e5d86-78d0-f3aa-73fd-47890c65c5f3/SC-10.jpg/900x0w.jpg",
          "source_page": "https://apps.apple.com/us/app/lose-it-calorie-counter/id297368629",
          "title": "Recipe detail",
          "platform": "iOS (store marketing composite)",
          "version_or_date": "Retrieved 2026-10-07; asset production date/build unknown. Listing metadata version 18.5.400 is not proof of screenshot version.",
          "kind": "store-marketing",
          "observations": [
            "Recipe yield is listed beneath its name; Edit at top right.",
            "Ingredients and nutrition separated into sections.",
            "Notes, share and delete controls occupy lower page."
          ],
          "limitations": "Official promotional composite; enlarged overlays may obscure native layout. No interaction or successful operation tested. Annotated derivative: assets/annotated-10.jpg",
          "sources": [
            "li-63"
          ]
        }
      ],
      "design_patterns": [
        {
          "name": "Four-tab role separation",
          "observation": "Dashboard, Log, Goals and Discover stay visible.",
          "implication": "Separate daily entry from longitudinal review.",
          "tradeoff": "Users may confuse Dashboard metrics with Goals editing.",
          "sources": [
            "li-55",
            "li-60"
          ],
          "visual_ids": [
            "li-v02",
            "li-v07"
          ]
        },
        {
          "name": "Repair-first AI",
          "observation": "Snap It allows alternative matches and portion repair before commit.",
          "implication": "Benchmark correction, not merely initial recognition.",
          "tradeoff": "Estimated portions still demand attention.",
          "sources": [
            "li-05",
            "li-56"
          ],
          "visual_ids": [
            "li-v03"
          ]
        },
        {
          "name": "Embedded label capture",
          "observation": "Autofill sits inside nutrient editing/custom creation.",
          "implication": "Use camera as a repair tool, not only acquisition.",
          "tradeoff": "Discoverability suffers if users expect a separate scan mode.",
          "sources": [
            "li-03"
          ],
          "visual_ids": []
        },
        {
          "name": "Personal library by use",
          "observation": "Logging automatically adds to My Foods.",
          "implication": "Familiar foods become easier to retrieve without explicit saving.",
          "tradeoff": "Old accidental entries can clutter the library.",
          "sources": [
            "li-09"
          ],
          "visual_ids": []
        },
        {
          "name": "Intention versus consumption",
          "observation": "Planned entries use gray styling and clock state.",
          "implication": "Prelogging need not falsely confirm consumption.",
          "tradeoff": "Activation becomes another task; unfinished plans affect completion.",
          "sources": [
            "li-11"
          ],
          "visual_ids": []
        },
        {
          "name": "Expandable goal complexity",
          "observation": "Detailed goal controls supplement a three-nutrient Log header.",
          "implication": "Protect the primary logging surface from dense nutrition data.",
          "tradeoff": "Users must discover separate Goals and Insights areas.",
          "sources": [
            "li-20",
            "li-61"
          ],
          "visual_ids": [
            "li-v08"
          ]
        },
        {
          "name": "Budget and activity separated",
          "observation": "Workout burn may be struck through until total-burn threshold earns bonus.",
          "implication": "Prevent double counting and distinguish raw activity from credited calories.",
          "tradeoff": "Zero credit can look like broken sync.",
          "sources": [
            "li-26"
          ],
          "visual_ids": []
        },
        {
          "name": "Visible progress framing",
          "observation": "Goals combines time range, weight summary and milestone journey.",
          "implication": "Use multiple progress cues beyond a single number.",
          "tradeoff": "Displayed projections are not guaranteed outcomes.",
          "sources": [
            "li-57"
          ],
          "visual_ids": [
            "li-v04"
          ]
        },
        {
          "name": "Guidance is not prescribed meals",
          "observation": "Nutrition strategies set targets; courses are separately purchased text lessons.",
          "implication": "Differentiate settings, education and actual planning.",
          "tradeoff": "Users can expect meal recommendations that are explicitly unavailable.",
          "sources": [
            "li-19",
            "li-40",
            "li-44"
          ],
          "visual_ids": []
        }
      ],
      "questions": [
        {
          "question": "What is the exact fresh-install onboarding/paywall sequence on both platforms?",
          "why_it_matters": "Restart docs do not establish initial setup.",
          "how_to_verify": "Use permitted test accounts; capture each screen, skip and back path; do not purchase.",
          "priority": "high"
        },
        {
          "question": "Do edited nutrients or recipes change historical logs and later searches?",
          "why_it_matters": "Correction durability is central to trust.",
          "how_to_verify": "Log known item, edit, re-log, restart and compare both dates plus other device.",
          "priority": "high"
        },
        {
          "question": "How does Say It recover from a wrong food, amount or partial transcript?",
          "why_it_matters": "Only listening UI is visually evidenced.",
          "how_to_verify": "Run fixed multi-food utterances; inspect result controls and cancellation before saving.",
          "priority": "high"
        },
        {
          "question": "What survives airplane mode and reconnection?",
          "why_it_matters": "Offline cache, local logging and offline AI are different promises.",
          "how_to_verify": "Disable network after caching and after cold start; create/edit/delete; reconnect and compare.",
          "priority": "high"
        },
        {
          "question": "Is quick-add available and where?",
          "why_it_matters": "No dedicated workflow found.",
          "how_to_verify": "Inspect Add Food and meal menus in current free/Premium builds.",
          "priority": "medium"
        },
        {
          "question": "What are recipe-import gates and ingredient review controls?",
          "why_it_matters": "Troubleshooting proves fallback, not complete experience.",
          "how_to_verify": "Test URL and text with ambiguous yield/units and inaccessible recipe pages.",
          "priority": "high"
        },
        {
          "question": "Do planned foods alter calorie totals before activation?",
          "why_it_matters": "Clock state exists but accounting should be checked.",
          "how_to_verify": "Compare day header, weekly chart and reports before/after activation.",
          "priority": "high"
        },
        {
          "question": "Are current Android and iOS screens aligned with these store images?",
          "why_it_matters": "Images have unknown capture date/version.",
          "how_to_verify": "Record installed build and reproduce each captured destination.",
          "priority": "medium"
        },
        {
          "question": "Which source of activity wins when multiple hubs/devices overlap?",
          "why_it_matters": "Avoid calorie/step duplication.",
          "how_to_verify": "Connect test devices individually then together; compare raw and credited values.",
          "priority": "high"
        },
        {
          "question": "Which cancellation/deletion rule governs direct-web billing?",
          "why_it_matters": "Official deletion and cancellation wording differ.",
          "how_to_verify": "Read account purchase origin; inspect confirmation and provider status with consent, without deleting real data.",
          "priority": "high"
        },
        {
          "question": "What is the actual export schema and coverage?",
          "why_it_matters": "Documented export is not necessarily complete or re-importable.",
          "how_to_verify": "Download consenting test-account archive; enumerate files, dates, units and missing fields.",
          "priority": "high"
        },
        {
          "question": "Can goal changes remove history without sufficiently visible warning?",
          "why_it_matters": "Docs explicitly describe irreversible loss.",
          "how_to_verify": "Use disposable data, export first, edit start date and verify warned/result states.",
          "priority": "high"
        },
        {
          "question": "Is body-progress photography supported?",
          "why_it_matters": "Food photography is not body-progress photography.",
          "how_to_verify": "Inspect Goals/Profile help and current UI; do not infer from Snap It.",
          "priority": "low"
        },
        {
          "question": "How are community and health data sharing defaults exposed?",
          "why_it_matters": "Sharing custom foods differs from sharing personal logs.",
          "how_to_verify": "Inspect default visibility, friend access and integration permissions without posting.",
          "priority": "medium"
        }
      ]
    },
    {
      "slug": "macrofactor",
      "name": "MacroFactor Nutrition",
      "researched_at": "2026-10-07T11:19:04.276052+00:00",
      "scope": "Public-source product/design research of Nutrition end-to-end, with adjacent MacroFactor Workouts boundary; no signup, purchase, browser session or native app test.",
      "positioning": "Paid, ad-free nutrition logger and adaptive macro coach; vendor performance claims are not independently verified.",
      "mental_model": "Actual intake and weight → interpreted expenditure/trend → goal and program → reviewable recommendations. A Plate stages food before diary commit; reusable definitions and historical entries are distinct.",
      "platforms": [
        "iOS / iPhone",
        "Android",
        "Tablet layouts on iOS and Android documented",
        "Apple Silicon Mac app documented; not browser web app"
      ],
      "limitations": [
        "Official documentation and inspected vendor imagery, not hands-on testing.",
        "Help pages lack publication timestamps and may lag released UI.",
        "September 30, 2026 annual report supersedes legacy AI/label-scanner descriptions.",
        "Real media are vendor-composed device images; exact app versions unknown.",
        "No efficacy, latency, accessibility, AI accuracy, offline reconciliation, export completeness or deletion retention measurement.",
        "App-store checkout, current OS minimums and current watch-platform parity not verified."
      ],
      "sources": [
        {
          "id": "mf-01",
          "title": "Get to Know Your Dashboard | MacroFactor",
          "url": "https://help.macrofactorapp.com/en/articles/22-get-to-know-your-dashboard",
          "retrieved_at": "2026-10-07T11:19:04.276052+00:00",
          "evidence_type": "official-help",
          "published_or_updated": null
        },
        {
          "id": "mf-02",
          "title": "Expenditure | MacroFactor",
          "url": "https://help.macrofactorapp.com/en/articles/20-expenditure",
          "retrieved_at": "2026-10-07T11:19:04.276052+00:00",
          "evidence_type": "official-help",
          "published_or_updated": null
        },
        {
          "id": "mf-03",
          "title": "Weight Trend | MacroFactor",
          "url": "https://help.macrofactorapp.com/en/articles/21-weight-trend",
          "retrieved_at": "2026-10-07T11:19:04.276052+00:00",
          "evidence_type": "official-help",
          "published_or_updated": null
        },
        {
          "id": "mf-04",
          "title": "How to Log Food in MacroFactor | MacroFactor",
          "url": "https://help.macrofactorapp.com/en/articles/215-how-to-log-food-in-macrofactor",
          "retrieved_at": "2026-10-07T11:19:04.276052+00:00",
          "evidence_type": "official-help",
          "published_or_updated": null
        },
        {
          "id": "mf-05",
          "title": "AI Food Logging | MacroFactor",
          "url": "https://help.macrofactorapp.com/en/articles/258-ai-food-logging",
          "retrieved_at": "2026-10-07T11:19:04.276052+00:00",
          "evidence_type": "official-help",
          "published_or_updated": null
        },
        {
          "id": "mf-06",
          "title": "Log Foods with Describe | MacroFactor",
          "url": "https://help.macrofactorapp.com/en/articles/216-log-foods-with-describe",
          "retrieved_at": "2026-10-07T11:19:04.276052+00:00",
          "evidence_type": "official-help",
          "published_or_updated": null
        },
        {
          "id": "mf-07",
          "title": "Label Scanner | MacroFactor",
          "url": "https://help.macrofactorapp.com/en/articles/213-label-scanner",
          "retrieved_at": "2026-10-07T11:19:04.276052+00:00",
          "evidence_type": "official-help",
          "published_or_updated": null
        },
        {
          "id": "mf-08",
          "title": "Edit Quantities of Foods You've Already Logged, and View Nutritional Values for Foods on Your Timeline | MacroFactor",
          "url": "https://help.macrofactorapp.com/en/articles/98-edit-quantities-of-foods-you-ve-already-logged-and-view-nutritional-values-for-foods-on-your-timeline",
          "retrieved_at": "2026-10-07T11:19:04.276052+00:00",
          "evidence_type": "official-help",
          "published_or_updated": null
        },
        {
          "id": "mf-09",
          "title": "Copy and Paste | MacroFactor",
          "url": "https://help.macrofactorapp.com/en/articles/95-copy-and-paste",
          "retrieved_at": "2026-10-07T11:19:04.276052+00:00",
          "evidence_type": "official-help",
          "published_or_updated": null
        },
        {
          "id": "mf-10",
          "title": "Create and Add a Custom Recipe | MacroFactor",
          "url": "https://help.macrofactorapp.com/en/articles/6-create-and-add-a-custom-recipe",
          "retrieved_at": "2026-10-07T11:19:04.276052+00:00",
          "evidence_type": "official-help",
          "published_or_updated": null
        },
        {
          "id": "mf-11",
          "title": "Import Recipes from Link | MacroFactor",
          "url": "https://help.macrofactorapp.com/en/articles/259-import-recipes-from-link",
          "retrieved_at": "2026-10-07T11:19:04.276052+00:00",
          "evidence_type": "official-help",
          "published_or_updated": null
        },
        {
          "id": "mf-12",
          "title": "Import Recipes with AI | MacroFactor",
          "url": "https://help.macrofactorapp.com/en/articles/398-import-recipes-with-ai",
          "retrieved_at": "2026-10-07T11:19:04.276052+00:00",
          "evidence_type": "official-help",
          "published_or_updated": null
        },
        {
          "id": "mf-13",
          "title": "Does Editing a Recipe or Custom Food Item Affect My Food Log History? | MacroFactor",
          "url": "https://help.macrofactorapp.com/en/articles/240-does-editing-a-recipe-or-custom-food-item-affect-my-food-log-history",
          "retrieved_at": "2026-10-07T11:19:04.276052+00:00",
          "evidence_type": "official-help",
          "published_or_updated": null
        },
        {
          "id": "mf-14",
          "title": "Save a Meal For Later Use | MacroFactor",
          "url": "https://help.macrofactorapp.com/en/articles/239-save-a-meal-for-later-use",
          "retrieved_at": "2026-10-07T11:19:04.276052+00:00",
          "evidence_type": "official-help",
          "published_or_updated": null
        },
        {
          "id": "mf-15",
          "title": "Set a New Goal | MacroFactor",
          "url": "https://help.macrofactorapp.com/en/articles/90-set-a-new-goal",
          "retrieved_at": "2026-10-07T11:19:04.276052+00:00",
          "evidence_type": "official-help",
          "published_or_updated": null
        },
        {
          "id": "mf-16",
          "title": "Program Styles | MacroFactor",
          "url": "https://help.macrofactorapp.com/en/articles/91-program-styles",
          "retrieved_at": "2026-10-07T11:19:04.276052+00:00",
          "evidence_type": "official-help",
          "published_or_updated": null
        },
        {
          "id": "mf-17",
          "title": "Create a New Macro Program | MacroFactor",
          "url": "https://help.macrofactorapp.com/en/articles/242-create-a-new-macro-program",
          "retrieved_at": "2026-10-07T11:19:04.276052+00:00",
          "evidence_type": "official-help",
          "published_or_updated": null
        },
        {
          "id": "mf-18",
          "title": "Introduction to Check-Ins and Coaching Modules | MacroFactor",
          "url": "https://help.macrofactorapp.com/en/articles/247-introduction-to-check-ins-and-coaching-modules",
          "retrieved_at": "2026-10-07T11:19:04.276052+00:00",
          "evidence_type": "official-help",
          "published_or_updated": null
        },
        {
          "id": "mf-19",
          "title": "Coaching Module: Partial Logging | MacroFactor",
          "url": "https://help.macrofactorapp.com/en/articles/248-coaching-module-partial-logging",
          "retrieved_at": "2026-10-07T11:19:04.276052+00:00",
          "evidence_type": "official-help",
          "published_or_updated": null
        },
        {
          "id": "mf-20",
          "title": "Coaching Module: Program Update | MacroFactor",
          "url": "https://help.macrofactorapp.com/en/articles/252-coaching-module-program-update",
          "retrieved_at": "2026-10-07T11:19:04.276052+00:00",
          "evidence_type": "official-help",
          "published_or_updated": null
        },
        {
          "id": "mf-21",
          "title": "Integrations | MacroFactor",
          "url": "https://help.macrofactorapp.com/en/articles/102-integrations",
          "retrieved_at": "2026-10-07T11:19:04.276052+00:00",
          "evidence_type": "official-help",
          "published_or_updated": null
        },
        {
          "id": "mf-22",
          "title": "Connect Health Connect or Apple Health | MacroFactor",
          "url": "https://help.macrofactorapp.com/en/articles/65-connect-health-connect-or-apple-health",
          "retrieved_at": "2026-10-07T11:19:04.276052+00:00",
          "evidence_type": "official-help",
          "published_or_updated": null
        },
        {
          "id": "mf-23",
          "title": "Export Your Data | MacroFactor",
          "url": "https://help.macrofactorapp.com/en/articles/68-export-your-data",
          "retrieved_at": "2026-10-07T11:19:04.276052+00:00",
          "evidence_type": "official-help",
          "published_or_updated": null
        },
        {
          "id": "mf-24",
          "title": "How to Permanently Delete Your Account and Data | MacroFactor",
          "url": "https://help.macrofactorapp.com/en/articles/66-how-to-permanently-delete-your-account-and-data",
          "retrieved_at": "2026-10-07T11:19:04.276052+00:00",
          "evidence_type": "official-help",
          "published_or_updated": null
        },
        {
          "id": "mf-25",
          "title": "Manage Your Subscription | MacroFactor",
          "url": "https://help.macrofactorapp.com/en/articles/71-manage-your-subscription",
          "retrieved_at": "2026-10-07T11:19:04.276052+00:00",
          "evidence_type": "official-help",
          "published_or_updated": null
        },
        {
          "id": "mf-26",
          "title": "How MacroFactor Subscriptions and Bundles Work | MacroFactor",
          "url": "https://help.macrofactorapp.com/en/articles/393-how-macrofactor-subscriptions-and-bundles-work",
          "retrieved_at": "2026-10-07T11:19:04.276052+00:00",
          "evidence_type": "official-help",
          "published_or_updated": null
        },
        {
          "id": "mf-27",
          "title": "Does MacroFactor have an Offline Mode? | MacroFactor",
          "url": "https://help.macrofactorapp.com/en/articles/28-does-macrofactor-have-an-offline-mode",
          "retrieved_at": "2026-10-07T11:19:04.276052+00:00",
          "evidence_type": "official-help",
          "published_or_updated": null
        },
        {
          "id": "mf-28",
          "title": "Does MacroFactor use Energy Expenditure Data from my Wearable Activity Tracker? | MacroFactor",
          "url": "https://help.macrofactorapp.com/en/articles/33-does-macrofactor-use-energy-expenditure-data-from-my-wearable-activity-tracker",
          "retrieved_at": "2026-10-07T11:19:04.276052+00:00",
          "evidence_type": "official-help",
          "published_or_updated": null
        },
        {
          "id": "mf-29",
          "title": "How to Log Body Measurements | MacroFactor",
          "url": "https://help.macrofactorapp.com/en/articles/120-how-to-log-body-measurements",
          "retrieved_at": "2026-10-07T11:19:04.276052+00:00",
          "evidence_type": "official-help",
          "published_or_updated": null
        },
        {
          "id": "mf-30",
          "title": "How to Add Progress Photos | MacroFactor",
          "url": "https://help.macrofactorapp.com/en/articles/121-how-to-add-progress-photos",
          "retrieved_at": "2026-10-07T11:19:04.276052+00:00",
          "evidence_type": "official-help",
          "published_or_updated": null
        },
        {
          "id": "mf-31",
          "title": "How to View Micronutrient Intake Over Time | MacroFactor",
          "url": "https://help.macrofactorapp.com/en/articles/131-how-to-view-micronutrient-intake-over-time",
          "retrieved_at": "2026-10-07T11:19:04.276052+00:00",
          "evidence_type": "official-help",
          "published_or_updated": null
        },
        {
          "id": "mf-32",
          "title": "What is the Nutrient Completeness Score? | MacroFactor",
          "url": "https://help.macrofactorapp.com/en/articles/135-what-is-the-nutrient-completeness-score",
          "retrieved_at": "2026-10-07T11:19:04.276052+00:00",
          "evidence_type": "official-help",
          "published_or_updated": null
        },
        {
          "id": "mf-33",
          "title": "Set Custom Nutrient Goals | MacroFactor",
          "url": "https://help.macrofactorapp.com/en/articles/136-set-custom-nutrient-goals",
          "retrieved_at": "2026-10-07T11:19:04.276052+00:00",
          "evidence_type": "official-help",
          "published_or_updated": null
        },
        {
          "id": "mf-34",
          "title": "Track a Fasting Day | MacroFactor",
          "url": "https://help.macrofactorapp.com/en/articles/16-track-a-fasting-day",
          "retrieved_at": "2026-10-07T11:19:04.276052+00:00",
          "evidence_type": "official-help",
          "published_or_updated": null
        },
        {
          "id": "mf-35",
          "title": "iPhone Widgets | MacroFactor",
          "url": "https://help.macrofactorapp.com/en/articles/211-iphone-widgets",
          "retrieved_at": "2026-10-07T11:19:04.276052+00:00",
          "evidence_type": "official-help",
          "published_or_updated": null
        },
        {
          "id": "mf-36",
          "title": "Android Widgets | MacroFactor",
          "url": "https://help.macrofactorapp.com/en/articles/212-android-widgets",
          "retrieved_at": "2026-10-07T11:19:04.276052+00:00",
          "evidence_type": "official-help",
          "published_or_updated": null
        },
        {
          "id": "mf-37",
          "title": "Favorite Foods | MacroFactor",
          "url": "https://help.macrofactorapp.com/en/articles/257-favorite-foods",
          "retrieved_at": "2026-10-07T11:19:04.276052+00:00",
          "evidence_type": "official-help",
          "published_or_updated": null
        },
        {
          "id": "mf-38",
          "title": "Water | MacroFactor",
          "url": "https://help.macrofactorapp.com/en/articles/195-water",
          "retrieved_at": "2026-10-07T11:19:04.276052+00:00",
          "evidence_type": "official-help",
          "published_or_updated": null
        },
        {
          "id": "mf-39",
          "title": "Log Food to Future Days | MacroFactor",
          "url": "https://help.macrofactorapp.com/en/articles/51-log-food-to-future-days",
          "retrieved_at": "2026-10-07T11:19:04.276052+00:00",
          "evidence_type": "official-help",
          "published_or_updated": null
        },
        {
          "id": "mf-40",
          "title": "Create and Add a Custom Food | MacroFactor",
          "url": "https://help.macrofactorapp.com/en/articles/5-create-and-add-a-custom-food",
          "retrieved_at": "2026-10-07T11:19:04.276052+00:00",
          "evidence_type": "official-help",
          "published_or_updated": null
        },
        {
          "id": "mf-41",
          "title": "Explode Recipes  | MacroFactor",
          "url": "https://help.macrofactorapp.com/en/articles/3-explode-recipes",
          "retrieved_at": "2026-10-07T11:19:04.276052+00:00",
          "evidence_type": "official-help",
          "published_or_updated": null
        },
        {
          "id": "mf-42",
          "title": "Pin Nutrients to the Dashboard | MacroFactor",
          "url": "https://help.macrofactorapp.com/en/articles/129-pin-nutrients-to-the-dashboard",
          "retrieved_at": "2026-10-07T11:19:04.276052+00:00",
          "evidence_type": "official-help",
          "published_or_updated": null
        },
        {
          "id": "mf-43",
          "title": "How to Import your Step Count | MacroFactor",
          "url": "https://help.macrofactorapp.com/en/articles/255-how-to-import-your-step-count",
          "retrieved_at": "2026-10-07T11:19:04.276052+00:00",
          "evidence_type": "official-help",
          "published_or_updated": null
        },
        {
          "id": "mf-44",
          "title": "Join our Communities | MacroFactor",
          "url": "https://help.macrofactorapp.com/en/articles/107-join-our-communities",
          "retrieved_at": "2026-10-07T11:19:04.276052+00:00",
          "evidence_type": "official-help",
          "published_or_updated": null
        },
        {
          "id": "mf-45",
          "title": "Welcome To MacroFactor - MacroFactor",
          "url": "https://macrofactor.com/welcome/",
          "retrieved_at": "2026-10-07T11:19:04.276052+00:00",
          "evidence_type": "official-marketing",
          "published_or_updated": "2025-09-19T16:48:21+00:00"
        },
        {
          "id": "mf-46",
          "title": "MacroFactor app – Smart Macro Tracker & Diet Coach",
          "url": "https://macrofactor.com/macrofactor/",
          "retrieved_at": "2026-10-07T11:19:04.276052+00:00",
          "evidence_type": "official-marketing",
          "published_or_updated": "2026-09-29T22:53:57+00:00"
        },
        {
          "id": "mf-47",
          "title": "Food Logging Upgrade, Live Activity, and How to Use Warm-Ups in Your Lifting Programs - MacroFactor",
          "url": "https://macrofactor.com/mm-may-2026/",
          "retrieved_at": "2026-10-07T11:19:04.276052+00:00",
          "evidence_type": "official-marketing",
          "published_or_updated": "2026-05-25T16:00:34+00:00"
        },
        {
          "id": "mf-48",
          "title": "The 2026 MacroFactor Annual Report - MacroFactor",
          "url": "https://macrofactor.com/annual-report-2026/",
          "retrieved_at": "2026-10-07T11:19:04.276052+00:00",
          "evidence_type": "official-marketing",
          "published_or_updated": "2026-09-30T18:27:44+00:00"
        },
        {
          "id": "mf-49",
          "title": "MacroFactor Workouts - MacroFactor",
          "url": "https://macrofactor.com/workouts/",
          "retrieved_at": "2026-10-07T11:19:04.276052+00:00",
          "evidence_type": "official-marketing",
          "published_or_updated": "2026-09-29T22:54:56+00:00"
        },
        {
          "id": "mf-50",
          "title": "Expenditure Modifiers | MacroFactor",
          "url": "https://help.macrofactorapp.com/en/articles/274-expenditure-modifiers",
          "retrieved_at": "2026-10-07T11:19:04.276052+00:00",
          "evidence_type": "official-help",
          "published_or_updated": null
        }
      ],
      "features": [
        {
          "key": "onboarding",
          "label": "Guided setup",
          "status": "documented",
          "tier": "Paid Nutrition subscription or eligible bundle; trial available",
          "platforms": "iOS and Android; device parity not hands-on verified",
          "detail": "Initial guided setup creates a Coached program; personal inputs seed expenditure until logged data accumulates.",
          "sources": [
            "mf-16",
            "mf-45"
          ]
        },
        {
          "key": "goal_setting",
          "label": "Weight goal",
          "status": "documented",
          "tier": "Paid Nutrition subscription or eligible bundle; trial available",
          "platforms": "iOS and Android; device parity not hands-on verified",
          "detail": "Lose, maintain, or gain; rate and target weight are separate from macro-program preferences.",
          "sources": [
            "mf-15",
            "mf-17"
          ]
        },
        {
          "key": "calorie_budget",
          "label": "Adaptive energy budget",
          "status": "documented",
          "tier": "Paid Nutrition subscription or eligible bundle; trial available",
          "platforms": "iOS and Android; device parity not hands-on verified",
          "detail": "Estimated expenditure and goal inform weekly recommendations; not exercise-calorie reimbursement.",
          "sources": [
            "mf-02",
            "mf-28"
          ]
        },
        {
          "key": "macro_targets",
          "label": "Three program styles",
          "status": "documented",
          "tier": "Paid Nutrition subscription or eligible bundle; trial available",
          "platforms": "iOS and Android; device parity not hands-on verified",
          "detail": "Coached sets targets; Collaborative distributes a coached weekly budget; Manual leaves targets to the user.",
          "sources": [
            "mf-16"
          ]
        },
        {
          "key": "micronutrients",
          "label": "Nutrient Explorer",
          "status": "documented",
          "tier": "Paid Nutrition subscription or eligible bundle; trial available",
          "platforms": "iOS and Android; device parity not hands-on verified",
          "detail": "Historical charts, custom ranges and nutrient-specific reporting-completeness indicators.",
          "sources": [
            "mf-31",
            "mf-32",
            "mf-33"
          ]
        },
        {
          "key": "food_search",
          "label": "Unified food search",
          "status": "documented",
          "tier": "Paid Nutrition subscription or eligible bundle; trial available",
          "platforms": "iOS and Android; device parity not hands-on verified",
          "detail": "Search integrates history, custom, common and branded food categories.",
          "sources": [
            "mf-04"
          ]
        },
        {
          "key": "verified_database",
          "label": "Verified food database",
          "status": "documented",
          "tier": "Paid Nutrition subscription or eligible bundle; trial available",
          "platforms": "iOS and Android; device parity not hands-on verified",
          "detail": "Vendor markets verified entries; common-food completeness differs from branded label data. No independent database audit.",
          "sources": [
            "mf-46",
            "mf-04"
          ]
        },
        {
          "key": "barcode_scan",
          "label": "Barcode lookup",
          "status": "documented",
          "tier": "Paid Nutrition subscription or eligible bundle; trial available",
          "platforms": "iOS and Android; device parity not hands-on verified",
          "detail": "Scan retrieves a food to review; failed lookup offers label capture.",
          "sources": [
            "mf-04",
            "mf-07"
          ]
        },
        {
          "key": "label_scan",
          "label": "Nutrition-label scan",
          "status": "documented",
          "tier": "Paid Nutrition subscription or eligible bundle; trial available",
          "platforms": "iOS and Android; device parity not hands-on verified",
          "detail": "September 2026 report says upgraded scanner supports varied languages/formats; older help favors US/Canada.",
          "sources": [
            "mf-07",
            "mf-48"
          ]
        },
        {
          "key": "photo_logging",
          "label": "AI meal photos",
          "status": "documented",
          "tier": "Paid Nutrition subscription or eligible bundle; trial available",
          "platforms": "iOS and Android; device parity not hands-on verified",
          "detail": "Current Snap/Describe modes accept photos; editable food/ingredient review precedes logging.",
          "sources": [
            "mf-05",
            "mf-47"
          ]
        },
        {
          "key": "voice_logging",
          "label": "Dictated food descriptions",
          "status": "documented",
          "tier": "Paid Nutrition subscription or eligible bundle; trial available",
          "platforms": "iOS and Android; device parity not hands-on verified",
          "detail": "Documented voice path uses the keyboard microphone to dictate Describe text, not proven independent voice conversational UI.",
          "sources": [
            "mf-06"
          ]
        },
        {
          "key": "text_ai",
          "label": "Describe text and mixed input",
          "status": "documented",
          "tier": "Paid Nutrition subscription or eligible bundle; trial available",
          "platforms": "iOS and Android; device parity not hands-on verified",
          "detail": "May 2026 upgrade adds multiple images and more specific text instructions. Legacy Describe help predates this.",
          "sources": [
            "mf-47",
            "mf-06"
          ]
        },
        {
          "key": "quick_add",
          "label": "Quick calorie/macro entry",
          "status": "documented",
          "tier": "Paid Nutrition subscription or eligible bundle; trial available",
          "platforms": "iOS and Android; device parity not hands-on verified",
          "detail": "Quick Add stages energy/macros without a reusable searchable custom item.",
          "sources": [
            "mf-04"
          ]
        },
        {
          "key": "portion_edit",
          "label": "Serving and unit correction",
          "status": "documented",
          "tier": "Paid Nutrition subscription or eligible bundle; trial available",
          "platforms": "iOS and Android; device parity not hands-on verified",
          "detail": "Quantity and unit editing is available on food details and logged entries.",
          "sources": [
            "mf-08"
          ]
        },
        {
          "key": "meal_correction",
          "label": "Logged meal repairs",
          "status": "documented",
          "tier": "Paid Nutrition subscription or eligible bundle; trial available",
          "platforms": "iOS and Android; device parity not hands-on verified",
          "detail": "Edit logged portions; base recipe changes do not repair historical snapshots: delete and relog those entries.",
          "sources": [
            "mf-08",
            "mf-13"
          ]
        },
        {
          "key": "history_favorites",
          "label": "History and portion favorites",
          "status": "documented",
          "tier": "Paid Nutrition subscription or eligible bundle; trial available",
          "platforms": "iOS and Android; device parity not hands-on verified",
          "detail": "Favorites preserve a serving size and can be renamed, reordered, or saved in multiple portions.",
          "sources": [
            "mf-37"
          ]
        },
        {
          "key": "copy_meals",
          "label": "Multi-date copying",
          "status": "documented",
          "tier": "Paid Nutrition subscription or eligible bundle; trial available",
          "platforms": "iOS and Android; device parity not hands-on verified",
          "detail": "Copy food, hour or day; paste to selected dates or keep clipboard with multi-paste inline.",
          "sources": [
            "mf-09"
          ]
        },
        {
          "key": "saved_meals",
          "label": "Recipes as meal bundles",
          "status": "documented",
          "tier": "Paid Nutrition subscription or eligible bundle; trial available",
          "platforms": "iOS and Android; device parity not hands-on verified",
          "detail": "A saved meal is represented as a recipe; explode ingredients to customize a single instance.",
          "sources": [
            "mf-14",
            "mf-41"
          ]
        },
        {
          "key": "recipes",
          "label": "Custom recipe builder",
          "status": "documented",
          "tier": "Paid Nutrition subscription or eligible bundle; trial available",
          "platforms": "iOS and Android; device parity not hands-on verified",
          "detail": "Servings, ingredients, cooked total weight, notes and preparation; separate create versus create-and-add.",
          "sources": [
            "mf-10"
          ]
        },
        {
          "key": "recipe_import",
          "label": "URL and AI recipe import",
          "status": "documented",
          "tier": "Paid Nutrition subscription or eligible bundle; trial available",
          "platforms": "iOS and Android; device parity not hands-on verified",
          "detail": "Link import or image/text AI fills editable recipe fields before saving.",
          "sources": [
            "mf-11",
            "mf-12"
          ]
        },
        {
          "key": "meal_planning",
          "label": "Prelogging future dates",
          "status": "limited",
          "tier": "Paid Nutrition subscription or eligible bundle; trial available",
          "platforms": "iOS and Android; device parity not hands-on verified",
          "detail": "Future logging and multi-date paste documented; generated meal plans and grocery-list workflow not established.",
          "sources": [
            "mf-39",
            "mf-09"
          ]
        },
        {
          "key": "water",
          "label": "Water nutrient tracking",
          "status": "limited",
          "tier": "Paid Nutrition subscription or eligible bundle; trial available",
          "platforms": "iOS and Android; device parity not hands-on verified",
          "detail": "Water exists in Nutrient Explorer; branded foods often omit water data. Dedicated drink-button workflow not verified.",
          "sources": [
            "mf-38"
          ]
        },
        {
          "key": "weight_trend",
          "label": "Smoothed weight analytics",
          "status": "documented",
          "tier": "Paid Nutrition subscription or eligible bundle; trial available",
          "platforms": "iOS and Android; device parity not hands-on verified",
          "detail": "Trend weight is distinguished from raw scale readings and informs expenditure.",
          "sources": [
            "mf-03"
          ]
        },
        {
          "key": "body_metrics",
          "label": "Body measurements",
          "status": "documented",
          "tier": "Paid Nutrition subscription or eligible bundle; trial available",
          "platforms": "iOS and Android; device parity not hands-on verified",
          "detail": "Body Metrics > See All > Full Body permits dated measurement entry.",
          "sources": [
            "mf-29"
          ]
        },
        {
          "key": "progress_photos",
          "label": "Progress pictures",
          "status": "documented",
          "tier": "Paid Nutrition subscription or eligible bundle; trial available",
          "platforms": "iOS and Android; device parity not hands-on verified",
          "detail": "Front/side/back image entries with crop/rotation and date selection.",
          "sources": [
            "mf-30"
          ]
        },
        {
          "key": "exercise_logging",
          "label": "Nutrition/workout boundary",
          "status": "limited",
          "tier": "Paid Nutrition subscription or eligible bundle; trial available",
          "platforms": "iOS and Android; device parity not hands-on verified",
          "detail": "Detailed set/rep logging belongs to separate MacroFactor Workouts. Nutrition has step tracking, not a demonstrated workout logger.",
          "sources": [
            "mf-49",
            "mf-43"
          ]
        },
        {
          "key": "wearable_sync",
          "label": "Wearable-related data",
          "status": "limited",
          "tier": "Paid Nutrition subscription or eligible bundle; trial available",
          "platforms": "iOS and Android; device parity not hands-on verified",
          "detail": "Health hubs can relay measurements and steps; wearable calorie-burn estimates are explicitly not used for targets.",
          "sources": [
            "mf-22",
            "mf-28",
            "mf-50"
          ]
        },
        {
          "key": "health_platform_sync",
          "label": "Health hubs",
          "status": "documented",
          "tier": "Paid Nutrition subscription or eligible bundle; trial available",
          "platforms": "iOS and Android; device parity not hands-on verified",
          "detail": "Apple Health on iOS; Health Connect on Android. Fitbit direct integration removed.",
          "sources": [
            "mf-21",
            "mf-22"
          ]
        },
        {
          "key": "adaptive_targets",
          "label": "Adaptive recommendations",
          "status": "documented",
          "tier": "Paid Nutrition subscription or eligible bundle; trial available",
          "platforms": "iOS and Android; device parity not hands-on verified",
          "detail": "Nutrition/weight-based expenditure, with optional step-informed and predictive-goal modifiers.",
          "sources": [
            "mf-02",
            "mf-50"
          ]
        },
        {
          "key": "weekly_review",
          "label": "Check-in modules",
          "status": "documented",
          "tier": "Paid Nutrition subscription or eligible bundle; trial available",
          "platforms": "iOS and Android; device parity not hands-on verified",
          "detail": "Weekly Strategy review can repair incomplete days and propose target changes; modules skippable, Fast Check-In optional.",
          "sources": [
            "mf-18",
            "mf-19",
            "mf-20"
          ]
        },
        {
          "key": "fasting",
          "label": "Zero-calorie day semantics",
          "status": "limited",
          "tier": "Paid Nutrition subscription or eligible bundle; trial available",
          "platforms": "iOS and Android; device parity not hands-on verified",
          "detail": "Fasted day flags distinguish zero intake from missing data; fasting timer not established.",
          "sources": [
            "mf-34"
          ]
        },
        {
          "key": "reminders",
          "label": "Check-in prompt",
          "status": "limited",
          "tier": "Paid Nutrition subscription or eligible bundle; trial available",
          "platforms": "iOS and Android; device parity not hands-on verified",
          "detail": "Weekly Strategy badge/prompt documented; customizable meal/water push schedules not established.",
          "sources": [
            "mf-18"
          ]
        },
        {
          "key": "widgets",
          "label": "OS widgets",
          "status": "documented",
          "tier": "Paid Nutrition subscription or eligible bundle; trial available",
          "platforms": "iPhone; Android home screen",
          "detail": "iPhone home and lock-screen widgets; Android home widgets with resize and remove/re-add customization.",
          "sources": [
            "mf-35",
            "mf-36"
          ]
        },
        {
          "key": "offline_logging",
          "label": "Temporary offline access",
          "status": "limited",
          "tier": "Paid Nutrition subscription or eligible bundle; trial available",
          "platforms": "iOS and Android; device parity not hands-on verified",
          "detail": "Cached/history food search and local edits available; complete database search requires connection. Not a true offline mode.",
          "sources": [
            "mf-27"
          ]
        },
        {
          "key": "data_export",
          "label": "Spreadsheet exports",
          "status": "documented",
          "tier": "Paid Nutrition subscription or eligible bundle; trial available",
          "platforms": "iOS and Android; device parity not hands-on verified",
          "detail": "Quick Export summarizes progress; Granular Export selects data types.",
          "sources": [
            "mf-23"
          ]
        },
        {
          "key": "data_delete",
          "label": "Account/data deletion",
          "status": "documented",
          "tier": "Account control; available with active or inactive subscription",
          "platforms": "iOS and Android; device parity not hands-on verified",
          "detail": "Active and inactive-subscription routes; deletion does not cancel store billing.",
          "sources": [
            "mf-24"
          ]
        },
        {
          "key": "subscription_cancel",
          "label": "Store-managed cancellation",
          "status": "documented",
          "tier": "Paid Nutrition subscription or eligible bundle; trial available",
          "platforms": "iOS and Android; device parity not hands-on verified",
          "detail": "Renewal visible in app; cancellation and payment managed through originating phone app store.",
          "sources": [
            "mf-25"
          ]
        },
        {
          "key": "web_app",
          "label": "Browser application",
          "status": "not-found",
          "tier": "Not applicable / unverified",
          "platforms": "iOS and Android; device parity not hands-on verified",
          "detail": "No browser nutrition app established. Tablet and Apple Silicon Mac app layouts are not proof of a web application.",
          "sources": [
            "mf-48"
          ]
        },
        {
          "key": "social",
          "label": "Community and sharing",
          "status": "limited",
          "tier": "Paid Nutrition subscription or eligible bundle; trial available",
          "platforms": "iOS and Android; device parity not hands-on verified",
          "detail": "External Facebook/Reddit links documented; no native community feed established.",
          "sources": [
            "mf-44"
          ]
        },
        {
          "key": "coaching",
          "label": "Automated nutrition coach",
          "status": "documented",
          "tier": "Paid Nutrition subscription or eligible bundle; trial available",
          "platforms": "iOS and Android; device parity not hands-on verified",
          "detail": "Algorithms and modules provide guidance; not human coaching. Marketing FAQ says no built-in client management portal.",
          "sources": [
            "mf-18",
            "mf-46"
          ]
        }
      ],
      "screens": [
        {
          "id": "mf-s-onboarding",
          "name": "Guided profile/program setup",
          "area": "Setup",
          "entry": "First account setup",
          "primary_actions": [
            "Answer guided questions",
            "Create coached program"
          ],
          "states": [
            "Initial estimate; no history"
          ],
          "platform": "iOS and Android; device parity not hands-on verified",
          "tier": "Paid Nutrition subscription or eligible bundle; trial available",
          "evidence": "documented",
          "sources": [
            "mf-16",
            "mf-45"
          ],
          "visual_ids": []
        },
        {
          "id": "mf-s-dashboard",
          "name": "Dashboard",
          "area": "Home",
          "entry": "Dashboard tab",
          "primary_actions": [
            "Review weekly bars",
            "Open insight cards"
          ],
          "states": [
            "Consumed",
            "Remaining"
          ],
          "platform": "iOS and Android; device parity not hands-on verified",
          "tier": "Paid Nutrition subscription or eligible bundle; trial available",
          "evidence": "visual",
          "sources": [
            "mf-01"
          ],
          "visual_ids": [
            "mf-v01"
          ]
        },
        {
          "id": "mf-s-search",
          "name": "Food search",
          "area": "Logging",
          "entry": "Search or + > Search",
          "primary_actions": [
            "Search",
            "Select food",
            "Multi-add"
          ],
          "states": [
            "History",
            "Common",
            "Custom",
            "Branded"
          ],
          "platform": "iOS and Android; device parity not hands-on verified",
          "tier": "Paid Nutrition subscription or eligible bundle; trial available",
          "evidence": "documented",
          "sources": [
            "mf-04"
          ],
          "visual_ids": []
        },
        {
          "id": "mf-s-food",
          "name": "Food detail / portion editor",
          "area": "Logging",
          "entry": "Select food or Edit logged food",
          "primary_actions": [
            "Change units",
            "Change quantity",
            "Review nutrition"
          ],
          "states": [
            "Keyboard open",
            "Portion selected"
          ],
          "platform": "iOS and Android; device parity not hands-on verified",
          "tier": "Paid Nutrition subscription or eligible bundle; trial available",
          "evidence": "visual",
          "sources": [
            "mf-08"
          ],
          "visual_ids": [
            "mf-v02"
          ]
        },
        {
          "id": "mf-s-plate",
          "name": "Plate / AI Plate",
          "area": "Logging",
          "entry": "Stage food or analyze photo",
          "primary_actions": [
            "Review items",
            "Expand ingredients",
            "Log Foods"
          ],
          "states": [
            "Staged",
            "Expanded recipe"
          ],
          "platform": "iOS and Android; device parity not hands-on verified",
          "tier": "Paid Nutrition subscription or eligible bundle; trial available",
          "evidence": "visual",
          "sources": [
            "mf-05",
            "mf-41"
          ],
          "visual_ids": [
            "mf-v12"
          ]
        },
        {
          "id": "mf-s-scan",
          "name": "Barcode/label scanner",
          "area": "Logging",
          "entry": "Food logger > Scan",
          "primary_actions": [
            "Scan barcode",
            "Switch to label"
          ],
          "states": [
            "Found",
            "Not found → label"
          ],
          "platform": "iOS and Android; device parity not hands-on verified",
          "tier": "Paid Nutrition subscription or eligible bundle; trial available",
          "evidence": "documented",
          "sources": [
            "mf-07",
            "mf-04"
          ],
          "visual_ids": []
        },
        {
          "id": "mf-s-ai",
          "name": "AI food input",
          "area": "Logging",
          "entry": "+ > AI",
          "primary_actions": [
            "Snap",
            "Describe",
            "Attach photos/text"
          ],
          "states": [
            "Current Snap/Describe documented only; mf-v12 depicts legacy Photo/Photo & Text, not these actions"
          ],
          "platform": "iOS and Android; device parity not hands-on verified",
          "tier": "Paid Nutrition subscription or eligible bundle; trial available",
          "evidence": "documented",
          "sources": [
            "mf-47",
            "mf-05"
          ],
          "visual_ids": [
            "mf-v12"
          ]
        },
        {
          "id": "mf-s-describe",
          "name": "Describe text entry",
          "area": "Logging",
          "entry": "Food logger > Describe / current AI mode",
          "primary_actions": [
            "Enter text",
            "Dictate with keyboard"
          ],
          "states": [
            "Input",
            "Results to plate"
          ],
          "platform": "iOS and Android; device parity not hands-on verified",
          "tier": "Paid Nutrition subscription or eligible bundle; trial available",
          "evidence": "documented",
          "sources": [
            "mf-06",
            "mf-47"
          ],
          "visual_ids": []
        },
        {
          "id": "mf-s-quick",
          "name": "Quick Add",
          "area": "Logging",
          "entry": "Food logger > Quick Add",
          "primary_actions": [
            "Enter energy/macros",
            "Name entry",
            "Add/log"
          ],
          "states": [
            "One-off estimate"
          ],
          "platform": "iOS and Android; device parity not hands-on verified",
          "tier": "Paid Nutrition subscription or eligible bundle; trial available",
          "evidence": "documented",
          "sources": [
            "mf-04"
          ],
          "visual_ids": []
        },
        {
          "id": "mf-s-timeline",
          "name": "Food Log timeline",
          "area": "Diary",
          "entry": "Food Log tab",
          "primary_actions": [
            "Select foods",
            "Edit",
            "Copy",
            "Change date"
          ],
          "states": [
            "Day",
            "Hour",
            "Multi-select"
          ],
          "platform": "iOS and Android; device parity not hands-on verified",
          "tier": "Paid Nutrition subscription or eligible bundle; trial available",
          "evidence": "documented",
          "sources": [
            "mf-08",
            "mf-09"
          ],
          "visual_ids": []
        },
        {
          "id": "mf-s-paste",
          "name": "Copy date picker",
          "area": "Diary",
          "entry": "Copy > To Dates",
          "primary_actions": [
            "Select days",
            "Paste to dates"
          ],
          "states": [
            "Multiple selections"
          ],
          "platform": "iOS and Android; device parity not hands-on verified",
          "tier": "Paid Nutrition subscription or eligible bundle; trial available",
          "evidence": "visual",
          "sources": [
            "mf-09"
          ],
          "visual_ids": [
            "mf-v03"
          ]
        },
        {
          "id": "mf-s-library",
          "name": "Food Library / favorites",
          "area": "Reuse",
          "entry": "+ > Your Foods or logger Library",
          "primary_actions": [
            "Favorite",
            "Reorder",
            "Edit",
            "Delete"
          ],
          "states": [
            "Favorites",
            "Recipes",
            "Custom foods"
          ],
          "platform": "iOS and Android; device parity not hands-on verified",
          "tier": "Paid Nutrition subscription or eligible bundle; trial available",
          "evidence": "documented",
          "sources": [
            "mf-37"
          ],
          "visual_ids": []
        },
        {
          "id": "mf-s-recipe-method",
          "name": "Recipe creation method",
          "area": "Recipes",
          "entry": "+ > New Recipe",
          "primary_actions": [
            "Build from scratch",
            "Import link",
            "Import AI"
          ],
          "states": [
            "One method selected"
          ],
          "platform": "iOS and Android; device parity not hands-on verified",
          "tier": "Paid Nutrition subscription or eligible bundle; trial available",
          "evidence": "visual",
          "sources": [
            "mf-11"
          ],
          "visual_ids": [
            "mf-v04"
          ]
        },
        {
          "id": "mf-s-recipe-url",
          "name": "Recipe URL importer",
          "area": "Recipes",
          "entry": "Create Recipe > Import link",
          "primary_actions": [
            "Paste URL",
            "Import"
          ],
          "states": [
            "URL entered"
          ],
          "platform": "iOS and Android; device parity not hands-on verified",
          "tier": "Paid Nutrition subscription or eligible bundle; trial available",
          "evidence": "visual",
          "sources": [
            "mf-11"
          ],
          "visual_ids": [
            "mf-v05"
          ]
        },
        {
          "id": "mf-s-recipe-editor",
          "name": "Recipe details",
          "area": "Recipes",
          "entry": "Successful import or build",
          "primary_actions": [
            "Edit portions",
            "Edit ingredients",
            "Next"
          ],
          "states": [
            "Imported values",
            "Total weight optional"
          ],
          "platform": "iOS and Android; device parity not hands-on verified",
          "tier": "Paid Nutrition subscription or eligible bundle; trial available",
          "evidence": "visual",
          "sources": [
            "mf-10",
            "mf-11"
          ],
          "visual_ids": [
            "mf-v06"
          ]
        },
        {
          "id": "mf-s-recipe-ai",
          "name": "AI recipe importer",
          "area": "Recipes",
          "entry": "Create Recipe > Import with AI",
          "primary_actions": [
            "Upload photo",
            "Describe",
            "Analyze"
          ],
          "states": [
            "Image attached",
            "Optional text"
          ],
          "platform": "iOS and Android; device parity not hands-on verified",
          "tier": "Paid Nutrition subscription or eligible bundle; trial available",
          "evidence": "visual",
          "sources": [
            "mf-12"
          ],
          "visual_ids": [
            "mf-v07"
          ]
        },
        {
          "id": "mf-s-recipe-save",
          "name": "Preparation and save",
          "area": "Recipes",
          "entry": "Recipe details > Next",
          "primary_actions": [
            "Edit preparation",
            "Create",
            "Create & Add"
          ],
          "states": [
            "Save only",
            "Save to library and plate"
          ],
          "platform": "iOS and Android; device parity not hands-on verified",
          "tier": "Paid Nutrition subscription or eligible bundle; trial available",
          "evidence": "documented",
          "sources": [
            "mf-11"
          ],
          "visual_ids": []
        },
        {
          "id": "mf-s-custom-food",
          "name": "Custom food wizard",
          "area": "Foods",
          "entry": "+ > New Food",
          "primary_actions": [
            "Manual or AI",
            "Serving basis",
            "Nutrition entry"
          ],
          "states": [
            "Per serving",
            "Per 100g",
            "Per 100ml"
          ],
          "platform": "iOS and Android; device parity not hands-on verified",
          "tier": "Paid Nutrition subscription or eligible bundle; trial available",
          "evidence": "documented",
          "sources": [
            "mf-40"
          ],
          "visual_ids": []
        },
        {
          "id": "mf-s-strategy",
          "name": "Strategy",
          "area": "Coaching",
          "entry": "Bottom navigation",
          "primary_actions": [
            "New Goal",
            "New Program",
            "Check-In"
          ],
          "states": [
            "Check-in available"
          ],
          "platform": "iOS and Android; device parity not hands-on verified",
          "tier": "Paid Nutrition subscription or eligible bundle; trial available",
          "evidence": "documented",
          "sources": [
            "mf-15",
            "mf-17",
            "mf-18"
          ],
          "visual_ids": []
        },
        {
          "id": "mf-s-goal",
          "name": "Weight goal wizard",
          "area": "Coaching",
          "entry": "Strategy > New Goal",
          "primary_actions": [
            "Choose direction",
            "Set weight/rate",
            "Review"
          ],
          "states": [
            "Loss",
            "Maintenance",
            "Gain"
          ],
          "platform": "iOS and Android; device parity not hands-on verified",
          "tier": "Paid Nutrition subscription or eligible bundle; trial available",
          "evidence": "documented",
          "sources": [
            "mf-15"
          ],
          "visual_ids": []
        },
        {
          "id": "mf-s-program",
          "name": "Program preferences",
          "area": "Coaching",
          "entry": "Strategy > New Program",
          "primary_actions": [
            "Select style",
            "Configure preferences"
          ],
          "states": [
            "Coached",
            "Collaborative",
            "Manual"
          ],
          "platform": "iOS and Android; device parity not hands-on verified",
          "tier": "Paid Nutrition subscription or eligible bundle; trial available",
          "evidence": "documented",
          "sources": [
            "mf-16",
            "mf-17"
          ],
          "visual_ids": []
        },
        {
          "id": "mf-s-checkin",
          "name": "Check-in agenda",
          "area": "Coaching",
          "entry": "Strategy > Check-In",
          "primary_actions": [
            "Open module",
            "Skip module"
          ],
          "states": [
            "Selected modules",
            "Later modules"
          ],
          "platform": "iOS and Android; device parity not hands-on verified",
          "tier": "Paid Nutrition subscription or eligible bundle; trial available",
          "evidence": "visual",
          "sources": [
            "mf-18",
            "mf-19"
          ],
          "visual_ids": [
            "mf-v08"
          ]
        },
        {
          "id": "mf-s-partial",
          "name": "Partial logging repair",
          "area": "Coaching",
          "entry": "Check-in > Partial Logging",
          "primary_actions": [
            "Select/unselect incomplete days",
            "Next"
          ],
          "states": [
            "Low-intake candidates",
            "Corrected day classification"
          ],
          "platform": "iOS and Android; device parity not hands-on verified",
          "tier": "Paid Nutrition subscription or eligible bundle; trial available",
          "evidence": "visual",
          "sources": [
            "mf-19"
          ],
          "visual_ids": [
            "mf-v09"
          ]
        },
        {
          "id": "mf-s-update",
          "name": "Program Update",
          "area": "Coaching",
          "entry": "Final check-in module",
          "primary_actions": [
            "Accept program changes",
            "Decline"
          ],
          "states": [
            "Suggested calorie delta"
          ],
          "platform": "iOS and Android; device parity not hands-on verified",
          "tier": "Paid Nutrition subscription or eligible bundle; trial available",
          "evidence": "visual",
          "sources": [
            "mf-20",
            "mf-18"
          ],
          "visual_ids": [
            "mf-v10"
          ]
        },
        {
          "id": "mf-s-expenditure",
          "name": "Expenditure analytics",
          "area": "Insights",
          "entry": "Dashboard > Expenditure",
          "primary_actions": [
            "Inspect trend"
          ],
          "states": [
            "Updating estimate"
          ],
          "platform": "iOS and Android; device parity not hands-on verified",
          "tier": "Paid Nutrition subscription or eligible bundle; trial available",
          "evidence": "documented",
          "sources": [
            "mf-02"
          ],
          "visual_ids": []
        },
        {
          "id": "mf-s-weight",
          "name": "Weight Trend",
          "area": "Insights",
          "entry": "Dashboard > Weight Trend",
          "primary_actions": [
            "Inspect trend vs scale"
          ],
          "states": [
            "Smoothed trend",
            "Raw scale"
          ],
          "platform": "iOS and Android; device parity not hands-on verified",
          "tier": "Paid Nutrition subscription or eligible bundle; trial available",
          "evidence": "documented",
          "sources": [
            "mf-03"
          ],
          "visual_ids": []
        },
        {
          "id": "mf-s-nutrient",
          "name": "Nutrient Explorer",
          "area": "Insights",
          "entry": "Dashboard Nutrition > See All > nutrient",
          "primary_actions": [
            "Pan/zoom",
            "Review contributing foods"
          ],
          "states": [
            "Historical chart",
            "Goal range"
          ],
          "platform": "iOS and Android; device parity not hands-on verified",
          "tier": "Paid Nutrition subscription or eligible bundle; trial available",
          "evidence": "documented",
          "sources": [
            "mf-31",
            "mf-32"
          ],
          "visual_ids": []
        },
        {
          "id": "mf-s-nutrient-goal",
          "name": "Nutrient Goal Editor",
          "area": "Insights",
          "entry": "Nutrient > goal settings > active goal",
          "primary_actions": [
            "Auto/Custom/None",
            "Set bounds",
            "Save"
          ],
          "states": [
            "Optional floor/target/ceiling"
          ],
          "platform": "iOS and Android; device parity not hands-on verified",
          "tier": "Paid Nutrition subscription or eligible bundle; trial available",
          "evidence": "visual",
          "sources": [
            "mf-33"
          ],
          "visual_ids": [
            "mf-v11"
          ]
        },
        {
          "id": "mf-s-body",
          "name": "Full Body measurements",
          "area": "Body metrics",
          "entry": "Body Metrics > See All > Full Body",
          "primary_actions": [
            "Select date",
            "Add measurements",
            "Save"
          ],
          "states": [
            "Current or past date"
          ],
          "platform": "iOS and Android; device parity not hands-on verified",
          "tier": "Paid Nutrition subscription or eligible bundle; trial available",
          "evidence": "documented",
          "sources": [
            "mf-29"
          ],
          "visual_ids": []
        },
        {
          "id": "mf-s-photos",
          "name": "Progress Photo entry",
          "area": "Body metrics",
          "entry": "Body Metrics > See All > Progress Photo",
          "primary_actions": [
            "Capture/upload",
            "Crop",
            "Save"
          ],
          "states": [
            "Front",
            "Side",
            "Back"
          ],
          "platform": "iOS and Android; device parity not hands-on verified",
          "tier": "Paid Nutrition subscription or eligible bundle; trial available",
          "evidence": "documented",
          "sources": [
            "mf-30"
          ],
          "visual_ids": []
        },
        {
          "id": "mf-s-integrations",
          "name": "Integrations",
          "area": "Settings",
          "entry": "More > Feature Settings > Integrations",
          "primary_actions": [
            "Enable provider",
            "Grant OS permissions"
          ],
          "states": [
            "Syncing",
            "Not syncing"
          ],
          "platform": "iOS and Android; device parity not hands-on verified",
          "tier": "Paid Nutrition subscription or eligible bundle; trial available",
          "evidence": "documented",
          "sources": [
            "mf-21",
            "mf-22"
          ],
          "visual_ids": []
        },
        {
          "id": "mf-s-export",
          "name": "Data Export",
          "area": "Data control",
          "entry": "More > Data Management > Data Export",
          "primary_actions": [
            "Quick Export",
            "Granular Export",
            "Export"
          ],
          "states": [
            "Time range",
            "Selected data types"
          ],
          "platform": "iOS and Android; device parity not hands-on verified",
          "tier": "Paid Nutrition subscription or eligible bundle; trial available",
          "evidence": "documented",
          "sources": [
            "mf-23"
          ],
          "visual_ids": []
        },
        {
          "id": "mf-s-subscription",
          "name": "Subscriptions",
          "area": "Account",
          "entry": "More > Subscriptions",
          "primary_actions": [
            "View renewal",
            "Choose plan"
          ],
          "states": [
            "Nutrition",
            "Bundle"
          ],
          "platform": "iOS and Android; device parity not hands-on verified",
          "tier": "Paid Nutrition subscription or eligible bundle; trial available",
          "evidence": "documented",
          "sources": [
            "mf-25",
            "mf-26"
          ],
          "visual_ids": []
        },
        {
          "id": "mf-s-delete",
          "name": "Account & Data Deletion",
          "area": "Account",
          "entry": "More > Data Management; expired subscription overflow",
          "primary_actions": [
            "Delete account"
          ],
          "states": [
            "Active subscription route",
            "Inactive subscription route"
          ],
          "platform": "iOS and Android; device parity not hands-on verified",
          "tier": "Account control; available with active or inactive subscription",
          "evidence": "documented",
          "sources": [
            "mf-24"
          ],
          "visual_ids": []
        },
        {
          "id": "mf-s-modifiers",
          "name": "Expenditure settings",
          "area": "Settings",
          "entry": "More > Expenditure",
          "primary_actions": [
            "Toggle step-informed",
            "Toggle predictive goal adjustment"
          ],
          "states": [
            "Independent optional toggles"
          ],
          "platform": "iOS and Android; device parity not hands-on verified",
          "tier": "Paid Nutrition subscription or eligible bundle; trial available",
          "evidence": "documented",
          "sources": [
            "mf-50"
          ],
          "visual_ids": []
        }
      ],
      "flows": [
        {
          "id": "mf-f-setup",
          "name": "Onboard and choose target",
          "job": "Start a nutrition program",
          "preconditions": [
            "Account/trial access; signup not tested"
          ],
          "steps": [
            {
              "screen": "mf-s-onboarding",
              "action": "Answer personal/program questions",
              "result": "Coached program initialized"
            },
            {
              "screen": "mf-s-strategy",
              "action": "Open New Goal",
              "result": "Goal wizard"
            },
            {
              "screen": "mf-s-goal",
              "action": "Select direction, weight and rate; review",
              "result": "New goal saved"
            },
            {
              "screen": "mf-s-program",
              "action": "Create program if immediate realignment needed",
              "result": "Program reflects goal"
            }
          ],
          "branches": [
            "Otherwise coached/collaborative targets align at next check-in",
            "Exact signup/paywall ordering unknown"
          ],
          "persistence": "Goal and program are separate objects. Documentation-derived; durability not tested.",
          "friction": "A new goal is not necessarily an immediate new calorie prescription.",
          "evidence": "documented",
          "sources": [
            "mf-45",
            "mf-15",
            "mf-17"
          ],
          "visual_ids": []
        },
        {
          "id": "mf-f-search",
          "name": "Search and stage a meal",
          "job": "Log several foods once",
          "preconditions": [
            "Subscription; database connection"
          ],
          "steps": [
            {
              "screen": "mf-s-search",
              "action": "Query and select food",
              "result": "Food detail"
            },
            {
              "screen": "mf-s-food",
              "action": "Set portion and Add",
              "result": "Food staged"
            },
            {
              "screen": "mf-s-search",
              "action": "Repeat or switch logging methods",
              "result": "Mixed-method meal assembled"
            },
            {
              "screen": "mf-s-plate",
              "action": "Review; Log Foods",
              "result": "Entries enter diary"
            }
          ],
          "branches": [
            "Multi-add skips detail; defaults require review"
          ],
          "persistence": "Logged foods enter selected date/time. Documentation-derived; durability not tested.",
          "friction": "Staging versus logging terminology must be learned.",
          "evidence": "documented",
          "sources": [
            "mf-04"
          ],
          "visual_ids": []
        },
        {
          "id": "mf-f-barcode",
          "name": "Barcode with missing-item recovery",
          "job": "Log packaged food",
          "preconditions": [
            "Camera access; readable package"
          ],
          "steps": [
            {
              "screen": "mf-s-scan",
              "action": "Scan barcode",
              "result": "Matched food or label fallback"
            },
            {
              "screen": "mf-s-food",
              "action": "Review match and amount",
              "result": "Ready to log"
            },
            {
              "screen": "mf-s-plate",
              "action": "Log Foods",
              "result": "Diary entry"
            }
          ],
          "branches": [
            "No match: label scan → custom-food wizard; review fields before save",
            "Camera permission denial recovery unverified"
          ],
          "persistence": "Custom entries can be reused; logged copy recorded. Documentation-derived; durability not tested.",
          "friction": "Barcode success does not validate portion or label accuracy.",
          "evidence": "documented",
          "sources": [
            "mf-07",
            "mf-40"
          ],
          "visual_ids": []
        },
        {
          "id": "mf-f-ai",
          "name": "AI meal logging and repair",
          "job": "Estimate a meal from photos/text",
          "preconditions": [
            "Camera or library access; AI available"
          ],
          "steps": [
            {
              "screen": "mf-s-ai",
              "action": "Use Snap or Describe; attach context",
              "result": "Analysis requested"
            },
            {
              "screen": "mf-s-plate",
              "action": "Inspect returned foods and ingredients",
              "result": "Candidate meal"
            },
            {
              "screen": "mf-s-food",
              "action": "Correct quantities or remove items",
              "result": "Revised estimate"
            },
            {
              "screen": "mf-s-plate",
              "action": "Log Foods",
              "result": "Logged meal"
            }
          ],
          "branches": [
            "Legacy help uses Photo/Photo & Text instead",
            "Multi-image and detailed instructions documented in May 2026; current appearance not inspected"
          ],
          "persistence": "Only reviewed logged output is claimed. Documentation-derived; durability not tested.",
          "friction": "AI accuracy, latency and refusal behavior untested.",
          "evidence": "documented",
          "sources": [
            "mf-05",
            "mf-47"
          ],
          "visual_ids": []
        },
        {
          "id": "mf-f-voice",
          "name": "Dictate meal description",
          "job": "Log without individual searches",
          "preconditions": [
            "Keyboard dictation available"
          ],
          "steps": [
            {
              "screen": "mf-s-describe",
              "action": "Use keyboard microphone; describe portions",
              "result": "Text input"
            },
            {
              "screen": "mf-s-describe",
              "action": "Submit description",
              "result": "Foods returned to plate"
            },
            {
              "screen": "mf-s-plate",
              "action": "Review and log",
              "result": "Diary entries"
            }
          ],
          "branches": [
            "Typing is alternative",
            "Legacy Find Foods label may differ in current Describe"
          ],
          "persistence": "Result is food entries, not a demonstrated voice conversation. Documentation-derived; durability not tested.",
          "friction": "OS microphone permissions and accent accuracy unknown.",
          "evidence": "documented",
          "sources": [
            "mf-06",
            "mf-47"
          ],
          "visual_ids": []
        },
        {
          "id": "mf-f-correct",
          "name": "Correct historical entries",
          "job": "Fix portion or stale recipe data",
          "preconditions": [
            "Existing food-log entry"
          ],
          "steps": [
            {
              "screen": "mf-s-timeline",
              "action": "Select entry and Edit",
              "result": "Portion editor"
            },
            {
              "screen": "mf-s-food",
              "action": "Correct serving/quantity",
              "result": "Edited entry"
            }
          ],
          "branches": [
            "Changing the base recipe leaves old entries intact; delete and relog to use updated recipe",
            "Exact save gesture for every current mode unknown"
          ],
          "persistence": "Historical recipe entries are snapshots. Documentation-derived; durability not tested.",
          "friction": "Fixing a reusable definition does not repair earlier copies.",
          "evidence": "documented",
          "sources": [
            "mf-08",
            "mf-13"
          ],
          "visual_ids": [
            "mf-v02"
          ]
        },
        {
          "id": "mf-f-copy",
          "name": "Reuse across dates",
          "job": "Prelog repeated meals",
          "preconditions": [
            "Existing food or meal"
          ],
          "steps": [
            {
              "screen": "mf-s-timeline",
              "action": "Select foods/hour/day; Copy",
              "result": "Clipboard populated"
            },
            {
              "screen": "mf-s-paste",
              "action": "Choose To Dates and select days",
              "result": "Destination set"
            },
            {
              "screen": "mf-s-paste",
              "action": "Paste to dates",
              "result": "Copies added"
            }
          ],
          "branches": [
            "Multi-paste inline preserves clipboard",
            "To now/today/tomorrow preserve different temporal intent"
          ],
          "persistence": "Copies added at selected destinations. Documentation-derived; durability not tested.",
          "friction": "Future copies may need independent correction.",
          "evidence": "documented",
          "sources": [
            "mf-09"
          ],
          "visual_ids": [
            "mf-v03"
          ]
        },
        {
          "id": "mf-f-meal",
          "name": "Save a meal; vary ingredients",
          "job": "Reuse breakfast with one change",
          "preconditions": [
            "Foods already logged"
          ],
          "steps": [
            {
              "screen": "mf-s-timeline",
              "action": "Select meal; Create recipe",
              "result": "Recipe draft"
            },
            {
              "screen": "mf-s-recipe-editor",
              "action": "Name and save",
              "result": "Reusable meal"
            },
            {
              "screen": "mf-s-library",
              "action": "Select recipe",
              "result": "Meal staged"
            },
            {
              "screen": "mf-s-plate",
              "action": "Expand/explode; adjust components; Log Foods",
              "result": "Customized meal instance"
            }
          ],
          "branches": [
            "Speed mode exposes Explode directly",
            "Context mode uses plate expansion"
          ],
          "persistence": "Recipe reused without requiring base edit for every variation. Documentation-derived; durability not tested.",
          "friction": "Recipe as meal vocabulary may surprise beginners.",
          "evidence": "documented",
          "sources": [
            "mf-14",
            "mf-41"
          ],
          "visual_ids": []
        },
        {
          "id": "mf-f-recipe",
          "name": "Build or import recipe",
          "job": "Create reusable cooked-dish portions",
          "preconditions": [
            "Ingredient data or recipe URL"
          ],
          "steps": [
            {
              "screen": "mf-s-recipe-method",
              "action": "Choose build or link",
              "result": "Builder or URL screen"
            },
            {
              "screen": "mf-s-recipe-url",
              "action": "Import URL if selected",
              "result": "Recipe fields populated"
            },
            {
              "screen": "mf-s-recipe-editor",
              "action": "Review ingredients; enter cooked weight or servings",
              "result": "Portion basis set"
            },
            {
              "screen": "mf-s-recipe-save",
              "action": "Review preparation; Create or Create & Add",
              "result": "Saved recipe or staged recipe"
            }
          ],
          "branches": [
            "AI route accepts image/text then Analyze",
            "Import failure and unsupported sites untested"
          ],
          "persistence": "Saved library recipe; optional plate addition. Documentation-derived; durability not tested.",
          "friction": "Cooked yield must not be confused with raw ingredient mass.",
          "evidence": "documented",
          "sources": [
            "mf-10",
            "mf-11",
            "mf-12"
          ],
          "visual_ids": [
            "mf-v04",
            "mf-v05",
            "mf-v06",
            "mf-v07"
          ]
        },
        {
          "id": "mf-f-review",
          "name": "Review data before weekly update",
          "job": "Protect recommendations from incomplete data",
          "preconditions": [
            "Coached/collaborative; check-in available"
          ],
          "steps": [
            {
              "screen": "mf-s-strategy",
              "action": "Open Check-In",
              "result": "Module agenda"
            },
            {
              "screen": "mf-s-checkin",
              "action": "Open Partial Logging if surfaced",
              "result": "Day review"
            },
            {
              "screen": "mf-s-partial",
              "action": "Confirm incomplete days",
              "result": "Data classification corrected"
            },
            {
              "screen": "mf-s-update",
              "action": "Accept or decline suggestion",
              "result": "Program changed only if accepted"
            }
          ],
          "branches": [
            "Skip modules or enable Fast Check-In",
            "Accurate low-intake day should be unselected"
          ],
          "persistence": "Incomplete classification informs algorithm; approved program update applies. Documentation-derived; durability not tested.",
          "friction": "False-positive low-intake detection needs human review.",
          "evidence": "documented",
          "sources": [
            "mf-18",
            "mf-19",
            "mf-20"
          ],
          "visual_ids": [
            "mf-v08",
            "mf-v09",
            "mf-v10"
          ]
        },
        {
          "id": "mf-f-trends",
          "name": "Inspect nutrient trends and targets",
          "job": "Understand a low micronutrient total",
          "preconditions": [
            "Logged food data"
          ],
          "steps": [
            {
              "screen": "mf-s-dashboard",
              "action": "Open Nutrition > See All",
              "result": "Nutrient list"
            },
            {
              "screen": "mf-s-nutrient",
              "action": "Select nutrient; inspect chart/completeness",
              "result": "Intake and reporting context"
            },
            {
              "screen": "mf-s-nutrient-goal",
              "action": "Choose Custom; set bounds; save",
              "result": "Personal target configuration"
            }
          ],
          "branches": [
            "Auto or None available",
            "Low completeness does not demonstrate deficiency"
          ],
          "persistence": "Custom goal recorded. Documentation-derived; durability not tested.",
          "friction": "Accurate chart presentation cannot repair missing database fields.",
          "evidence": "documented",
          "sources": [
            "mf-31",
            "mf-32",
            "mf-33"
          ],
          "visual_ids": [
            "mf-v11"
          ]
        },
        {
          "id": "mf-f-goal",
          "name": "Change goal without resetting history",
          "job": "Move between cut/maintain/gain",
          "preconditions": [
            "Existing program"
          ],
          "steps": [
            {
              "screen": "mf-s-strategy",
              "action": "New Goal",
              "result": "Goal wizard"
            },
            {
              "screen": "mf-s-goal",
              "action": "Set new direction/rate",
              "result": "New goal"
            },
            {
              "screen": "mf-s-program",
              "action": "New Program or edit preferences",
              "result": "Updated strategy"
            }
          ],
          "branches": [
            "Wait until next check-in instead of immediate program",
            "Optional predictive modifier responds to genuine goal changes"
          ],
          "persistence": "Program-style changes do not lose prior data. Documentation-derived; durability not tested.",
          "friction": "Users must distinguish goal, program and expenditure settings.",
          "evidence": "documented",
          "sources": [
            "mf-15",
            "mf-16",
            "mf-17",
            "mf-50"
          ],
          "visual_ids": []
        },
        {
          "id": "mf-f-sync",
          "name": "Connect weight/nutrition data",
          "job": "Reuse health-hub records",
          "preconditions": [
            "OS health permissions and upstream data"
          ],
          "steps": [
            {
              "screen": "mf-s-integrations",
              "action": "Enable Apple Health or Health Connect",
              "result": "OS authorization"
            },
            {
              "screen": "mf-s-integrations",
              "action": "Approve prompted permissions",
              "result": "Syncing status"
            }
          ],
          "branches": [
            "Initial import reaches up to 30 previous days",
            "Manual > Food Log > health-source precedence can hide expected external data",
            "Workout calorie burn is not a target input"
          ],
          "persistence": "Provider remains connected for new records. Documentation-derived; durability not tested.",
          "friction": "Missing external values can reflect priority rather than broken sync.",
          "evidence": "documented",
          "sources": [
            "mf-21",
            "mf-22",
            "mf-28"
          ],
          "visual_ids": []
        },
        {
          "id": "mf-f-export",
          "name": "Export before leaving",
          "job": "Take data to spreadsheet or coach",
          "preconditions": [
            "Account access"
          ],
          "steps": [
            {
              "screen": "mf-s-export",
              "action": "Select Quick or Granular Export",
              "result": "Scope configured"
            },
            {
              "screen": "mf-s-export",
              "action": "Choose range/data; Export",
              "result": "Spreadsheet generated"
            }
          ],
          "branches": [
            "Quick summary differs from granular datasets",
            "File extension, food-row granularity and share-sheet handoff require test"
          ],
          "persistence": "Exported spreadsheet documented; no export executed. Documentation-derived; durability not tested.",
          "friction": "Portability completeness is unverified.",
          "evidence": "documented",
          "sources": [
            "mf-23"
          ],
          "visual_ids": []
        },
        {
          "id": "mf-f-cancel",
          "name": "Stop subscription renewal",
          "job": "Avoid next billing cycle",
          "preconditions": [
            "Know originating store account"
          ],
          "steps": [
            {
              "screen": "mf-s-subscription",
              "action": "Review renewal",
              "result": "Plan identified"
            },
            {
              "screen": "mf-s-subscription",
              "action": "Use originating App Store or Play subscriptions",
              "result": "External cancellation route"
            }
          ],
          "branches": [
            "Exact store UI outside inspected evidence",
            "Deleting account is not cancellation"
          ],
          "persistence": "Store renewal state controls cancellation; not executed. Documentation-derived; durability not tested.",
          "friction": "Account deletion and billing are separate tasks.",
          "evidence": "documented",
          "sources": [
            "mf-25",
            "mf-24"
          ],
          "visual_ids": []
        },
        {
          "id": "mf-f-delete",
          "name": "Delete account and data",
          "job": "Erase account after export/cancel",
          "preconditions": [
            "Intentional irreversible action; not executed"
          ],
          "steps": [
            {
              "screen": "mf-s-export",
              "action": "Export desired data first",
              "result": "User keeps local copy"
            },
            {
              "screen": "mf-s-delete",
              "action": "Open active-route deletion or expired overflow",
              "result": "Deletion action accessible"
            },
            {
              "screen": "mf-s-delete",
              "action": "Choose account deletion",
              "result": "Vendor documents deletion"
            }
          ],
          "branches": [
            "Active and inactive subscription routes differ",
            "Store cancellation remains separate",
            "Bundle cross-app deletion scope needs explicit review"
          ],
          "persistence": "Vendor claims instant deletion; backend retention not audited. Documentation-derived; durability not tested.",
          "friction": "Shared ecosystem makes destructive scope important.",
          "evidence": "documented",
          "sources": [
            "mf-23",
            "mf-24",
            "mf-49"
          ],
          "visual_ids": []
        },
        {
          "id": "mf-f-photos",
          "name": "Record body progress",
          "job": "Add dated measurements and photos",
          "preconditions": [
            "User-owned photo or camera permission"
          ],
          "steps": [
            {
              "screen": "mf-s-body",
              "action": "Select date and enter measurements; save",
              "result": "Measurement record"
            },
            {
              "screen": "mf-s-photos",
              "action": "Choose front/side/back; capture or upload",
              "result": "Photo selected"
            },
            {
              "screen": "mf-s-photos",
              "action": "Crop/rotate and save",
              "result": "Dated progress images"
            }
          ],
          "branches": [
            "Historical date supported",
            "Shared Workouts data scope must be understood"
          ],
          "persistence": "Dated measurements/photos saved per documentation. Documentation-derived; durability not tested.",
          "friction": "No visual inspection of photo-crop UI or privacy controls.",
          "evidence": "documented",
          "sources": [
            "mf-29",
            "mf-30",
            "mf-49"
          ],
          "visual_ids": []
        }
      ],
      "visuals": [
        {
          "id": "mf-v01",
          "file": "assets/01-dashboard.png",
          "source_url": "https://files.gleap.io/pf/gattachments/sofFat6YSVu7SdMTxQFS5GSvWXTIO5DcWRilLQr6iQxbEjCWPKcb7HGDzQPhDme1xHA9gvURd81.png?v=1&k=a&s=api&e=1791460800&sig=AhHwEfYRSj-gOisSWbpaob3VhAleGffoyX7yCMribJY",
          "source_page": "https://help.macrofactorapp.com/en/articles/22-get-to-know-your-dashboard",
          "title": "Dashboard weekly overview",
          "platform": "iPhone-like UI depicted; Android appearance unverified",
          "version_or_date": "Unknown app version; retrieved 2026-10-07",
          "kind": "help-screenshot",
          "observations": [
            "Seven-day nutrition bars sit above insight cards.",
            "Consumed/remaining toggle changes summary framing."
          ],
          "limitations": "Official vendor-help composite/device-framed image, not our device capture; version/date unknown; no interaction tested.",
          "sources": [
            "mf-01"
          ]
        },
        {
          "id": "mf-v02",
          "file": "assets/02-correction.gif",
          "source_url": "https://staticfiles.gleap.io/ghelparticle/OGyg2IiEY9JZERi4rq0VAdNJZ4HEAQ9uRgRTQVQtbI6LGEJeyDIMhRtQXEniFVvxPMs7n4L3veA.gif",
          "source_page": "https://help.macrofactorapp.com/en/articles/98-edit-quantities-of-foods-you-ve-already-logged-and-view-nutritional-values-for-foods-on-your-timeline",
          "title": "Logged-food correction",
          "platform": "iPhone-like UI depicted; Android appearance unverified",
          "version_or_date": "Unknown app version; retrieved 2026-10-07",
          "kind": "help-screenshot",
          "observations": [
            "Quantity field, unit chips and keypad occupy the lower editor.",
            "Macro totals and target impact remain visible above."
          ],
          "limitations": "Official vendor-help composite/device-framed image, not our device capture; version/date unknown; no interaction tested. Original animated GIF retained; annotated copy is middle frame only.",
          "sources": [
            "mf-08"
          ]
        },
        {
          "id": "mf-v03",
          "file": "assets/03-copy-dates.png",
          "source_url": "https://staticfiles.gleap.io/helparticle/20250707195459_2228.png",
          "source_page": "https://help.macrofactorapp.com/en/articles/95-copy-and-paste",
          "title": "Copy to multiple dates",
          "platform": "iPhone-like UI depicted; Android appearance unverified",
          "version_or_date": "Unknown app version; retrieved 2026-10-07",
          "kind": "help-screenshot",
          "observations": [
            "Calendar sheet shows non-contiguous selected dates.",
            "One bottom action pastes into selected days."
          ],
          "limitations": "Official vendor-help composite/device-framed image, not our device capture; version/date unknown; no interaction tested.",
          "sources": [
            "mf-09"
          ]
        },
        {
          "id": "mf-v04",
          "file": "assets/04-recipe-start.png",
          "source_url": "https://staticfiles.gleap.io/gattachments/pas6lDYxfpd8YIcOUXOXKX8LOxYc8VxcwnafyhwCvJ87WWoucrJDytNyE38KGws1dLDrLX9jAdW.png",
          "source_page": "https://help.macrofactorapp.com/en/articles/259-import-recipes-from-link",
          "title": "Recipe import method",
          "platform": "iPhone-like UI depicted; Android appearance unverified",
          "version_or_date": "Unknown app version; retrieved 2026-10-07",
          "kind": "help-screenshot",
          "observations": [
            "Build/link/AI selection.",
            "Next advances."
          ],
          "limitations": "Official vendor-help composite/device-framed image, not our device capture; version/date unknown; no interaction tested.",
          "sources": [
            "mf-11"
          ]
        },
        {
          "id": "mf-v05",
          "file": "assets/05-recipe-url.png",
          "source_url": "https://staticfiles.gleap.io/gattachments/qEj4aYHTNpp9WRAh6SIyCfUXN2MTW1y7e1tAjlsdGrrCdvBShs1RiH1hqu4de8Xpr6wzwFIvYiy.png",
          "source_page": "https://help.macrofactorapp.com/en/articles/259-import-recipes-from-link",
          "title": "Recipe URL input",
          "platform": "iPhone-like UI depicted; Android appearance unverified",
          "version_or_date": "Unknown app version; retrieved 2026-10-07",
          "kind": "help-screenshot",
          "observations": [
            "URL field.",
            "Import action."
          ],
          "limitations": "Official vendor-help composite/device-framed image, not our device capture; version/date unknown; no interaction tested.",
          "sources": [
            "mf-11"
          ]
        },
        {
          "id": "mf-v06",
          "file": "assets/06-recipe-details.png",
          "source_url": "https://staticfiles.gleap.io/gattachments/isTAsXDaJArMDdydMw2aR1TsM85Cd0azfh4eYFAsmIbTQ5R4xsmQPYjA02mIxDHAtt84vzcmHY1.png",
          "source_page": "https://help.macrofactorapp.com/en/articles/259-import-recipes-from-link",
          "title": "Imported recipe review",
          "platform": "iPhone-like UI depicted; Android appearance unverified",
          "version_or_date": "Unknown app version; retrieved 2026-10-07",
          "kind": "help-screenshot",
          "observations": [
            "Editable recipe fields.",
            "Next advances."
          ],
          "limitations": "Official vendor-help composite/device-framed image, not our device capture; version/date unknown; no interaction tested.",
          "sources": [
            "mf-11"
          ]
        },
        {
          "id": "mf-v07",
          "file": "assets/07-recipe-ai.png",
          "source_url": "https://staticfiles.gleap.io/gattachments/ca6sW1qQTwkxcDIVt4gNtmcbO0ZM8cv3j8Uy4SErOkPptGXG65mIgchx6LWIrkW6nSjPmziiBdy.png",
          "source_page": "https://help.macrofactorapp.com/en/articles/398-import-recipes-with-ai",
          "title": "Recipe AI input",
          "platform": "iPhone-like UI depicted; Android appearance unverified",
          "version_or_date": "Unknown app version; retrieved 2026-10-07",
          "kind": "help-screenshot",
          "observations": [
            "Uploaded recipe image and optional description share one form.",
            "Analyze starts interpretation rather than immediately saving."
          ],
          "limitations": "Official vendor-help composite/device-framed image, not our device capture; version/date unknown; no interaction tested.",
          "sources": [
            "mf-12"
          ]
        },
        {
          "id": "mf-v08",
          "file": "assets/08-checkin-intro.png",
          "source_url": "https://staticfiles.gleap.io/ghelparticle/f3NyiDjoCQlzUwXQAnKB82VtgaJU1wjKTF2M7FwlbnvMxO1QTQDqrKPmWptuOIJCBznj5ILfF3F.png",
          "source_page": "https://help.macrofactorapp.com/en/articles/248-coaching-module-partial-logging",
          "title": "Check-in module agenda",
          "platform": "iPhone-like UI depicted; Android appearance unverified",
          "version_or_date": "Unknown app version; retrieved 2026-10-07",
          "kind": "help-screenshot",
          "observations": [
            "Partial Logging is surfaced before later modules.",
            "Skip Module and continue are separately available."
          ],
          "limitations": "Official vendor-help composite/device-framed image, not our device capture; version/date unknown; no interaction tested.",
          "sources": [
            "mf-19"
          ]
        },
        {
          "id": "mf-v09",
          "file": "assets/09-checkin-select.png",
          "source_url": "https://staticfiles.gleap.io/ghelparticle/NH2gHixfJMuS281JVpbprrOsL0KRGrBUQWJCrrvAnkPhMv1G9M4H1BrHSyEykUd82AwJ472d6VL.png",
          "source_page": "https://help.macrofactorapp.com/en/articles/248-coaching-module-partial-logging",
          "title": "Partial-day repair",
          "platform": "iPhone-like UI depicted; Android appearance unverified",
          "version_or_date": "Unknown app version; retrieved 2026-10-07",
          "kind": "help-screenshot",
          "observations": [
            "Low-intake bars are paired with selectable day pills.",
            "Legend distinguishes incomplete from accurately logged days."
          ],
          "limitations": "Official vendor-help composite/device-framed image, not our device capture; version/date unknown; no interaction tested.",
          "sources": [
            "mf-19"
          ]
        },
        {
          "id": "mf-v10",
          "file": "assets/10-program-update.png",
          "source_url": "https://staticfiles.gleap.io/ghelparticle/Jhm1XWy5Pu58F0CDy4zeGsrr5FjJGLhmt9L7s5csfKBswzd0qfUGkK6HjhUHY2yA7JGA5aGU4tR.png",
          "source_page": "https://help.macrofactorapp.com/en/articles/252-coaching-module-program-update",
          "title": "Program update consent",
          "platform": "iPhone-like UI depicted; Android appearance unverified",
          "version_or_date": "Unknown app version; retrieved 2026-10-07",
          "kind": "help-screenshot",
          "observations": [
            "Proposed calorie change is prominent in open space.",
            "Decline and Silence sits above Accept Program Changes."
          ],
          "limitations": "Official vendor-help composite/device-framed image, not our device capture; version/date unknown; no interaction tested.",
          "sources": [
            "mf-20"
          ]
        },
        {
          "id": "mf-v11",
          "file": "assets/11-nutrient-goal.png",
          "source_url": "https://staticfiles.gleap.io/ghelparticle/lUu1ncGHrNNgvfXG7S9F9fkvoN8eDaBQ0zSBmwJvYs4GbgaevqWfGfNmJivoIfTQiGwTyatgnqZ.png",
          "source_page": "https://help.macrofactorapp.com/en/articles/136-set-custom-nutrient-goals",
          "title": "Custom nutrient goal",
          "platform": "iPhone-like UI depicted; Android appearance unverified",
          "version_or_date": "Unknown app version; retrieved 2026-10-07",
          "kind": "help-screenshot",
          "observations": [
            "Auto, Custom and None are explicit goal modes.",
            "Target field is independently configured from other bounds."
          ],
          "limitations": "Official vendor-help composite/device-framed image, not our device capture; version/date unknown; no interaction tested.",
          "sources": [
            "mf-33"
          ]
        },
        {
          "id": "mf-v12",
          "file": "assets/12-photo-ai.png",
          "source_url": "https://staticfiles.gleap.io/helparticle/20250503193409_6918.png",
          "source_page": "https://help.macrofactorapp.com/en/articles/258-ai-food-logging",
          "title": "Legacy photo-to-plate example",
          "platform": "iPhone-like UI depicted; Android appearance unverified",
          "version_or_date": "Unknown app version; retrieved 2026-10-07; legacy image filename suggests 2025-05-03, not a verified release date",
          "kind": "help-screenshot",
          "observations": [
            "Camera view and editable ingredient plate are shown side by side.",
            "Expanded fruit ingredients expose individual portions."
          ],
          "limitations": "Official vendor-help composite/device-framed image, not our device capture; version/date unknown; no interaction tested. Legacy Photo / Photo & Text UI and Beta badge; May 2026 update documents Snap / Describe instead.",
          "sources": [
            "mf-05"
          ]
        }
      ],
      "design_patterns": [
        {
          "name": "Stage then commit",
          "observation": "Food methods converge on an editable plate.",
          "implication": "Repair mixed-input meals before writing diary entries.",
          "tradeoff": "Add versus Log semantics add learning effort.",
          "sources": [
            "mf-04",
            "mf-05"
          ],
          "visual_ids": [
            "mf-v12"
          ]
        },
        {
          "name": "Historical snapshots",
          "observation": "Base recipe edits do not rewrite past diary copies.",
          "implication": "Protect longitudinal calculations from accidental backfill.",
          "tradeoff": "Correction propagation requires delete/relog.",
          "sources": [
            "mf-13"
          ],
          "visual_ids": []
        },
        {
          "name": "Human confirmation of anomalous data",
          "observation": "Check-in displays low-intake days for classification.",
          "implication": "Put data repair ahead of target adjustment.",
          "tradeoff": "Candidates can be false positives; opt-out matters.",
          "sources": [
            "mf-19",
            "mf-18"
          ],
          "visual_ids": [
            "mf-v08",
            "mf-v09"
          ]
        },
        {
          "name": "Explicit consent at target update",
          "observation": "Calorie delta precedes accept/decline actions.",
          "implication": "Automated advice stays reviewable.",
          "tradeoff": "Decline consequences need explanation.",
          "sources": [
            "mf-20",
            "mf-18"
          ],
          "visual_ids": [
            "mf-v10"
          ]
        },
        {
          "name": "Multiple time destinations",
          "observation": "One calendar selects disjoint paste dates.",
          "implication": "Repeated meals can be planned as a batch.",
          "tradeoff": "Bulk additions need a clear undo or correction story.",
          "sources": [
            "mf-09"
          ],
          "visual_ids": [
            "mf-v03"
          ]
        },
        {
          "name": "Import is not save",
          "observation": "See canonical workflow mf-f-recipe.",
          "implication": "Imported data receives the same correction model as manual data.",
          "tradeoff": "Users still must know cooked yield and servings.",
          "sources": [
            "mf-10",
            "mf-11",
            "mf-12"
          ],
          "visual_ids": [
            "mf-v04",
            "mf-v05",
            "mf-v06",
            "mf-v07"
          ]
        },
        {
          "name": "Confidence separate from intake",
          "observation": "Nutrient completeness qualifies low reported totals.",
          "implication": "Avoid interpreting missing food data as absence of a nutrient.",
          "tradeoff": "Completeness itself requires explanation.",
          "sources": [
            "mf-32",
            "mf-31"
          ],
          "visual_ids": []
        },
        {
          "name": "Configurable automation",
          "observation": "Coached, Collaborative and Manual separate control levels.",
          "implication": "Support autonomy without forcing a different product.",
          "tradeoff": "More flexible modes remove some guardrails.",
          "sources": [
            "mf-16"
          ],
          "visual_ids": []
        },
        {
          "name": "Neutral target framing",
          "observation": "Dashboard allows consumed/remaining; corrections retain target context.",
          "implication": "Support planning and retrospective review from one data model.",
          "tradeoff": "Density may challenge novice comprehension.",
          "sources": [
            "mf-01",
            "mf-08"
          ],
          "visual_ids": [
            "mf-v01",
            "mf-v02"
          ]
        }
      ],
      "questions": [
        {
          "question": "Does current AI use Snap/Describe on both platforms?",
          "why_it_matters": "Help screenshots predate redesign.",
          "how_to_verify": "Record both apps and repeat photo/text/multi-image correction path.",
          "priority": "high"
        },
        {
          "question": "Do edited logged quantities and exploded ingredients persist after restart/sync?",
          "why_it_matters": "Correction durability is trust-critical.",
          "how_to_verify": "Use synthetic meal, edit, restart, compare export and second device.",
          "priority": "high"
        },
        {
          "question": "Can erroneous bulk pastes be undone safely?",
          "why_it_matters": "Batch reuse increases damage radius.",
          "how_to_verify": "Paste to several dates then inspect undo/delete across dates.",
          "priority": "high"
        },
        {
          "question": "How are offline writes merged?",
          "why_it_matters": "Cached logging is not a complete offline guarantee.",
          "how_to_verify": "Airplane-mode add/edit/delete then reconnect and compare records.",
          "priority": "high"
        },
        {
          "question": "What exact data does Granular Export include?",
          "why_it_matters": "Portability claims may exceed food-level export.",
          "how_to_verify": "Inspect downloaded tables, units, timestamps, recipes and photos.",
          "priority": "high"
        },
        {
          "question": "What is the deletion scope across Nutrition and Workouts?",
          "why_it_matters": "Shared account/body data may surprise users.",
          "how_to_verify": "Review destructive confirmation without submitting; ask support about retention.",
          "priority": "high"
        },
        {
          "question": "Which AI label formats/languages fail now?",
          "why_it_matters": "Old regional guidance is superseded by marketing updates.",
          "how_to_verify": "Test varied labels against manual transcription.",
          "priority": "medium"
        },
        {
          "question": "How does nutrient-goal history handle changed targets?",
          "why_it_matters": "Historical charts can imply past compliance against new goals.",
          "how_to_verify": "Change target on dated test data and inspect prior periods.",
          "priority": "medium"
        },
        {
          "question": "Are configurable nutrition reminders and native social functions available?",
          "why_it_matters": "Inspected sources do not settle feature parity.",
          "how_to_verify": "Inspect current settings and official release notes.",
          "priority": "medium"
        },
        {
          "question": "What is the exact onboarding and paywall sequence?",
          "why_it_matters": "No account was created.",
          "how_to_verify": "Use authorized trial recording on clean install; do not purchase without approval.",
          "priority": "high"
        },
        {
          "question": "How accessible are charts and dense food editors?",
          "why_it_matters": "Device scaling claims do not establish accessible interaction.",
          "how_to_verify": "Test large text, screen reader order, contrast and reduced motion.",
          "priority": "medium"
        },
        {
          "question": "Are the current watch app capabilities equivalent across ecosystems?",
          "why_it_matters": "Nutrition watch docs exist but were not deeply audited.",
          "how_to_verify": "Inspect platform store availability and current help with devices.",
          "priority": "medium"
        }
      ]
    },
    {
      "slug": "myfitnesspal",
      "name": "MyFitnessPal",
      "researched_at": "2026-10-07",
      "scope": "Public first-party desk research; official help text and visually inspected screenshots. No signup, native testing, purchase, browser session, sync or destructive action.",
      "positioning": "Broad food diary with free manual logging, Premium capture/control/analysis, and Premium+ meal planning; AI Coach is a regional iOS paid rollout.",
      "mental_model": "Date → meal → food entry is the durable ledger. Foods, saved food groups and serving-based recipes feed it. Goals and exercise affect daily allowance; Progress interprets history; Planner and Coach remain adjacent to explicit logging.",
      "platforms": [
        "iOS",
        "Android",
        "web"
      ],
      "limitations": [
        "Documentation-derived transitions are not tested behavior.",
        "Mixed refreshed and legacy images; screenshot date/version often unknown.",
        "US focus; six-country English rollouts and OS restrictions preserved.",
        "No universal price asserted or checkout inspected.",
        "Recognition result/camera, onboarding, paywall, export and deletion screens not visually captured.",
        "A small number of stale linked help article APIs returned 404; alternatives fetched and failures retained.",
        "Inventory includes explicit external email/file-reader destinations and an unpictured profile destination; these are not native-screen captures."
      ],
      "sources": [
        {
          "id": "mfp-01",
          "title": "New App Experience: Today Tab and More",
          "url": "https://support.myfitnesspal.com/hc/en-us/articles/45276346234637-New-App-Experience-Today-Tab-and-More",
          "retrieved_at": "2026-10-07",
          "evidence_type": "official-help",
          "published_or_updated": "2026-09-15T10:08:53Z"
        },
        {
          "id": "mfp-02",
          "title": "Your Today tab",
          "url": "https://support.myfitnesspal.com/hc/en-us/articles/39985611667341-Your-Today-tab",
          "retrieved_at": "2026-10-07",
          "evidence_type": "official-help",
          "published_or_updated": "2026-10-02T00:11:57Z"
        },
        {
          "id": "mfp-03",
          "title": "Introducing Progress Overview: Your Progress, Personalized",
          "url": "https://support.myfitnesspal.com/hc/en-us/articles/45246617814669-Introducing-Progress-Overview-Your-Progress-Personalized",
          "retrieved_at": "2026-10-07",
          "evidence_type": "official-help",
          "published_or_updated": "2026-08-02T05:32:04Z"
        },
        {
          "id": "mfp-04",
          "title": "Introducing Nutrition Coach: Your Nutrition Assistant",
          "url": "https://support.myfitnesspal.com/hc/en-us/articles/45212266254221-Introducing-Nutrition-Coach-Your-Nutrition-Assistant",
          "retrieved_at": "2026-10-07",
          "evidence_type": "official-help",
          "published_or_updated": "2026-10-02T02:25:49Z"
        },
        {
          "id": "mfp-05",
          "title": "The difference between Free, Premium, and Premium +",
          "url": "https://support.myfitnesspal.com/hc/en-us/articles/34889191368077-The-difference-between-Free-Premium-and-Premium",
          "retrieved_at": "2026-10-07",
          "evidence_type": "official-help",
          "published_or_updated": "2026-10-05T18:16:14Z"
        },
        {
          "id": "mfp-06",
          "title": "How does MyFitnessPal calculate my initial goals?",
          "url": "https://support.myfitnesspal.com/hc/en-us/articles/360032625391-How-does-MyFitnessPal-calculate-my-initial-goals",
          "retrieved_at": "2026-10-07",
          "evidence_type": "official-help",
          "published_or_updated": "2026-09-29T22:33:58Z"
        },
        {
          "id": "mfp-07",
          "title": "Customize your nutritional goals",
          "url": "https://support.myfitnesspal.com/hc/en-us/articles/360032274432-Customize-your-nutritional-goals",
          "retrieved_at": "2026-10-07",
          "evidence_type": "official-help",
          "published_or_updated": "2026-08-27T00:27:21Z"
        },
        {
          "id": "mfp-08",
          "title": "How to log food to your diary",
          "url": "https://support.myfitnesspal.com/hc/en-us/articles/360032274592-How-to-log-food-to-your-diary",
          "retrieved_at": "2026-10-07",
          "evidence_type": "official-help",
          "published_or_updated": "2026-10-05T17:50:42Z"
        },
        {
          "id": "mfp-09",
          "title": "How to use the Barcode Scanner",
          "url": "https://support.myfitnesspal.com/hc/en-us/articles/360032624771-How-to-use-the-Barcode-Scanner",
          "retrieved_at": "2026-10-07",
          "evidence_type": "official-help",
          "published_or_updated": "2026-09-03T21:30:11Z"
        },
        {
          "id": "mfp-10",
          "title": "How to use the Meal Scanner",
          "url": "https://support.myfitnesspal.com/hc/en-us/articles/360045761612-How-to-use-the-Meal-Scanner",
          "retrieved_at": "2026-10-07",
          "evidence_type": "official-help",
          "published_or_updated": "2026-09-16T18:08:57Z"
        },
        {
          "id": "mfp-11",
          "title": "How to log food with your voice",
          "url": "https://support.myfitnesspal.com/hc/en-us/articles/30332897072269-How-to-log-food-with-your-voice",
          "retrieved_at": "2026-10-07",
          "evidence_type": "official-help",
          "published_or_updated": "2026-09-21T21:25:13Z"
        },
        {
          "id": "mfp-12",
          "title": "Getting started with Quick Add",
          "url": "https://support.myfitnesspal.com/hc/en-us/articles/360032621971-Getting-started-with-Quick-Add",
          "retrieved_at": "2026-10-07",
          "evidence_type": "official-help",
          "published_or_updated": "2026-09-25T17:37:43Z"
        },
        {
          "id": "mfp-13",
          "title": "How to delete an entry from your food diary",
          "url": "https://support.myfitnesspal.com/hc/en-us/articles/360032624311-How-to-delete-an-entry-from-your-food-diary",
          "retrieved_at": "2026-10-07",
          "evidence_type": "official-help",
          "published_or_updated": "2026-08-27T00:25:50Z"
        },
        {
          "id": "mfp-14",
          "title": "How do I copy a meal from one day to another?",
          "url": "https://support.myfitnesspal.com/hc/en-us/articles/360032622131-How-do-I-copy-a-meal-from-one-day-to-another",
          "retrieved_at": "2026-10-07",
          "evidence_type": "official-help",
          "published_or_updated": "2026-10-04T21:41:50Z"
        },
        {
          "id": "mfp-15",
          "title": "Create, find, and log your saved meals.",
          "url": "https://support.myfitnesspal.com/hc/en-us/articles/360032625331-Create-find-and-log-your-saved-meals",
          "retrieved_at": "2026-10-07",
          "evidence_type": "official-help",
          "published_or_updated": "2026-09-26T17:55:58Z"
        },
        {
          "id": "mfp-16",
          "title": "How to create and find your recipes",
          "url": "https://support.myfitnesspal.com/hc/en-us/articles/360032271452-How-to-create-and-find-your-recipes",
          "retrieved_at": "2026-10-07",
          "evidence_type": "official-help",
          "published_or_updated": "2026-09-29T20:26:49Z"
        },
        {
          "id": "mfp-17",
          "title": "How the Recipe Importer works in the iOS and Android apps",
          "url": "https://support.myfitnesspal.com/hc/en-us/articles/360032623231-How-the-Recipe-Importer-works-in-the-iOS-and-Android-apps",
          "retrieved_at": "2026-10-07",
          "evidence_type": "official-help",
          "published_or_updated": "2026-09-29T20:22:00Z"
        },
        {
          "id": "mfp-18",
          "title": "How to edit or delete a recipe",
          "url": "https://support.myfitnesspal.com/hc/en-us/articles/360032271372-How-to-edit-or-delete-a-recipe",
          "retrieved_at": "2026-10-07",
          "evidence_type": "official-help",
          "published_or_updated": "2026-10-05T18:38:11Z"
        },
        {
          "id": "mfp-19",
          "title": "How to use the Meal Planner",
          "url": "https://support.myfitnesspal.com/hc/en-us/articles/34603055097869-How-to-use-the-Meal-Planner",
          "retrieved_at": "2026-10-07",
          "evidence_type": "official-help",
          "published_or_updated": "2026-10-01T22:03:27Z"
        },
        {
          "id": "mfp-20",
          "title": "Check Marked items",
          "url": "https://support.myfitnesspal.com/hc/en-us/articles/360032273292-Check-Marked-items",
          "retrieved_at": "2026-10-07",
          "evidence_type": "official-help",
          "published_or_updated": "2026-09-21T11:47:32Z"
        },
        {
          "id": "mfp-21",
          "title": "Can I access MyFitnessPal when I don't have an internet connection?",
          "url": "https://support.myfitnesspal.com/hc/en-us/articles/360032622851-Can-I-access-MyFitnessPal-when-I-don-t-have-an-internet-connection",
          "retrieved_at": "2026-10-07",
          "evidence_type": "official-help",
          "published_or_updated": "2026-08-27T14:38:31Z"
        },
        {
          "id": "mfp-22",
          "title": "Apple Health connection and syncing",
          "url": "https://support.myfitnesspal.com/hc/en-us/articles/360032271092-Apple-Health-connection-and-syncing",
          "retrieved_at": "2026-10-07",
          "evidence_type": "official-help",
          "published_or_updated": "2026-09-24T14:13:08Z"
        },
        {
          "id": "mfp-23",
          "title": "Health Connect FAQ and Troubleshooting",
          "url": "https://support.myfitnesspal.com/hc/en-us/articles/10553948248973-Health-Connect-FAQ-and-Troubleshooting",
          "retrieved_at": "2026-10-07",
          "evidence_type": "official-help",
          "published_or_updated": "2026-07-10T20:10:22Z"
        },
        {
          "id": "mfp-24",
          "title": "Why your daily nutrient values and calorie goal change you log exercise",
          "url": "https://support.myfitnesspal.com/hc/en-us/articles/360032623851-Why-your-daily-nutrient-values-and-calorie-goal-change-you-log-exercise",
          "retrieved_at": "2026-10-07",
          "evidence_type": "official-help",
          "published_or_updated": "2026-10-01T20:32:34Z"
        },
        {
          "id": "mfp-25",
          "title": "Export your nutrition, progress, and exercise data",
          "url": "https://support.myfitnesspal.com/hc/en-us/articles/360032273352-Export-your-nutrition-progress-and-exercise-data",
          "retrieved_at": "2026-10-07",
          "evidence_type": "official-help",
          "published_or_updated": "2026-08-27T00:24:58Z"
        },
        {
          "id": "mfp-26",
          "title": "How to cancel your Premium subscription renewal",
          "url": "https://support.myfitnesspal.com/hc/en-us/articles/360032625371-How-to-cancel-your-Premium-subscription-renewal",
          "retrieved_at": "2026-10-07",
          "evidence_type": "official-help",
          "published_or_updated": "2026-10-05T14:21:25Z"
        },
        {
          "id": "mfp-27",
          "title": "How to delete your MyFitnessPal account",
          "url": "https://support.myfitnesspal.com/hc/en-us/articles/360032622451-How-to-delete-your-MyFitnessPal-account",
          "retrieved_at": "2026-10-07",
          "evidence_type": "official-help",
          "published_or_updated": "2026-09-30T16:58:59Z"
        },
        {
          "id": "mfp-28",
          "title": "How do I record my weight and other measurements?",
          "url": "https://support.myfitnesspal.com/hc/en-us/articles/360032624431-How-do-I-record-my-weight-and-other-measurements",
          "retrieved_at": "2026-10-07",
          "evidence_type": "official-help",
          "published_or_updated": "2026-09-29T22:20:21Z"
        },
        {
          "id": "mfp-29",
          "title": "Progress Photos FAQs",
          "url": "https://support.myfitnesspal.com/hc/en-us/articles/360032625271-Progress-Photos-FAQs",
          "retrieved_at": "2026-10-07",
          "evidence_type": "official-help",
          "published_or_updated": "2026-08-27T00:20:44Z"
        },
        {
          "id": "mfp-30",
          "title": "How to track how much water you drink",
          "url": "https://support.myfitnesspal.com/hc/en-us/articles/360032270732-How-to-track-how-much-water-you-drink",
          "retrieved_at": "2026-10-07",
          "evidence_type": "official-help",
          "published_or_updated": "2026-10-04T07:20:05Z"
        },
        {
          "id": "mfp-31",
          "title": "How to set up logging reminders",
          "url": "https://support.myfitnesspal.com/hc/en-us/articles/360032622391-How-to-set-up-logging-reminders",
          "retrieved_at": "2026-10-07",
          "evidence_type": "official-help",
          "published_or_updated": "2026-10-01T19:49:42Z"
        },
        {
          "id": "mfp-32",
          "title": "How to add a Widget to mobile Home Screen",
          "url": "https://support.myfitnesspal.com/hc/en-us/articles/6886354417165-How-to-add-a-Widget-to-mobile-Home-Screen",
          "retrieved_at": "2026-10-07",
          "evidence_type": "official-help",
          "published_or_updated": "2026-08-27T00:23:44Z"
        },
        {
          "id": "mfp-33",
          "title": "Track Intermittent Fasting with MyFitnessPal Premium",
          "url": "https://support.myfitnesspal.com/hc/en-us/articles/10983207647117-Track-Intermittent-Fasting-with-MyFitnessPal-Premium",
          "retrieved_at": "2026-10-07",
          "evidence_type": "official-help",
          "published_or_updated": "2026-08-17T18:22:15Z"
        },
        {
          "id": "mfp-34",
          "title": "How do I make my diary visible to other users?",
          "url": "https://support.myfitnesspal.com/hc/en-us/articles/360032273872-How-do-I-make-my-diary-visible-to-other-users",
          "retrieved_at": "2026-10-07",
          "evidence_type": "official-help",
          "published_or_updated": "2026-09-01T14:36:10Z"
        },
        {
          "id": "mfp-35",
          "title": "Can I access my MyFitnessPal account on the web?",
          "url": "https://support.myfitnesspal.com/hc/en-us/articles/360032623131-Can-I-access-my-MyFitnessPal-account-on-the-web",
          "retrieved_at": "2026-10-07",
          "evidence_type": "official-help",
          "published_or_updated": "2026-09-30T19:18:25Z"
        },
        {
          "id": "mfp-36",
          "title": "MyFitnessPal Premium features",
          "url": "https://support.myfitnesspal.com/hc/en-us/articles/360032625951-MyFitnessPal-Premium-features",
          "retrieved_at": "2026-10-07",
          "evidence_type": "official-help",
          "published_or_updated": "2026-09-18T20:04:09Z"
        },
        {
          "id": "mfp-37",
          "title": "Multi-Day Logging with MyFitnessPal Premium",
          "url": "https://support.myfitnesspal.com/hc/en-us/articles/33535658002061-Multi-Day-Logging-with-MyFitnessPal-Premium",
          "retrieved_at": "2026-10-07",
          "evidence_type": "official-help",
          "published_or_updated": "2026-09-16T21:25:33Z"
        },
        {
          "id": "mfp-38",
          "title": "The barcode scanner returned the wrong item",
          "url": "https://support.myfitnesspal.com/hc/en-us/articles/360032270912-The-barcode-scanner-returned-the-wrong-item",
          "retrieved_at": "2026-10-07",
          "evidence_type": "official-help",
          "published_or_updated": "2026-10-01T17:23:03Z"
        },
        {
          "id": "mfp-39",
          "title": "How to report incorrect food items in the database",
          "url": "https://support.myfitnesspal.com/hc/en-us/articles/360032274312-How-to-report-incorrect-food-items-in-the-database",
          "retrieved_at": "2026-10-07",
          "evidence_type": "official-help",
          "published_or_updated": "2026-10-01T19:11:41Z"
        },
        {
          "id": "mfp-40",
          "title": "How can I force my calorie goals to update?",
          "url": "https://support.myfitnesspal.com/hc/en-us/articles/360032271472-How-can-I-force-my-calorie-goals-to-update",
          "retrieved_at": "2026-10-07",
          "evidence_type": "official-help",
          "published_or_updated": "2026-09-12T04:46:23Z"
        },
        {
          "id": "mfp-41",
          "title": "Weekly Digest",
          "url": "https://support.myfitnesspal.com/hc/en-us/articles/360032622591-Weekly-Digest",
          "retrieved_at": "2026-10-07",
          "evidence_type": "official-help",
          "published_or_updated": "2026-08-27T00:20:44Z"
        },
        {
          "id": "mfp-42",
          "title": "Using Food Lists with MyFitnessPal Premium",
          "url": "https://support.myfitnesspal.com/hc/en-us/articles/360032272712-Using-Food-Lists-with-MyFitnessPal-Premium",
          "retrieved_at": "2026-10-07",
          "evidence_type": "official-help",
          "published_or_updated": "2026-08-27T00:20:13Z"
        },
        {
          "id": "mfp-43",
          "title": "Google Health (Fitbit) connection and step source",
          "url": "https://support.myfitnesspal.com/hc/en-us/articles/360039592171-Google-Health-Fitbit-connection-and-step-source",
          "retrieved_at": "2026-10-07",
          "evidence_type": "official-help",
          "published_or_updated": "2026-08-29T20:17:19Z"
        },
        {
          "id": "mfp-44",
          "title": "What is included in the free version?",
          "url": "https://support.myfitnesspal.com/hc/en-us/articles/15457546881805-What-is-included-in-the-free-version",
          "retrieved_at": "2026-10-07",
          "evidence_type": "official-help",
          "published_or_updated": "2026-09-06T19:49:09Z"
        },
        {
          "id": "mfp-45",
          "title": "How to log a food that's not in the database",
          "url": "https://support.myfitnesspal.com/hc/en-us/articles/360032271992-How-to-log-a-food-that-s-not-in-the-database",
          "retrieved_at": "2026-10-07",
          "evidence_type": "official-help",
          "published_or_updated": "2026-09-30T20:30:40Z"
        },
        {
          "id": "mfp-46",
          "title": "Why calories burned from strength training aren't calculated",
          "url": "https://support.myfitnesspal.com/hc/en-us/articles/360032625431-Why-calories-burned-from-strength-training-aren-t-calculated",
          "retrieved_at": "2026-10-07",
          "evidence_type": "official-help",
          "published_or_updated": "2026-07-20T19:02:38Z"
        },
        {
          "id": "mfp-47",
          "title": "Can I change my calorie goal without affecting my historical entries?",
          "url": "https://support.myfitnesspal.com/hc/en-us/articles/360032624071-Can-I-change-my-calorie-goal-without-affecting-my-historical-entries",
          "retrieved_at": "2026-10-07",
          "evidence_type": "official-help",
          "published_or_updated": "2026-09-29T13:27:16Z"
        },
        {
          "id": "mfp-48",
          "title": "What to do if the serving size you need isn't available",
          "url": "https://support.myfitnesspal.com/hc/en-us/articles/360032272852-What-to-do-if-the-serving-size-you-need-isn-t-available",
          "retrieved_at": "2026-10-07",
          "evidence_type": "official-help",
          "published_or_updated": "2026-09-24T20:53:51Z"
        }
      ],
      "features": [
        {
          "key": "onboarding",
          "label": "Profile-based setup",
          "status": "documented",
          "tier": "Free",
          "platforms": "iOS; Android; web",
          "detail": "Age, height, weight, sex, activity and desired weekly weight change inform the initial target; exact onboarding screen order unverified.",
          "sources": [
            "mfp-06"
          ]
        },
        {
          "key": "goal_setting",
          "label": "Nutrition goals",
          "status": "documented",
          "tier": "Free; enhanced Premium",
          "platforms": "iOS; Android; web",
          "detail": "Custom calories and percentage macros; iOS documentation also shows Recommended Calories toggle and macro-balance presets.",
          "sources": [
            "mfp-07"
          ]
        },
        {
          "key": "calorie_budget",
          "label": "Net-calorie budget",
          "status": "documented",
          "tier": "Free",
          "platforms": "iOS; Android; web",
          "detail": "Daily allowance accounts for weight goal and can increase with logged cardio; exercise adjustments are not expenditure learning.",
          "sources": [
            "mfp-06",
            "mfp-24"
          ]
        },
        {
          "key": "macro_targets",
          "label": "Macro targets",
          "status": "documented",
          "tier": "Free percentages; Premium grams/day-specific",
          "platforms": "iOS; Android; web",
          "detail": "Free percentage increments; Premium precise gram goals and different targets by weekday.",
          "sources": [
            "mfp-07"
          ]
        },
        {
          "key": "micronutrients",
          "label": "Nutrient reporting",
          "status": "documented",
          "tier": "Free charts; Premium ranked foods",
          "platforms": "iOS; Android; web",
          "detail": "Nutrients tab provides consumed, goal and remaining values. Food completeness varies; do not assume comprehensive lab-grade micronutrients.",
          "sources": [
            "mfp-44",
            "mfp-42",
            "mfp-20"
          ]
        },
        {
          "key": "food_search",
          "label": "Database search",
          "status": "documented",
          "tier": "Free",
          "platforms": "iOS; Android; web",
          "detail": "Name/brand search, inspect details or quick-log with result plus.",
          "sources": [
            "mfp-08"
          ]
        },
        {
          "key": "verified_database",
          "label": "Reviewed database entries",
          "status": "documented",
          "tier": "Free",
          "platforms": "iOS; Android; web",
          "detail": "Check mark signals vendor review/addition, not error-free nutrition; unmarked does not mean incorrect.",
          "sources": [
            "mfp-20"
          ]
        },
        {
          "key": "barcode_scan",
          "label": "Barcode scanning",
          "status": "documented",
          "tier": "Premium / Premium+",
          "platforms": "iOS; Android",
          "detail": "Rear camera and camera permission required; mobile only. Wrong associations can be replaced for all users.",
          "sources": [
            "mfp-09",
            "mfp-38"
          ]
        },
        {
          "key": "label_scan",
          "label": "Nutrition-label OCR",
          "status": "not-found",
          "tier": "Unknown",
          "platforms": "Unknown",
          "detail": "No dedicated OCR label-entry flow found; documented label fallback is manual custom-food entry, distinct from barcode lookup.",
          "sources": [
            "mfp-09",
            "mfp-45"
          ]
        },
        {
          "key": "photo_logging",
          "label": "Meal Scan",
          "status": "limited",
          "tier": "Premium / Premium+",
          "platforms": "iOS 18+; Android 13+; English; app 22.17+",
          "detail": "Suggested foods require selection and portion review. iOS documents photo upload; Android instructions document camera capture only.",
          "sources": [
            "mfp-10"
          ]
        },
        {
          "key": "voice_logging",
          "label": "Voice Logging",
          "status": "limited",
          "tier": "Premium / Premium+",
          "platforms": "iOS; Android; English; app 24.35+",
          "detail": "Speech resolves database foods for review; excludes saved personal foods, recipes, meals, Quick Add and non-food logs; requires internet.",
          "sources": [
            "mfp-11"
          ]
        },
        {
          "key": "text_ai",
          "label": "Typed natural-language logging",
          "status": "not-found",
          "tier": "Unknown",
          "platforms": "Unknown",
          "detail": "Coach accepts typed questions but explicitly cannot log food. Recipe bulk text import is separate; general typed meal-to-diary AI not verified.",
          "sources": [
            "mfp-04",
            "mfp-16"
          ]
        },
        {
          "key": "quick_add",
          "label": "Quick Add calories / macros",
          "status": "documented",
          "tier": "Free calories; Premium macros",
          "platforms": "iOS; Android; web",
          "detail": "Enter totals without selecting a food; labels unavailable, notes suggested. Different from search-result Quick Log.",
          "sources": [
            "mfp-12"
          ]
        },
        {
          "key": "portion_edit",
          "label": "Serving correction",
          "status": "documented",
          "tier": "Free",
          "platforms": "iOS; Android; web",
          "detail": "Serving choices depend on database entry; adjust count, use another entry or create food when unit is missing.",
          "sources": [
            "mfp-48"
          ]
        },
        {
          "key": "meal_correction",
          "label": "Correct diary entries",
          "status": "documented",
          "tier": "Free",
          "platforms": "iOS; Android; web",
          "detail": "Food details permit changes; delete gesture differs by platform. Reporting database errors is reviewed rather than immediate.",
          "sources": [
            "mfp-11",
            "mfp-13",
            "mfp-39"
          ]
        },
        {
          "key": "history_favorites",
          "label": "History and personal library",
          "status": "documented",
          "tier": "Free",
          "platforms": "iOS; Android; web",
          "detail": "Recent/frequent lists populate automatically; My Foods and My Meals provide intentional reuse. No universal star-favorites behavior verified.",
          "sources": [
            "mfp-44"
          ]
        },
        {
          "key": "copy_meals",
          "label": "Copy across dates/meals",
          "status": "limited",
          "tier": "Free meal copy; Premium multi-day",
          "platforms": "iOS; Android; web",
          "detail": "Refreshed Today says meal-level copy only; older copy article describes item selection. Multi-day adds up to seven days, with no bulk undo.",
          "sources": [
            "mfp-02",
            "mfp-14",
            "mfp-37"
          ]
        },
        {
          "key": "saved_meals",
          "label": "Saved food groups",
          "status": "documented",
          "tier": "Free",
          "platforms": "iOS; Android; web",
          "detail": "Saved meal logs as separate food entries, not the custom meal name; mobile supports variations via Copy Meal.",
          "sources": [
            "mfp-15"
          ]
        },
        {
          "key": "recipes",
          "label": "Recipe builder",
          "status": "documented",
          "tier": "Free",
          "platforms": "iOS; Android; web",
          "detail": "Ingredient totals divided by yield; manually enter or bulk-match ingredients. Recipes remain editable.",
          "sources": [
            "mfp-16",
            "mfp-18"
          ]
        },
        {
          "key": "recipe_import",
          "label": "Web recipe import",
          "status": "documented",
          "tier": "Free",
          "platforms": "English; iOS; Android; web",
          "detail": "Paste a recipe URL, review ingredient matches, set yield and save. Exact review controls differ across platforms.",
          "sources": [
            "mfp-17"
          ]
        },
        {
          "key": "meal_planning",
          "label": "Meal Planner and groceries",
          "status": "limited",
          "tier": "Premium+",
          "platforms": "iOS; Android; English; six documented countries",
          "detail": "App 25.10+; US, UK, Canada, Ireland, NZ, Australia. Plans span 2–15 days; grocery-service selection varies by country/platform.",
          "sources": [
            "mfp-19"
          ]
        },
        {
          "key": "water",
          "label": "Water logging",
          "status": "documented",
          "tier": "Free",
          "platforms": "iOS; Android; web",
          "detail": "Healthy Habits water card; change units; date-aware logging and account sync documented.",
          "sources": [
            "mfp-30"
          ]
        },
        {
          "key": "weight_trend",
          "label": "Weight history and progress chart",
          "status": "documented",
          "tier": "Free",
          "platforms": "iOS; Android; web",
          "detail": "Logged measurements charted over selected timeframes; smoothed trend-weight algorithm not established.",
          "sources": [
            "mfp-28",
            "mfp-03"
          ]
        },
        {
          "key": "body_metrics",
          "label": "Body measurements",
          "status": "documented",
          "tier": "Free",
          "platforms": "iOS; Android; web",
          "detail": "Once-daily weight/other measurements; measurement selector supports more than weight.",
          "sources": [
            "mfp-28"
          ]
        },
        {
          "key": "progress_photos",
          "label": "Weigh-in photos",
          "status": "limited",
          "tier": "Free / no gate stated",
          "platforms": "iOS; Android; not web",
          "detail": "Photos attach to weigh-ins and sync to account; private unless shared, not automatically saved to camera roll.",
          "sources": [
            "mfp-29"
          ]
        },
        {
          "key": "exercise_logging",
          "label": "Exercise diary",
          "status": "documented",
          "tier": "Free; some Premium routines",
          "platforms": "iOS; Android; web",
          "detail": "Cardio, strength and routines paths; ordinary strength entries do not automatically calculate burn.",
          "sources": [
            "mfp-46"
          ]
        },
        {
          "key": "wearable_sync",
          "label": "Partner and tracker connections",
          "status": "documented",
          "tier": "Free connections; selected Premium details",
          "platforms": "iOS; Android; web",
          "detail": "Apps & Devices plus separate Steps source selection. Current help calls Fitbit Google Health; future data only on linking.",
          "sources": [
            "mfp-43",
            "mfp-36"
          ]
        },
        {
          "key": "health_platform_sync",
          "label": "Apple Health / Health Connect",
          "status": "limited",
          "tier": "Free",
          "platforms": "iPhone Apple Health; Android Health Connect",
          "detail": "Direction and data fidelity differ. Apple food out/exercise in/weight both ways; Health Connect meal summaries, steps, cardio, water and sleep.",
          "sources": [
            "mfp-22",
            "mfp-23"
          ]
        },
        {
          "key": "adaptive_targets",
          "label": "Target recalculation",
          "status": "limited",
          "tier": "Free; Premium exercise controls",
          "platforms": "iOS; Android; web",
          "detail": "Weight-loss recalculation prompts and cardio adjustments documented; no intake/weight-derived expenditure-learning algorithm verified.",
          "sources": [
            "mfp-40",
            "mfp-24"
          ]
        },
        {
          "key": "weekly_review",
          "label": "Progress Overview and Weekly Digest",
          "status": "limited",
          "tier": "Free baseline; Premium tips/archive",
          "platforms": "iOS; Android; email/report surfaces",
          "detail": "Overview requires English, app 26.16+ in six countries. Digest free history limited to last two reports.",
          "sources": [
            "mfp-03",
            "mfp-41"
          ]
        },
        {
          "key": "fasting",
          "label": "Fasting timer/history",
          "status": "limited",
          "tier": "Premium / Premium+",
          "platforms": "iPhone; Android; not iPad/web",
          "detail": "Manual start/stop and history corrections; does not modify nutrition goals.",
          "sources": [
            "mfp-33"
          ]
        },
        {
          "key": "reminders",
          "label": "Conditional logging reminders",
          "status": "documented",
          "tier": "Free / no gate stated",
          "platforms": "iOS; Android; not web",
          "detail": "Meal/time reminders, independent toggles and deletion. OS notifications must be permitted.",
          "sources": [
            "mfp-31"
          ]
        },
        {
          "key": "widgets",
          "label": "Calories/macros and water widgets",
          "status": "documented",
          "tier": "Tier not specified in article",
          "platforms": "iOS; Android",
          "detail": "Calories/macros widgets; interactive water on iOS18+; Android widget resizing requires Android13+.",
          "sources": [
            "mfp-32"
          ]
        },
        {
          "key": "offline_logging",
          "label": "Offline diary changes",
          "status": "limited",
          "tier": "Limited",
          "platforms": "iOS; Android",
          "detail": "Food database unavailable offline; existing diary changes synchronize later. Voice explicitly requires connection; cached catalog extent unverified.",
          "sources": [
            "mfp-21",
            "mfp-11"
          ]
        },
        {
          "key": "data_export",
          "label": "CSV export / printable report",
          "status": "documented",
          "tier": "Premium CSV; Free web printable report",
          "platforms": "iOS; Android; web",
          "detail": "Emailed ZIP of meal-level nutrition, measurements and exercise; not demonstrated item-level food portability.",
          "sources": [
            "mfp-25",
            "mfp-44"
          ]
        },
        {
          "key": "data_delete",
          "label": "Permanent account deletion",
          "status": "documented",
          "tier": "All accounts",
          "platforms": "iOS; Android; web",
          "detail": "Mobile Help > Delete Account; web Settings > Delete Account. Irreversible; not the same as canceling renewal.",
          "sources": [
            "mfp-27",
            "mfp-26"
          ]
        },
        {
          "key": "subscription_cancel",
          "label": "Cancel renewal",
          "status": "documented",
          "tier": "Paid subscriptions",
          "platforms": "Original Apple / Google Play / web billing platform",
          "detail": "Use original purchase channel; paid access remains through the billing period. Downgrade retains history.",
          "sources": [
            "mfp-26",
            "mfp-05"
          ]
        },
        {
          "key": "web_app",
          "label": "Synchronized web diary",
          "status": "documented",
          "tier": "Free; Premium enhancements",
          "platforms": "Web",
          "detail": "Food/exercise diaries, reports, community and account tools. Same account syncs online; camera/voice/planner availability differs.",
          "sources": [
            "mfp-35",
            "mfp-09",
            "mfp-11"
          ]
        },
        {
          "key": "social",
          "label": "Diary sharing and community",
          "status": "documented",
          "tier": "Free",
          "platforms": "iOS; Android; web",
          "detail": "Public, friends-only or key-locked diary sharing; friend diary access and meal copying documented.",
          "sources": [
            "mfp-34",
            "mfp-44"
          ]
        },
        {
          "key": "coaching",
          "label": "Nutrition Coach",
          "status": "limited",
          "tier": "Premium / Premium+",
          "platforms": "iOS only; English; six documented countries; staged rollout",
          "detail": "Diary-informed AI conversation; cannot log foods, edit goals or access weight history. Not medical advice.",
          "sources": [
            "mfp-04"
          ]
        }
      ],
      "screens": [
        {
          "id": "today",
          "name": "Today daily hub",
          "area": "Daily log",
          "entry": "Open app",
          "primary_actions": [
            "Select date",
            "Log meal",
            "Open full diary",
            "Open profile"
          ],
          "states": [
            "Meal summaries",
            "Calories/macros",
            "Healthy Habits below fold"
          ],
          "platform": "iOS; Android",
          "tier": "Free with paid detail",
          "evidence": "visual",
          "sources": [
            "mfp-02"
          ],
          "visual_ids": [
            "v01",
            "v02",
            "v03",
            "v06"
          ]
        },
        {
          "id": "food-search",
          "name": "Food entry / history",
          "area": "Logging",
          "entry": "Meal Log or blue plus",
          "primary_actions": [
            "Search",
            "Select meal",
            "Open History/My Meals/My Recipes/My Foods",
            "Choose entry method"
          ],
          "states": [
            "History tab",
            "Search input"
          ],
          "platform": "iOS visual; Android documented",
          "tier": "Free; paid scanners/voice",
          "evidence": "visual",
          "sources": [
            "mfp-08",
            "mfp-10"
          ],
          "visual_ids": [
            "v09"
          ]
        },
        {
          "id": "add-menu",
          "name": "Android add menu",
          "area": "Logging",
          "entry": "Blue plus",
          "primary_actions": [
            "Log Food",
            "Barcode Scan",
            "Voice Log",
            "Meal Scan"
          ],
          "states": [
            "Four large tiles"
          ],
          "platform": "Android",
          "tier": "Mixed",
          "evidence": "visual",
          "sources": [
            "mfp-09",
            "mfp-10",
            "mfp-11"
          ],
          "visual_ids": [
            "v10"
          ]
        },
        {
          "id": "food-detail",
          "name": "Food details",
          "area": "Logging",
          "entry": "Tap search result",
          "primary_actions": [
            "Adjust serving",
            "Change meal",
            "Log",
            "Report Food"
          ],
          "states": [
            "Before commit",
            "Existing entry"
          ],
          "platform": "iOS; Android; web",
          "tier": "Free; paid extras",
          "evidence": "documented",
          "sources": [
            "mfp-08",
            "mfp-39"
          ],
          "visual_ids": []
        },
        {
          "id": "barcode",
          "name": "Barcode camera",
          "area": "Logging",
          "entry": "Barcode Scan",
          "primary_actions": [
            "Scan package",
            "Allow camera"
          ],
          "states": [
            "Permission",
            "Matching",
            "Missing/wrong item"
          ],
          "platform": "iOS; Android",
          "tier": "Premium",
          "evidence": "documented",
          "sources": [
            "mfp-09"
          ],
          "visual_ids": []
        },
        {
          "id": "barcode-repair",
          "name": "Better barcode match",
          "area": "Correction",
          "entry": "Wrong scan result",
          "primary_actions": [
            "Find a better match",
            "Search correct food"
          ],
          "states": [
            "iOS top action",
            "Android bottom action"
          ],
          "platform": "iOS; Android",
          "tier": "Premium",
          "evidence": "documented",
          "sources": [
            "mfp-38"
          ],
          "visual_ids": []
        },
        {
          "id": "meal-scan",
          "name": "Meal Scan camera/results",
          "area": "Logging",
          "entry": "Meal Scan",
          "primary_actions": [
            "Capture",
            "Select suggestions",
            "Add more",
            "Review portions",
            "Log"
          ],
          "states": [
            "First-use walkthrough",
            "Results",
            "Missing food"
          ],
          "platform": "iOS; Android",
          "tier": "Premium",
          "evidence": "documented",
          "sources": [
            "mfp-10"
          ],
          "visual_ids": []
        },
        {
          "id": "voice",
          "name": "Voice capture/results",
          "area": "Logging",
          "entry": "Voice Log",
          "primary_actions": [
            "Speak",
            "Submit arrow",
            "Edit results",
            "Try again",
            "Log"
          ],
          "states": [
            "Permission",
            "Listening",
            "Review"
          ],
          "platform": "iOS; Android",
          "tier": "Premium",
          "evidence": "documented",
          "sources": [
            "mfp-11"
          ],
          "visual_ids": []
        },
        {
          "id": "quick-add",
          "name": "Quick Add",
          "area": "Logging",
          "entry": "Logging hub > Quick Add",
          "primary_actions": [
            "Enter calories",
            "Enter macros",
            "Save"
          ],
          "states": [
            "Calories only",
            "Paid macro fields"
          ],
          "platform": "iOS; Android; web",
          "tier": "Free/Premium",
          "evidence": "documented",
          "sources": [
            "mfp-12"
          ],
          "visual_ids": []
        },
        {
          "id": "diary",
          "name": "Full diary / View all",
          "area": "Daily log",
          "entry": "Today > View all/View diary",
          "primary_actions": [
            "Review meals",
            "Edit food",
            "Delete entry"
          ],
          "states": [
            "All meals",
            "Meal selector"
          ],
          "platform": "iOS; Android",
          "tier": "Free",
          "evidence": "documented",
          "sources": [
            "mfp-02",
            "mfp-13"
          ],
          "visual_ids": []
        },
        {
          "id": "meal-menu",
          "name": "Meal overflow",
          "area": "Reuse",
          "entry": "Today meal ellipsis",
          "primary_actions": [
            "Copy from",
            "Copy to",
            "Save meal"
          ],
          "states": [
            "Pop-up menu"
          ],
          "platform": "iOS; Android; screenshot platform unspecified",
          "tier": "Free",
          "evidence": "visual",
          "sources": [
            "mfp-02"
          ],
          "visual_ids": [
            "v04"
          ]
        },
        {
          "id": "meal-library",
          "name": "My Meals",
          "area": "Reuse",
          "entry": "Food entry library or profile library",
          "primary_actions": [
            "Create",
            "Select",
            "Quick-log",
            "Copy meal"
          ],
          "states": [
            "Saved meals",
            "Meal variation"
          ],
          "platform": "iOS; Android; web",
          "tier": "Free",
          "evidence": "documented",
          "sources": [
            "mfp-15"
          ],
          "visual_ids": []
        },
        {
          "id": "meal-editor",
          "name": "Meal editor",
          "area": "Reuse",
          "entry": "Create meal / selected meal",
          "primary_actions": [
            "Name",
            "Add food",
            "Add photo",
            "Save"
          ],
          "states": [
            "New",
            "Editing"
          ],
          "platform": "iOS; Android",
          "tier": "Free",
          "evidence": "documented",
          "sources": [
            "mfp-15"
          ],
          "visual_ids": []
        },
        {
          "id": "recipe-library",
          "name": "Recipes / Recipe Box",
          "area": "Recipes",
          "entry": "Profile library or web Food > Recipes",
          "primary_actions": [
            "Create",
            "Import",
            "Edit",
            "Log"
          ],
          "states": [
            "Saved recipes"
          ],
          "platform": "iOS; Android; web",
          "tier": "Free",
          "evidence": "documented",
          "sources": [
            "mfp-16"
          ],
          "visual_ids": []
        },
        {
          "id": "recipe-edit",
          "name": "Recipe ingredient editor",
          "area": "Recipes",
          "entry": "Create/edit recipe",
          "primary_actions": [
            "Match ingredients",
            "Adjust quantities",
            "Set yield",
            "Save"
          ],
          "states": [
            "Manual",
            "Bulk import",
            "Edit"
          ],
          "platform": "iOS; Android; web",
          "tier": "Free",
          "evidence": "documented",
          "sources": [
            "mfp-16",
            "mfp-18"
          ],
          "visual_ids": []
        },
        {
          "id": "recipe-import",
          "name": "Recipe URL import/review",
          "area": "Recipes",
          "entry": "Create recipe > Add from Web",
          "primary_actions": [
            "Paste URL",
            "Import",
            "Review matches"
          ],
          "states": [
            "Web input",
            "Review ingredients"
          ],
          "platform": "English iOS; Android; web",
          "tier": "Free",
          "evidence": "documented",
          "sources": [
            "mfp-17"
          ],
          "visual_ids": []
        },
        {
          "id": "custom-food",
          "name": "My Foods creation",
          "area": "Database",
          "entry": "My Foods > Create Food",
          "primary_actions": [
            "Enter name/serving",
            "Enter nutrients",
            "Save"
          ],
          "states": [
            "Personal food",
            "Unknown barcode public creation"
          ],
          "platform": "iOS; Android; web",
          "tier": "Free; barcode requires Premium",
          "evidence": "documented",
          "sources": [
            "mfp-45"
          ],
          "visual_ids": []
        },
        {
          "id": "report-food",
          "name": "Report Food",
          "area": "Database quality",
          "entry": "Food details bottom",
          "primary_actions": [
            "Choose issue",
            "Enter correction",
            "Submit"
          ],
          "states": [
            "Issue categories",
            "Submitted for review"
          ],
          "platform": "iOS; Android; web variant",
          "tier": "Free",
          "evidence": "documented",
          "sources": [
            "mfp-39"
          ],
          "visual_ids": []
        },
        {
          "id": "goals",
          "name": "Calorie and macro goals",
          "area": "Settings",
          "entry": "Profile/More > Goals",
          "primary_actions": [
            "Set calories",
            "Choose macro balance",
            "Adjust distribution"
          ],
          "states": [
            "Recommended/custom",
            "Premium grams"
          ],
          "platform": "iOS; Android; web variant",
          "tier": "Free/Premium",
          "evidence": "visual",
          "sources": [
            "mfp-07"
          ],
          "visual_ids": [
            "v08"
          ]
        },
        {
          "id": "exercise-goals",
          "name": "Exercise calorie controls",
          "area": "Settings",
          "entry": "Goals",
          "primary_actions": [
            "Enable/disable additions",
            "Configure distribution"
          ],
          "states": [
            "Enabled",
            "Disabled"
          ],
          "platform": "iOS; Android; web",
          "tier": "Premium",
          "evidence": "documented",
          "sources": [
            "mfp-24"
          ],
          "visual_ids": []
        },
        {
          "id": "progress",
          "name": "Progress Overview",
          "area": "Review",
          "entry": "Bottom Progress",
          "primary_actions": [
            "Open calories",
            "Open weight",
            "Open macros",
            "Change category"
          ],
          "states": [
            "Weekly bars",
            "Weight plot",
            "Macro tips"
          ],
          "platform": "Eligible iOS; Android",
          "tier": "Free; paid tips",
          "evidence": "visual",
          "sources": [
            "mfp-03"
          ],
          "visual_ids": [
            "v05"
          ]
        },
        {
          "id": "nutrition",
          "name": "Nutrition details",
          "area": "Review",
          "entry": "Today nutrient cards or Nutrition menu",
          "primary_actions": [
            "Select calories/macros/nutrients",
            "Day/week",
            "Ranked food contributors"
          ],
          "states": [
            "Free chart",
            "Paid Food Lists",
            "Empty date"
          ],
          "platform": "iOS; Android; web Reports variant",
          "tier": "Free/Premium",
          "evidence": "documented",
          "sources": [
            "mfp-42",
            "mfp-44"
          ],
          "visual_ids": []
        },
        {
          "id": "coach",
          "name": "Nutrition Coach chat",
          "area": "Coaching",
          "entry": "Bottom Coach",
          "primary_actions": [
            "Ask question",
            "Follow up",
            "New conversation"
          ],
          "states": [
            "Thinking",
            "Conversation",
            "Saved conversation"
          ],
          "platform": "Eligible iOS only",
          "tier": "Premium/Premium+",
          "evidence": "visual",
          "sources": [
            "mfp-04"
          ],
          "visual_ids": [
            "v07"
          ]
        },
        {
          "id": "plan",
          "name": "Meal Planner",
          "area": "Planning",
          "entry": "Plan tab / menu",
          "primary_actions": [
            "Set preferences",
            "Create plan",
            "Swap recipe",
            "Log meal"
          ],
          "states": [
            "Setup",
            "Current plan",
            "Past plans"
          ],
          "platform": "Eligible iOS; Android",
          "tier": "Premium+",
          "evidence": "documented",
          "sources": [
            "mfp-19"
          ],
          "visual_ids": []
        },
        {
          "id": "groceries",
          "name": "Plan groceries",
          "area": "Planning",
          "entry": "Plan > Groceries",
          "primary_actions": [
            "Add",
            "Shop",
            "More",
            "Settings"
          ],
          "states": [
            "Groceries tab selected"
          ],
          "platform": "Mobile; source does not identify crop platform",
          "tier": "Premium+",
          "evidence": "visual",
          "sources": [
            "mfp-19"
          ],
          "visual_ids": [
            "v11"
          ]
        },
        {
          "id": "weight",
          "name": "Weight and measurements",
          "area": "Progress",
          "entry": "Today weight card / plus Weight",
          "primary_actions": [
            "Log measurement",
            "Change metric",
            "Change timeframe",
            "Add photo"
          ],
          "states": [
            "History",
            "New weigh-in"
          ],
          "platform": "iOS; Android; web variant",
          "tier": "Free",
          "evidence": "documented",
          "sources": [
            "mfp-28",
            "mfp-29"
          ],
          "visual_ids": []
        },
        {
          "id": "water",
          "name": "Water entry",
          "area": "Healthy Habits",
          "entry": "Today Water card",
          "primary_actions": [
            "Enter amount",
            "Change unit",
            "Save"
          ],
          "states": [
            "iOS checkmark",
            "Android save"
          ],
          "platform": "iOS; Android; web variant",
          "tier": "Free",
          "evidence": "documented",
          "sources": [
            "mfp-30"
          ],
          "visual_ids": []
        },
        {
          "id": "exercise",
          "name": "Exercise entry",
          "area": "Healthy Habits",
          "entry": "Plus > Exercise",
          "primary_actions": [
            "Choose cardio/strength/routine",
            "Log"
          ],
          "states": [
            "Exercise categories"
          ],
          "platform": "iOS; Android; web variant",
          "tier": "Free; some Premium routines",
          "evidence": "documented",
          "sources": [
            "mfp-44",
            "mfp-46"
          ],
          "visual_ids": []
        },
        {
          "id": "connections",
          "name": "Apps & Devices / Steps",
          "area": "Integrations",
          "entry": "Profile/More menu",
          "primary_actions": [
            "Connect partner",
            "Disconnect",
            "Select step source"
          ],
          "states": [
            "Connected",
            "Permission pending"
          ],
          "platform": "iOS; Android; web variant",
          "tier": "Free connections",
          "evidence": "documented",
          "sources": [
            "mfp-43",
            "mfp-23"
          ],
          "visual_ids": []
        },
        {
          "id": "export",
          "name": "File Export",
          "area": "Portability",
          "entry": "Nutrition/Progress export; web Reports",
          "primary_actions": [
            "Select dates",
            "Confirm email",
            "Export"
          ],
          "states": [
            "Email requested",
            "Downloaded ZIP outside app"
          ],
          "platform": "iOS; Android; web",
          "tier": "Premium/Premium+",
          "evidence": "documented",
          "sources": [
            "mfp-25"
          ],
          "visual_ids": []
        },
        {
          "id": "privacy-delete",
          "name": "Diary privacy and account deletion",
          "area": "Account",
          "entry": "Settings privacy; Help deletion",
          "primary_actions": [
            "Choose sharing",
            "Delete Account"
          ],
          "states": [
            "Sharing options",
            "Irreversible deletion"
          ],
          "platform": "iOS; Android; web variant",
          "tier": "All",
          "evidence": "documented",
          "sources": [
            "mfp-34",
            "mfp-27"
          ],
          "visual_ids": []
        },
        {
          "id": "subscription",
          "name": "Subscription controls",
          "area": "Billing",
          "entry": "Original billing platform",
          "primary_actions": [
            "Cancel renewal"
          ],
          "states": [
            "Active",
            "Renewal disabled"
          ],
          "platform": "Apple Settings; Google Play; web",
          "tier": "Paid",
          "evidence": "documented",
          "sources": [
            "mfp-26"
          ],
          "visual_ids": []
        },
        {
          "id": "legacy-dashboard",
          "name": "Legacy Dashboard",
          "area": "Historical reference",
          "entry": "Older home screen in current weight-help article",
          "primary_actions": [
            "Weight plus",
            "Open Diary",
            "More"
          ],
          "states": [
            "Dashboard/Diary/Plans navigation"
          ],
          "platform": "iOS screenshot, version unknown",
          "tier": "Screenshot displays Premium",
          "evidence": "visual",
          "sources": [
            "mfp-28"
          ],
          "visual_ids": [
            "v12"
          ]
        },
        {
          "id": "fasting",
          "name": "Fasting tracker/history",
          "area": "Healthy Habits",
          "entry": "Enable in menu; tracker Today",
          "primary_actions": [
            "Start/stop",
            "Edit time",
            "History",
            "Disable"
          ],
          "states": [
            "Active fast",
            "Historical edit",
            "Disabled retained history"
          ],
          "platform": "iPhone; Android",
          "tier": "Premium",
          "evidence": "documented",
          "sources": [
            "mfp-33"
          ],
          "visual_ids": []
        },
        {
          "id": "reminders",
          "name": "Reminder list/editor",
          "area": "Retention",
          "entry": "Profile > Reminders",
          "primary_actions": [
            "Choose meal/time",
            "Toggle",
            "Delete"
          ],
          "states": [
            "Enabled",
            "Disabled"
          ],
          "platform": "iOS; Android",
          "tier": "No gate stated",
          "evidence": "documented",
          "sources": [
            "mfp-31"
          ],
          "visual_ids": []
        },
        {
          "id": "profile-setup",
          "name": "Profile setup — appearance unverified",
          "area": "Onboarding / documented destination",
          "entry": "New account; precise sequence unverified",
          "primary_actions": [
            "Enter profile and weekly goal"
          ],
          "states": [
            "Question order, consent and paywall not observed"
          ],
          "platform": "iOS; Android; web documentation",
          "tier": "Free",
          "evidence": "documented",
          "sources": [
            "mfp-06"
          ],
          "visual_ids": []
        },
        {
          "id": "external-email",
          "name": "External email — export delivery",
          "area": "External destination / export",
          "entry": "Requested File Export",
          "primary_actions": [
            "Download archive"
          ],
          "states": [
            "Receipt not tested"
          ],
          "platform": "External email client, not a MyFitnessPal screen",
          "tier": "Premium export",
          "evidence": "documented",
          "sources": [
            "mfp-25"
          ],
          "visual_ids": []
        },
        {
          "id": "external-file-reader",
          "name": "External file reader — CSV inspection",
          "area": "External destination / research action",
          "entry": "Downloaded export archive",
          "primary_actions": [
            "Inspect exported records"
          ],
          "states": [
            "File schema and delivery not tested"
          ],
          "platform": "External spreadsheet/file tool, not a MyFitnessPal screen",
          "tier": "Not applicable",
          "evidence": "inferred",
          "sources": [
            "mfp-25"
          ],
          "visual_ids": []
        }
      ],
      "flows": [
        {
          "id": "onboard",
          "name": "Profile → target",
          "job": "Start with a calorie budget",
          "preconditions": [
            "New account; no signup performed"
          ],
          "steps": [
            {
              "screen": "profile-setup",
              "action": "Provide body/activity data and weekly objective",
              "result": "Initial calorie/nutrient target calculated"
            },
            {
              "screen": "goals",
              "action": "Review/customize target",
              "result": "Chosen target used"
            }
          ],
          "branches": [
            "Exact signup, consent and paywall ordering unknown."
          ],
          "persistence": "Goal model documented; creation/save not tested.",
          "friction": "No visual onboarding sequence; do not mistake prescribed goal weight for calorie-calculation input.",
          "evidence": "documented",
          "sources": [
            "mfp-06",
            "mfp-07"
          ],
          "visual_ids": []
        },
        {
          "id": "search",
          "name": "Search → portion → diary",
          "job": "Log a named food",
          "preconditions": [
            "Account and online database"
          ],
          "steps": [
            {
              "screen": "today",
              "action": "Log beside intended meal",
              "result": "Food entry opens"
            },
            {
              "screen": "food-search",
              "action": "Search name/brand; choose result",
              "result": "Food details"
            },
            {
              "screen": "food-detail",
              "action": "Adjust serving and Log/checkmark",
              "result": "Food added"
            }
          ],
          "branches": [
            "Result plus quick-logs without detailed review."
          ],
          "persistence": "Diary entry documented.",
          "friction": "Duplicate matches and serving-unit fit require review.",
          "evidence": "documented",
          "sources": [
            "mfp-08",
            "mfp-48"
          ],
          "visual_ids": [
            "v02",
            "v09"
          ]
        },
        {
          "id": "barcode",
          "name": "Barcode with repair",
          "job": "Log packaged food accurately",
          "preconditions": [
            "Premium; rear camera; permission"
          ],
          "steps": [
            {
              "screen": "barcode",
              "action": "Frame barcode",
              "result": "Matched food or no result"
            },
            {
              "screen": "barcode-repair",
              "action": "If wrong, Find a better match and search",
              "result": "Replacement association"
            },
            {
              "screen": "food-detail",
              "action": "Review portion and log",
              "result": "Diary item"
            }
          ],
          "branches": [
            "Unknown code: create food; manual search if scanner fails."
          ],
          "persistence": "Association correction affects all users, not just this diary.",
          "friction": "iOS repair action top; Android bottom; global effect raises trust stakes.",
          "evidence": "documented",
          "sources": [
            "mfp-09",
            "mfp-38",
            "mfp-45"
          ],
          "visual_ids": [
            "v10"
          ]
        },
        {
          "id": "photo",
          "name": "Photo → reviewed foods",
          "job": "Reduce initial search effort",
          "preconditions": [
            "Eligible Premium English mobile app"
          ],
          "steps": [
            {
              "screen": "meal-scan",
              "action": "Capture plate; iOS may upload image",
              "result": "Suggested foods"
            },
            {
              "screen": "meal-scan",
              "action": "Select matches; Add more for omissions",
              "result": "Candidate meal"
            },
            {
              "screen": "food-detail",
              "action": "Adjust portions; confirm then Log",
              "result": "Diary entries"
            }
          ],
          "branches": [
            "Wrong suggestions: ignore/search. Android photo-library parity unknown."
          ],
          "persistence": "Saved as foods after confirmation; capture accuracy untested.",
          "friction": "Hidden ingredients and serving estimation remain user-review jobs.",
          "evidence": "documented",
          "sources": [
            "mfp-10"
          ],
          "visual_ids": [
            "v09"
          ]
        },
        {
          "id": "voice",
          "name": "Voice → review → repair",
          "job": "Log several foods hands-free",
          "preconditions": [
            "Eligible Premium; network; microphone/speech permission"
          ],
          "steps": [
            {
              "screen": "voice",
              "action": "Speak foods, amounts, meal; submit arrow",
              "result": "Separate matched results"
            },
            {
              "screen": "food-detail",
              "action": "Correct servings/meal",
              "result": "Reviewed candidates"
            },
            {
              "screen": "voice",
              "action": "Log",
              "result": "Diary entries"
            }
          ],
          "branches": [
            "Try again restarts; personal meals/foods/recipes unsupported."
          ],
          "persistence": "Normal editable diary entries documented.",
          "friction": "No retrieved screenshot of transcript/results or selective recognition repair.",
          "evidence": "documented",
          "sources": [
            "mfp-11"
          ],
          "visual_ids": [
            "v09",
            "v10"
          ]
        },
        {
          "id": "correct",
          "name": "Correct existing meal",
          "job": "Repair the durable diary",
          "preconditions": [
            "Logged food"
          ],
          "steps": [
            {
              "screen": "food-detail",
              "action": "Change portion/meal",
              "result": "Edited entry"
            },
            {
              "screen": "diary",
              "action": "Delete: swipe iOS; long-press Android",
              "result": "Removed"
            }
          ],
          "branches": [
            "Web: red removal button; undo unknown."
          ],
          "persistence": "Durability untested.",
          "friction": "Correction may require opening View all.",
          "evidence": "documented",
          "sources": [
            "mfp-11",
            "mfp-13"
          ],
          "visual_ids": [
            "v02"
          ]
        },
        {
          "id": "copy",
          "name": "Reuse and multi-day repair",
          "job": "Avoid repeated searching",
          "preconditions": [
            "Existing meal; Premium for multi-day"
          ],
          "steps": [
            {
              "screen": "meal-menu",
              "action": "Copy from/to",
              "result": "Foods reused across meals/dates"
            },
            {
              "screen": "food-detail",
              "action": "Premium: choose up to seven days",
              "result": "Independent dated entries"
            },
            {
              "screen": "diary",
              "action": "Review each affected date",
              "result": "Edit/delete individually"
            }
          ],
          "branches": [
            "Today doc says no item/full-day copy; older article disagrees. My Meals excluded from multi-day."
          ],
          "persistence": "Each selected day holds editable entries; no batch undo.",
          "friction": "Wrong multi-day selection multiplies cleanup work.",
          "evidence": "documented",
          "sources": [
            "mfp-02",
            "mfp-14",
            "mfp-37"
          ],
          "visual_ids": [
            "v04"
          ]
        },
        {
          "id": "saved",
          "name": "Create and reuse meal",
          "job": "Persist a repeatable food group",
          "preconditions": [
            "Foods and chosen quantities"
          ],
          "steps": [
            {
              "screen": "meal-editor",
              "action": "Name; add items/photo; save",
              "result": "Saved meal"
            },
            {
              "screen": "meal-library",
              "action": "Choose destination and plus",
              "result": "Foods logged separately"
            },
            {
              "screen": "meal-library",
              "action": "Copy variation then save",
              "result": "Separate reusable variant"
            }
          ],
          "branches": [
            "Web creates via diary Quick Tools > Remember meal."
          ],
          "persistence": "Saved group retained; diary loses custom group name.",
          "friction": "Meal/recipe distinction can surprise users expecting one named entry.",
          "evidence": "documented",
          "sources": [
            "mfp-15"
          ],
          "visual_ids": [
            "v09"
          ]
        },
        {
          "id": "recipe",
          "name": "Build/import → inspect → log",
          "job": "Track cooked food by serving",
          "preconditions": [
            "Ingredients or URL; English for URL import"
          ],
          "steps": [
            {
              "screen": "recipe-library",
              "action": "Create recipe; manual or web",
              "result": "Creation route"
            },
            {
              "screen": "recipe-import",
              "action": "Paste URL and import, if used",
              "result": "Matched ingredients"
            },
            {
              "screen": "recipe-edit",
              "action": "Repair matches/amounts; set yield; save",
              "result": "Reusable recipe"
            },
            {
              "screen": "recipe-library",
              "action": "Add to Diary",
              "result": "Recipe serving logged"
            }
          ],
          "branches": [
            "iOS Save & Log It; Android Save then log. Historical-entry effects after recipe edits unknown."
          ],
          "persistence": "Recipe account-sync documented; retroactive propagation untested.",
          "friction": "Ingredient matches and yield are two separate error sources.",
          "evidence": "documented",
          "sources": [
            "mfp-16",
            "mfp-17",
            "mfp-18"
          ],
          "visual_ids": []
        },
        {
          "id": "plan",
          "name": "Plan → groceries → consumed log",
          "job": "Decide meals before eating",
          "preconditions": [
            "Premium+ in supported region/language"
          ],
          "steps": [
            {
              "screen": "plan",
              "action": "Complete preferences; choose dates/meals",
              "result": "Recipe plan"
            },
            {
              "screen": "plan",
              "action": "Swap recipes",
              "result": "Revised plan"
            },
            {
              "screen": "groceries",
              "action": "Check pantry; choose shopping service or decline",
              "result": "Grocery list/handoff"
            },
            {
              "screen": "plan",
              "action": "Select meal; date/servings; Log to Diary",
              "result": "Actual diary record"
            }
          ],
          "branches": [
            "Delivery partners differ by country/OS; plan does not imply eaten."
          ],
          "persistence": "Current and past plans documented; meal logged only through explicit action.",
          "friction": "Planner may suggest targets different from existing ones.",
          "evidence": "documented",
          "sources": [
            "mfp-19"
          ],
          "visual_ids": [
            "v11"
          ]
        },
        {
          "id": "review",
          "name": "Weekly review → contributors",
          "job": "Understand intake patterns",
          "preconditions": [
            "Logged week; eligible Overview rollout"
          ],
          "steps": [
            {
              "screen": "progress",
              "action": "Open weekly overview",
              "result": "Calories/weight/macros"
            },
            {
              "screen": "nutrition",
              "action": "Select nutrient and day/week",
              "result": "Chart"
            },
            {
              "screen": "nutrition",
              "action": "Premium: inspect ranked Food List",
              "result": "Foods driving total"
            }
          ],
          "branches": [
            "Empty dates give no ranked data; free sees sample lists."
          ],
          "persistence": "Charts reflect logs; aggregation/refresh not tested.",
          "friction": "Missing logs can resemble low intake; screenshot is illustrative, not efficacy evidence.",
          "evidence": "documented",
          "sources": [
            "mfp-03",
            "mfp-42"
          ],
          "visual_ids": [
            "v05"
          ]
        },
        {
          "id": "adjust",
          "name": "Revise goal without rewriting history",
          "job": "Change nutrition target",
          "preconditions": [
            "Account; optional Premium precision"
          ],
          "steps": [
            {
              "screen": "goals",
              "action": "Choose calorie/macro settings",
              "result": "Custom goal controls"
            },
            {
              "screen": "goals",
              "action": "Disable recommendation if needed; edit; save",
              "result": "New goal"
            },
            {
              "screen": "diary",
              "action": "Review current/future dates",
              "result": "New target applies"
            }
          ],
          "branches": [
            "Old goals not editable; recalculation offer after documented weight-loss interval."
          ],
          "persistence": "Current day forward; prior targets should remain unchanged.",
          "friction": "Adaptive here means recalculation, not learned expenditure.",
          "evidence": "documented",
          "sources": [
            "mfp-07",
            "mfp-40",
            "mfp-47"
          ],
          "visual_ids": [
            "v08"
          ]
        },
        {
          "id": "coach",
          "name": "Ask → clarify → act elsewhere",
          "job": "Get diary-informed guidance",
          "preconditions": [
            "Eligible Premium iOS rollout"
          ],
          "steps": [
            {
              "screen": "coach",
              "action": "Choose prompt or type question",
              "result": "AI response"
            },
            {
              "screen": "coach",
              "action": "Ask follow-up",
              "result": "Contextual conversation"
            },
            {
              "screen": "food-search",
              "action": "Manually log chosen suggestion",
              "result": "Diary changes outside chat"
            }
          ],
          "branches": [
            "New-chat pencil resets conversation; Coach cannot change goals or read weight history."
          ],
          "persistence": "Conversation saved between visits, per vendor.",
          "friction": "Advice-to-action handoff is manual; no food writes.",
          "evidence": "documented",
          "sources": [
            "mfp-04"
          ],
          "visual_ids": [
            "v07"
          ]
        },
        {
          "id": "sync",
          "name": "Connect and validate health data",
          "job": "Combine activity with nutrition",
          "preconditions": [
            "Partner account and data permissions"
          ],
          "steps": [
            {
              "screen": "connections",
              "action": "Select partner/connect",
              "result": "Authorization"
            },
            {
              "screen": "connections",
              "action": "Choose Steps source separately where relevant",
              "result": "Selected source"
            },
            {
              "screen": "today",
              "action": "Review exercise and allowance",
              "result": "Synced data affects display"
            }
          ],
          "branches": [
            "Apple Health uses HealthKit settings; Android uses Health Connect. No historical import promise."
          ],
          "persistence": "Only documented directions; no sync run performed.",
          "friction": "Midnight boundaries, summaries versus foods, and multiple sources warrant testing.",
          "evidence": "documented",
          "sources": [
            "mfp-22",
            "mfp-23",
            "mfp-43"
          ],
          "visual_ids": [
            "v03"
          ]
        },
        {
          "id": "export",
          "name": "Export before leaving",
          "job": "Keep portable nutrition history",
          "preconditions": [
            "Premium; accessible account email"
          ],
          "steps": [
            {
              "screen": "export",
              "action": "Choose date range and request",
              "result": "Email sent"
            },
            {
              "screen": "external-email",
              "action": "Download/unzip",
              "result": "Three CSV files"
            },
            {
              "screen": "external-file-reader",
              "action": "Inspect meal nutrition/progress/exercise",
              "result": "Portable data"
            }
          ],
          "branches": [
            "Per-food names not guaranteed by meal-summary export."
          ],
          "persistence": "Vendor-documented emailed archive; delivery and schema not exercised.",
          "friction": "Asynchronous, email-dependent and paid.",
          "evidence": "documented",
          "sources": [
            "mfp-25"
          ],
          "visual_ids": []
        },
        {
          "id": "leave",
          "name": "Cancel renewal → delete account",
          "job": "Stop payment and remove account",
          "preconditions": [
            "Know original purchase platform; export if needed"
          ],
          "steps": [
            {
              "screen": "subscription",
              "action": "Cancel on original Apple/Google/web billing channel",
              "result": "Future renewal disabled"
            },
            {
              "screen": "privacy-delete",
              "action": "Help > Delete Account (mobile), Settings on web",
              "result": "Permanent account deletion"
            }
          ],
          "branches": [
            "No destructive action performed. Exact confirmation screens unknown."
          ],
          "persistence": "Cancellation retains paid period; deletion irreversible.",
          "friction": "These are separate operations; do not assume deleting app/account cancels store billing.",
          "evidence": "documented",
          "sources": [
            "mfp-26",
            "mfp-27"
          ],
          "visual_ids": []
        },
        {
          "id": "water",
          "name": "Water log and correction of date",
          "job": "Keep hydration record",
          "preconditions": [
            "Logged-in account"
          ],
          "steps": [
            {
              "screen": "today",
              "action": "Select intended day; open Water",
              "result": "Water entry"
            },
            {
              "screen": "water",
              "action": "Enter amount; change units; save",
              "result": "Daily water total"
            }
          ],
          "branches": [
            "iOS checkmark vs Android Save; web bottom of Food diary."
          ],
          "persistence": "Online same-account sync documented.",
          "friction": "Must select historical date before entering water.",
          "evidence": "documented",
          "sources": [
            "mfp-30"
          ],
          "visual_ids": []
        },
        {
          "id": "fasting",
          "name": "Fasting with forgotten-stop recovery",
          "job": "Record eating window without changing goals",
          "preconditions": [
            "Premium phone app; enabled timer"
          ],
          "steps": [
            {
              "screen": "fasting",
              "action": "Choose pattern/start time; start",
              "result": "Running timer"
            },
            {
              "screen": "fasting",
              "action": "Stop",
              "result": "Fast saved"
            },
            {
              "screen": "fasting",
              "action": "History > edit dates/times",
              "result": "Corrected history"
            }
          ],
          "branches": [
            "Timer does not auto-stop; disabling keeps past fasts; unavailable iPad/web."
          ],
          "persistence": "History preserved when disabled.",
          "friction": "Manual timer needs explicit correction, not inferred completion.",
          "evidence": "documented",
          "sources": [
            "mfp-33"
          ],
          "visual_ids": []
        }
      ],
      "visuals": [
        {
          "id": "v01",
          "file": "assets/mfp-02-1.png",
          "source_url": "https://support.myfitnesspal.com/hc/article_attachments/45282819132941",
          "source_page": "https://support.myfitnesspal.com/hc/en-us/articles/39985611667341-Your-Today-tab",
          "title": "Refreshed platform navigation",
          "platform": "iOS and Android composite",
          "version_or_date": "Screenshot capture/version unknown; article updated 2026-10-02T00:11:57Z; retrieved 2026-10-07",
          "kind": "help-screenshot",
          "observations": [
            "Android includes More and centered plus; iOS includes Coach and right-side plus.",
            "Blue outlines are vendor annotations, not controls."
          ],
          "limitations": "Official help screenshot/crop, often pre-annotated. Not a capture of our app session. Article refresh date does not date the UI. No hands-on behavior verified.",
          "sources": [
            "mfp-02"
          ]
        },
        {
          "id": "v02",
          "file": "assets/mfp-02-2.png",
          "source_url": "https://support.myfitnesspal.com/hc/article_attachments/45282819133709",
          "source_page": "https://support.myfitnesspal.com/hc/en-us/articles/39985611667341-Your-Today-tab",
          "title": "Meal-level Log versus global plus",
          "platform": "Mobile composite",
          "version_or_date": "Screenshot capture/version unknown; article updated 2026-10-02T00:11:57Z; retrieved 2026-10-07",
          "kind": "help-screenshot",
          "observations": [
            "Meal card summarizes foods and offers a nearby Log action.",
            "Global plus offers an alternative entry; image combines separate crops."
          ],
          "limitations": "Official help screenshot/crop, often pre-annotated. Not a capture of our app session. Article refresh date does not date the UI. No hands-on behavior verified.",
          "sources": [
            "mfp-02"
          ]
        },
        {
          "id": "v03",
          "file": "assets/mfp-02-3.png",
          "source_url": "https://support.myfitnesspal.com/hc/article_attachments/45332043194253",
          "source_page": "https://support.myfitnesspal.com/hc/en-us/articles/39985611667341-Your-Today-tab",
          "title": "Calories and macro summary",
          "platform": "Mobile; OS not identified",
          "version_or_date": "Screenshot capture/version unknown; article updated 2026-10-02T00:11:57Z; retrieved 2026-10-07",
          "kind": "help-screenshot",
          "observations": [
            "Calories show consumed, target and remaining with horizontal progress.",
            "Carbs teal, fat purple and protein amber use separate bars; toggle sits top-right."
          ],
          "limitations": "Official help screenshot/crop, often pre-annotated. Not a capture of our app session. Article refresh date does not date the UI. No hands-on behavior verified.",
          "sources": [
            "mfp-02"
          ]
        },
        {
          "id": "v04",
          "file": "assets/mfp-02-7.png",
          "source_url": "https://support.myfitnesspal.com/hc/article_attachments/45282840334477",
          "source_page": "https://support.myfitnesspal.com/hc/en-us/articles/39985611667341-Your-Today-tab",
          "title": "Meal overflow reuse actions",
          "platform": "Mobile; OS not identified",
          "version_or_date": "Screenshot capture/version unknown; article updated 2026-10-02T00:11:57Z; retrieved 2026-10-07",
          "kind": "help-screenshot",
          "observations": [
            "Menu exposes Copy from, Copy to and Save meal.",
            "Meal Log remains visible behind the menu."
          ],
          "limitations": "Official help screenshot/crop, often pre-annotated. Not a capture of our app session. Article refresh date does not date the UI. No hands-on behavior verified.",
          "sources": [
            "mfp-02"
          ]
        },
        {
          "id": "v05",
          "file": "assets/mfp-03-1.png",
          "source_url": "https://support.myfitnesspal.com/hc/article_attachments/47035014984077",
          "source_page": "https://support.myfitnesspal.com/hc/en-us/articles/45246617814669-Introducing-Progress-Overview-Your-Progress-Personalized",
          "title": "Progress Overview",
          "platform": "iOS appearance; doc covers eligible iOS/Android",
          "version_or_date": "Screenshot capture/version unknown; article updated 2026-08-02T05:32:04Z; retrieved 2026-10-07",
          "kind": "help-screenshot",
          "observations": [
            "Overview, Calories, Nutrients, Macros, Steps and Weight form a top category strip.",
            "Stacked cards combine weekly calorie bars, weight chart and macro guidance; data are demo values."
          ],
          "limitations": "Official help screenshot/crop, often pre-annotated. Not a capture of our app session. Article refresh date does not date the UI. No hands-on behavior verified.",
          "sources": [
            "mfp-03"
          ]
        },
        {
          "id": "v06",
          "file": "assets/mfp-04-1.png",
          "source_url": "https://support.myfitnesspal.com/hc/article_attachments/45212253476493",
          "source_page": "https://support.myfitnesspal.com/hc/en-us/articles/45212266254221-Introducing-Nutrition-Coach-Your-Nutrition-Assistant",
          "title": "Today with profile relocation",
          "platform": "iOS; beta Coach screenshot",
          "version_or_date": "Screenshot capture/version unknown; article updated 2026-10-02T02:25:49Z; retrieved 2026-10-07",
          "kind": "help-screenshot",
          "observations": [
            "Profile icon top-right replaces More when Coach occupies bottom navigation.",
            "This image retains a centered plus unlike newer floating-right navigation crops."
          ],
          "limitations": "Official help screenshot/crop, often pre-annotated. Not a capture of our app session. Article refresh date does not date the UI. No hands-on behavior verified.",
          "sources": [
            "mfp-04"
          ]
        },
        {
          "id": "v07",
          "file": "assets/mfp-04-2.png",
          "source_url": "https://support.myfitnesspal.com/hc/article_attachments/45212266253709",
          "source_page": "https://support.myfitnesspal.com/hc/en-us/articles/45212266254221-Introducing-Nutrition-Coach-Your-Nutrition-Assistant",
          "title": "Coach conversation and waiting state",
          "platform": "iOS; beta screenshot",
          "version_or_date": "Screenshot capture/version unknown; article updated 2026-10-02T02:25:49Z; retrieved 2026-10-07",
          "kind": "help-screenshot",
          "observations": [
            "User bubble, Thinking state, question composer and send button are visible.",
            "Vendor green arrow highlights new-conversation pencil; footer warns AI can make mistakes."
          ],
          "limitations": "Official help screenshot/crop, often pre-annotated. Not a capture of our app session. Article refresh date does not date the UI. No hands-on behavior verified.",
          "sources": [
            "mfp-04"
          ]
        },
        {
          "id": "v08",
          "file": "assets/mfp-07-1.png",
          "source_url": "https://support.myfitnesspal.com/hc/article_attachments/47076478650253",
          "source_page": "https://support.myfitnesspal.com/hc/en-us/articles/360032274432-Customize-your-nutritional-goals",
          "title": "Custom macro-balance slider",
          "platform": "iOS from article section",
          "version_or_date": "Screenshot capture/version unknown; article updated 2026-08-27T00:27:21Z; retrieved 2026-10-07",
          "kind": "help-screenshot",
          "observations": [
            "Custom dropdown and two handles partition a tri-color bar.",
            "Crop excludes numeric values, save control and full goal screen."
          ],
          "limitations": "Official help screenshot/crop, often pre-annotated. Not a capture of our app session. Article refresh date does not date the UI. No hands-on behavior verified.",
          "sources": [
            "mfp-07"
          ]
        },
        {
          "id": "v09",
          "file": "assets/mfp-10-1.png",
          "source_url": "https://support.myfitnesspal.com/hc/article_attachments/48948487541261",
          "source_page": "https://support.myfitnesspal.com/hc/en-us/articles/360045761612-How-to-use-the-Meal-Scanner",
          "title": "iOS food-entry hub",
          "platform": "iOS from article section",
          "version_or_date": "Screenshot capture/version unknown; article updated 2026-09-16T18:08:57Z; retrieved 2026-10-07",
          "kind": "help-screenshot",
          "observations": [
            "Meal selector precedes search and History/My Meals/My Recipes/My Foods tabs.",
            "Four tiles expose barcode, voice, meal scan and Quick Add; highlighted Meal Scan is vendor annotation."
          ],
          "limitations": "Official help screenshot/crop, often pre-annotated. Not a capture of our app session. Article refresh date does not date the UI. No hands-on behavior verified.",
          "sources": [
            "mfp-10"
          ]
        },
        {
          "id": "v10",
          "file": "assets/mfp-09-4.png",
          "source_url": "https://support.myfitnesspal.com/hc/article_attachments/48648982942605",
          "source_page": "https://support.myfitnesspal.com/hc/en-us/articles/360032624771-How-to-use-the-Barcode-Scanner",
          "title": "Android add-method tiles",
          "platform": "Android from article section",
          "version_or_date": "Screenshot capture/version unknown; article updated 2026-09-03T21:30:11Z; retrieved 2026-10-07",
          "kind": "help-screenshot",
          "observations": [
            "Two-by-two grid separates Log Food, Barcode Scan, Voice Log and Meal Scan.",
            "Colored circular icons differentiate methods; no actual scanner camera/result is shown."
          ],
          "limitations": "Official help screenshot/crop, often pre-annotated. Not a capture of our app session. Article refresh date does not date the UI. No hands-on behavior verified.",
          "sources": [
            "mfp-09"
          ]
        },
        {
          "id": "v11",
          "file": "assets/mfp-19-2.png",
          "source_url": "https://support.myfitnesspal.com/hc/article_attachments/48436015547277",
          "source_page": "https://support.myfitnesspal.com/hc/en-us/articles/34603055097869-How-to-use-the-Meal-Planner",
          "title": "Plan grocery controls",
          "platform": "Mobile; OS not identified",
          "version_or_date": "Screenshot capture/version unknown; article updated 2026-10-01T22:03:27Z; retrieved 2026-10-07",
          "kind": "help-screenshot",
          "observations": [
            "Groceries sits beside Meal Planner and Recipes.",
            "Add, Shop and More are large actions; gear is upper-right. No grocery contents are visible."
          ],
          "limitations": "Official help screenshot/crop, often pre-annotated. Not a capture of our app session. Article refresh date does not date the UI. No hands-on behavior verified.",
          "sources": [
            "mfp-19"
          ]
        },
        {
          "id": "v12",
          "file": "assets/mfp-28-1.png",
          "source_url": "https://support.myfitnesspal.com/hc/article_attachments/26913201125645",
          "source_page": "https://support.myfitnesspal.com/hc/en-us/articles/360032624431-How-do-I-record-my-weight-and-other-measurements",
          "title": "Legacy Dashboard weight card",
          "platform": "iOS; older UI, exact version unknown",
          "version_or_date": "Screenshot capture/version unknown; article updated 2026-09-29T22:20:21Z; retrieved 2026-10-07",
          "kind": "help-screenshot",
          "observations": [
            "Bottom tabs say Dashboard, Diary, plus, Plans, More—not refreshed Today/Progress.",
            "Ring-style macro presentation and weight card illustrate legacy layout; red box is vendor annotation."
          ],
          "limitations": "Official help screenshot/crop, often pre-annotated. Not a capture of our app session. Article refresh date does not date the UI. Historical layout, explicitly not current Today.",
          "sources": [
            "mfp-28"
          ]
        }
      ],
      "design_patterns": [
        {
          "name": "Diary-first home",
          "observation": "Today replaces separate Dashboard/Diary emphasis.",
          "implication": "Hypothesis: shorten routine entry path.",
          "tradeoff": "Returning-user navigation knowledge becomes stale.",
          "sources": [
            "mfp-01",
            "mfp-02"
          ],
          "visual_ids": [
            "v01",
            "v12"
          ]
        },
        {
          "name": "Local and global add",
          "observation": "Meal Log and global plus coexist.",
          "implication": "Hypothesis: preserve destination context while offering flexible capture.",
          "tradeoff": "Global route introduces meal-selection ambiguity.",
          "sources": [
            "mfp-08"
          ],
          "visual_ids": [
            "v02",
            "v09"
          ]
        },
        {
          "name": "Progressive food review",
          "observation": "Search plus is fast; food detail exposes portions.",
          "implication": "Offer both repeat-user speed and deliberate inspection.",
          "tradeoff": "Fast default may perpetuate a wrong serving.",
          "sources": [
            "mfp-08",
            "mfp-48"
          ],
          "visual_ids": [
            "v09"
          ]
        },
        {
          "name": "Reusable group versus recipe",
          "observation": "Meal expands to foods; recipe is a serving-based item.",
          "implication": "Different reuse objects support assembly and cooking.",
          "tradeoff": "Saved meal name disappears in diary; teach the distinction.",
          "sources": [
            "mfp-15",
            "mfp-16"
          ],
          "visual_ids": [
            "v04"
          ]
        },
        {
          "name": "Paid inference, explicit commit",
          "observation": "Voice/photo propose foods; user confirms.",
          "implication": "Maintain a review boundary before durable logs.",
          "tradeoff": "Repair affordances matter more than capture animation.",
          "sources": [
            "mfp-10",
            "mfp-11"
          ],
          "visual_ids": [
            "v09",
            "v10"
          ]
        },
        {
          "name": "Drill-down from total to contributors",
          "observation": "Charts and ranked Food Lists have distinct access.",
          "implication": "Progress becomes actionable through ingredient/food causes.",
          "tradeoff": "Underlying paid explanation can leave free users with totals only.",
          "sources": [
            "mfp-42"
          ],
          "visual_ids": [
            "v05"
          ]
        },
        {
          "name": "Read-only coach",
          "observation": "Chat persists but cannot write foods or goals.",
          "implication": "Lower direct state-change risk and preserve explicit user control.",
          "tradeoff": "Suggestions require manual transfer into diary.",
          "sources": [
            "mfp-04"
          ],
          "visual_ids": [
            "v07"
          ]
        },
        {
          "name": "Platform-specific shortcuts",
          "observation": "iOS entry tabs contrast with Android method grid.",
          "implication": "Evaluate platforms independently, including touch gestures.",
          "tradeoff": "One screenshot walkthrough cannot stand for both.",
          "sources": [
            "mfp-09",
            "mfp-10",
            "mfp-13"
          ],
          "visual_ids": [
            "v09",
            "v10"
          ]
        },
        {
          "name": "Layered portability",
          "observation": "Web print, CSV export and health sync are different channels.",
          "implication": "Match export to job: sharing, analysis or interoperability.",
          "tradeoff": "Meal summaries are not guaranteed ingredient-level migration.",
          "sources": [
            "mfp-25",
            "mfp-22",
            "mfp-23"
          ],
          "visual_ids": []
        }
      ],
      "questions": [
        {
          "question": "Which refreshed navigation variants appear on US free/Premium/Premium+ iOS and Android?",
          "why_it_matters": "Docs mix More/profile and centered/right plus.",
          "how_to_verify": "Record fresh install and returning account, OS/app version, locale, tier; capture all bottom tabs.",
          "priority": "high"
        },
        {
          "question": "Can current mobile versions copy individual items, and can multi-day operations be undone?",
          "why_it_matters": "Current Today and older copy instructions conflict.",
          "how_to_verify": "Copy one food and a whole meal across dates; change one target; inspect history and undo.",
          "priority": "high"
        },
        {
          "question": "Do edited recipes or personal foods alter old diary records?",
          "why_it_matters": "Durable correction and history integrity.",
          "how_to_verify": "Log baseline, edit template, revisit prior date and exported records.",
          "priority": "high"
        },
        {
          "question": "What exact voice/photo review and failure screens exist?",
          "why_it_matters": "Available images expose entry methods, not real recognition or correction.",
          "how_to_verify": "Use a mixed dish, noisy speech, missing portion and personal recipe; record review, retry and save states.",
          "priority": "high"
        },
        {
          "question": "Is standalone label OCR or typed natural-language food logging available?",
          "why_it_matters": "Not found must not be mistaken for absence.",
          "how_to_verify": "Inspect logging hub, release notes and controlled account rollouts; distinguish Coach from write-capable logger.",
          "priority": "medium"
        },
        {
          "question": "Which meal-level fields and food names survive export?",
          "why_it_matters": "Affects migration and nutrition analysis.",
          "how_to_verify": "Export synthetic multi-food meals and recipes; compare CSV to diary and timestamps.",
          "priority": "high"
        },
        {
          "question": "What works offline and what survives reinstall or conflict?",
          "why_it_matters": "Offline diary edits do not imply offline database/AI.",
          "how_to_verify": "Airplane-mode cached/recent/custom entry, reconnect two devices, verify server before reinstall.",
          "priority": "high"
        },
        {
          "question": "How are low-log days and changed targets represented in reviews?",
          "why_it_matters": "Avoid confusing missing data with low intake.",
          "how_to_verify": "Compare complete, partial and empty days; change goals midweek and check prior dates.",
          "priority": "high"
        },
        {
          "question": "Does Coach preserve context and correctly disclose unavailable data?",
          "why_it_matters": "Docs both list personal recipes and mention possible recipe access gaps.",
          "how_to_verify": "Ask about saved recipe and weight history, leave/reopen, start new conversation; no health advice reliance.",
          "priority": "medium"
        },
        {
          "question": "Are permissions, text sizing and chart color semantics accessible?",
          "why_it_matters": "Crops cannot establish screen-reader or low-vision usability.",
          "how_to_verify": "Test VoiceOver/TalkBack, font scaling, contrast and denied camera/microphone states.",
          "priority": "medium"
        },
        {
          "question": "Does account deletion leave store renewal active and how are confirmations worded?",
          "why_it_matters": "Exit safety and billing clarity.",
          "how_to_verify": "Use sandbox/test account and billing documentation; never delete paid real account without approval.",
          "priority": "high"
        }
      ]
    }
  ]
}
