Files
Sage/.planning/research/FEATURES.md
Dani B bd477b0baa docs: complete project research (ecosystem analysis)
Research files synthesized:
- STACK.md: Flutter + Supabase + Riverpod recommended stack
- FEATURES.md: 7 table stakes, 6 differentiators, 7 anti-features identified
- ARCHITECTURE.md: Offline-first sync with optimistic locking, RLS multi-tenancy
- PITFALLS.md: 5 critical pitfalls (v1), 8 moderate (v1.5), 3 minor (v2+)
- SUMMARY.md: Executive synthesis with 3-phase roadmap implications

Key findings:
- Stack: Flutter + Supabase free tier + mobile_scanner + Open Food Facts
- Critical pitfalls: Barcode mismatches, timezone bugs, sync conflicts, setup complexity, notification fatigue
- Phase structure: MVP (core) → expansion (usage tracking) → differentiation (prediction + sales)
- All research grounded in ecosystem analysis (12+ competitors), official documentation, and production incidents

Confidence: HIGH
Ready for roadmap creation: YES

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-01-27 23:42:37 -05:00

23 KiB

Feature Landscape: Household Food Inventory Apps

Domain: Collaborative food inventory, expiration tracking, household management Researched: January 2026 Data sources: 12+ household food inventory apps analyzed (Your Food, NoWaste, Pantry Check, KitchenPal, Smantry, FoodShiner, My Pantry Tracker)

Executive Summary

Household food inventory apps exist in a mature market with clear table stakes and emerging differentiators. Users expect barcode scanning, expiration alerts, and family sharing. The market splits between "waste reduction" focused (expiration alerts, usage analytics) and "convenience" focused (shopping list generation, recipe integration). Sage's differentiators (usage prediction, local sales tracking) are proven request categories but not yet standard.


Table Stakes: Must-Have Features

Features users expect. Absence signals product immaturity. Users will leave if these are missing or broken.

1. Add Items to Inventory

User workflow: User opens app → barcode scan OR manual entry → confirms item details → item appears in inventory

Aspect Details
Complexity Medium
Why expected Fundamental to inventory management—without this, app is unusable
Variations Barcode scan (preferred), manual text entry (fallback), photo/receipt capture
Dataset burden ~4M food products in common databases (UPC, EAN codes)

Details to track:

  • Item name
  • Quantity (whole numbers, weights, portions)
  • Purchase date
  • Expiration/best-by date
  • Price (optional but valuable for budget tracking)

2. Expiration Alerts & Notifications

User workflow: Item added → system calculates expiration window → user receives notification before/at expiration → user marks item as used/wasted

Aspect Details
Complexity Medium
Why expected Primary stated goal of food inventory apps—avoiding waste
User preference 72% of users want 2-3 day advance notice; 18% want same-day only
Failure risk Missed or irrelevant notifications → users disable feature → app becomes "nice to have"

Notification behavior (learned from research):

  • Default: 2-3 days before expiration
  • Customizable per item or category
  • NOT real-time spam (common anti-pattern: too many notifications = uninstall)
  • Preferably grouped daily summary rather than individual alerts

3. Multi-User Access with Permissions

User workflow: User creates household → invites family member via email → invited user gets read-write access → both see same inventory in real-time

Aspect Details
Complexity High (requires auth, sync, conflict resolution)
Why expected Core use case: "shared kitchen with roommates/family" is 60%+ of target market
Permission levels View-only OR edit (most apps offer single tier; admin-specific perms rare in consumer versions)
Real-time requirement Users notice delays >10 seconds and express frustration

Permissions to model:

  • Admin (create household, invite/remove members, manage categories)
  • Member (view inventory, add items, mark items used, create shopping lists)
  • Viewer (read-only, see inventory but can't edit) — optional, low priority

4. Storage Location Tracking

User workflow: Item added → assign to "Fridge," "Pantry," "Freezer," or custom location → view filtered by location → move items between locations

Aspect Details
Complexity Low
Why expected Fridge/pantry/freezer is minimum; users find same item in two locations (confusion/waste)
Dataset Most apps support 5-8 predefined + custom locations

Standard locations in market:

  • Refrigerator / Fridge
  • Freezer
  • Pantry
  • Basement storage
  • Custom (user-defined)

5. Search & Basic Filtering

User workflow: User types "chicken" → sees all chicken-containing items → filters by location or category → finds item in seconds

Aspect Details
Complexity Low-Medium
Why expected Inventory becomes unusable at 50+ items without search
Search scope Product name, category, location, optional price/brand

Minimum viable search:

  • Full-text search by item name
  • Filter by location (Fridge, Pantry, Freezer)
  • Filter by category (Produce, Dairy, Meat, Pantry staples, etc.)
  • Optional: filter by expiration window (expiring this week)

6. Shopping List Generation

User workflow: User views inventory → manually adds items to shopping list OR app auto-suggests based on usage patterns → user goes shopping with list → marks items purchased

Aspect Details
Complexity Medium
Why expected Users expect shopping list as natural extension of inventory
Manual vs auto Manual list creation = table stakes; auto-generation from usage patterns = differentiator

Feature scope:

  • Manual add/remove items to list
  • Check off items while shopping
  • Share list with household members
  • Optional: auto-generate based on low stock/usage patterns (rare, seen in KitchenPal, higher-end apps)

7. Dark Mode

User workflow: User enables dark mode in settings → entire UI inverts → photo capture uses dark mode lighting adjustments

Aspect Details
Complexity Low
Why expected Mobile apps without dark mode feel outdated; users take this for granted
Mobile-specific Especially on iOS/Android in 2026

Differentiators: Competitive Advantages

Features that set product apart. Not expected, but when present, drive retention and word-of-mouth.

1. Usage Prediction & Consumption Analytics

User workflow: User marks items "used" over 2 weeks → app learns consumption patterns → predicts "you'll run out of milk in 3 days" → suggests quantity to buy

Aspect Details
Complexity High
Why implemented Reduces duplicate purchases (44% reduction documented), saves ~$190/month per household
Data required Purchase date, quantity, consumption date (when item marked used)
Confidence level MEDIUM - proven valuable but requires 3-4 weeks user behavior before useful

How it works:

  • User logs consumption event (item used/finished)
  • App calculates: item type, quantity bought, time to consumption
  • Tracks pattern across multiple cycles: milk (every 10 days), bread (every 5 days), eggs (every 14 days)
  • Alerts before pattern predicts depletion

Market position: Seen in KitchenPal (premium), some AI-powered meal planners. NOT standard yet.

2. Expiration Date Auto-Detection

User workflow: User scans product OR takes photo of packaging → app extracts expiration date from image → auto-populates field (user confirms)

Aspect Details
Complexity High
Why valuable Eliminates manual entry for most packaged goods; reduces user friction by 70%+
Accuracy 79-82% for barcode extraction; 80-90% for photo-based OCR on packages
Fallback required Always allow manual override; images fail on damaged/faded labels

Technologies:

  • Barcode database lookup (UPC/EAN) — fast, reliable for packaged goods
  • OCR on product photos — emerging, improving rapidly with AI

Market status: Multiple apps offer this (NoWaste, portions of premium tiers). Barcode lookup is standard; OCR is differentiator.

3. Recipe Integration & Smart Meal Suggestions

User workflow: User has expiring chicken & vegetables in inventory → app suggests recipes using those items → user selects recipe → app updates inventory post-cooking

Aspect Details
Complexity Very High
Why valuable Directly reduces food waste by using near-expiry items; increases engagement
AI integration Requires recipe database (1000s of recipes) + food taxonomy matching
User preference 47% of users say this would change whether they stay on app

Feature scope:

  • Surface recipes using top 3 expiring items
  • Filter recipes by dietary restriction (vegan, gluten-free, keto)
  • Update inventory automatically when recipe is marked "cooked"
  • Integration with recipe platforms (optional: AllRecipes, Serious Eats via API)

Market status: Emerging differentiator. Seen in Remy, some premium meal planning apps, but NOT standard in basic food inventory apps.

4. Usage History & Waste Analytics

User workflow: User views dashboard → sees "you wasted $47 of groceries this month" → breakdown by category, time period → trends over 3-6 months

Aspect Details
Complexity Medium
Why valuable Gamification + awareness; users seeing "$47 wasted" change behavior
Data tracked Mark items "used" vs "thrown away/wasted"

Reporting scope:

  • Total waste value this month/year
  • Waste by category (Produce wastes more than dairy)
  • Waste by member (helps households identify who discards food)
  • Trend graphs (is waste improving over time?)

Market status: Starting to appear. Your Food tracks some usage; dedicated waste-focused apps exist (Winnow for commercial, some residential versions emerging).

5. Local Grocery Store Integration & Deal Tracking

User workflow: User enables store integration → app tracks local store pricing → alerts when staple items on sale → "milk is $1.50 cheaper at Kroger this week"

Aspect Details
Complexity Very High
Why valuable Potential $100-200/month savings; strong retention driver
Data partnerships Requires API access to store inventory/pricing (Kroger, Whole Foods, local chains)
Limitations Only works for stores with API access; varies by region

Feature scope:

  • Price alerts: "Your favorite brand is 20% off"
  • Stock status: "In-stock at your nearby Whole Foods"
  • Deal comparison: "Cheapest milk: Kroger ($2.49) vs Safeway ($2.99)"
  • Integration with shopping list: "You need milk; here's where it's cheapest"

Market status: Not yet standard in household apps; exists as separate category (Flashfood). Highly differentiated if done well.

6. AI-Powered Meal Planning

User workflow: User enables meal planning → app generates weekly meal plan using ingredients on hand → minimizes waste & supplemental purchases

Aspect Details
Complexity Very High
Why valuable Reduces waste by 40% (documented in studies); saves time on meal planning
AI requirement NLP to understand ingredient substitutions, recipe matching, dietary constraints

Feature scope:

  • Auto-generate 7-day meal plan optimizing for expiring items
  • Account for dietary restrictions (allergies, vegan, etc.)
  • Suggest recipes for expiring items specifically
  • Calculate ingredients needed vs. on-hand

Market status: Emerging 2026 feature; seen in MealFlow, Fitia, standalone meal planning apps. NOT standard in basic food inventory yet.


Anti-Features: Things to Deliberately NOT Build

Features that sound good but cause problems, confuse users, or don't drive value.

1. Over-Detailed Temperature & Humidity Tracking

Why avoid:

  • Users expect "Fridge" or "Pantry" location, not per-item microclimate data
  • Temperature sensors cost $, add hardware complexity
  • Household users don't change storage conditions frequently (unlike restaurants)
  • Data without action is noise: app tells user "item stored at 68F instead of 65F" → user confused, ignores alerts

What to do instead:

  • Support location types that imply temperature (Freezer, Fridge, Room temp)
  • Optional "store in cool place" flag on item
  • Let users set location; don't require hardware

Risk if ignored: Commercial app scope creep; household version never ships

2. Item-Level Quantity Depletion Tracking (Too Granular)

Why avoid:

  • User adds "1lb ground beef" → app asks "how much did you use today?" daily
  • Requires user to estimate fractional usage (user says "0.3 lb" but used 0.25)
  • 95% of users just mark "finished" rather than micro-tracking
  • UX becomes tedious; users stop updating

What to do instead:

  • Simplified: "Finished" button (item marked used, removed from inventory)
  • Optional: quantity tracking if user manually edits (editing "1 lb → 0.5 lb" is acceptable)
  • Avoid: daily micro-logging UI

3. Automatic Expiration Date Calculation from Purchase Date

Why avoid:

  • Users buy items at different times than use
  • "Best before" varies: milk 10 days, eggs 30 days, pasta 2 years
  • App guesses 7 days = misses dairy (10-14), overestimates shelf-stable
  • False alerts train users to ignore notifications

What to do instead:

  • Scan expiration date directly (barcode or photo)
  • Allow manual entry
  • Offer category presets (Dairy → default 10 days) but never auto-calculate without user confirmation

4. Over-Complex Category Hierarchies

Why avoid:

  • Apps offer nested categories: Produce → Vegetables → Root Vegetables → Carrots
  • User has 200 items, picks wrong category level, can't find carrot
  • Search finds it anyway, making categories useless
  • Over-categorization = analysis paralysis during add

What to do instead:

  • Flat, simple categories: Produce, Dairy, Meat, Pantry, Frozen, Other
  • Searchable instead of browseable
  • Let advanced users create custom categories (optional)

5. Price Tracking Without Purchase History

Why avoid:

  • App asks user to input price for every item
  • User buys milk at $2.49 today, inputs as $2.50
  • Next week: milk at Safeway is $2.19, app says "Wow you overpaid!"
  • Passive guilt instead of actionable insight

What to do instead:

  • Ask for price only if receipt scanning OR store API available
  • Budget tracking is table stakes; price micro-management is anti-feature
  • Don't require price input to use app

6. Social Sharing / Gamification (Until Proven)

Why avoid:

  • "You saved $47 this month! Share on social media!" feels marketing-ish to households
  • Sharing waste/grocery habits feels invasive (people embarrassed about what they buy/waste)
  • Leaderboards don't apply: families competing against each other is weird
  • Can backfire as annoying notifications

What to do instead:

  • Private household summary (dashboard)
  • Later: share achievements only if user explicitly opts in
  • Don't auto-post or prompt social sharing

7. Integration with Meal Delivery Services (Too Broad)

Why avoid:

  • "Your inventory + Blue Apron" sounds useful, adds complexity
  • Users who subscribe to meal delivery don't use inventory tracking (delivery handles it)
  • Adds maintenance burden for multiple service APIs
  • Feature creep pulls focus from core

What to do instead:

  • Stay focused on household inventory
  • Optionally link to shopping list (user manually orders)
  • Skip meal delivery integrations in V1/V2

Feature Dependencies & Workflow Map

Core (MVP):
  ├─ Add Items (barcode + manual)
  ├─ Track by Location (Fridge, Pantry, Freezer)
  ├─ Expiration Alerts
  └─ Multi-user Access

Mid-Phase (enables use cases):
  ├─ Mark Items Used (requires: Core)
  ├─ Shopping List (requires: Core)
  ├─ Search & Filter (requires: Core)
  └─ Dark Mode (independent)

Advanced (retention & differentiation):
  ├─ Usage Analytics (requires: Mark Items Used for 2+ weeks)
  ├─ Recipe Integration (requires: Core + inventory state)
  ├─ AI Meal Planning (requires: Usage Analytics + Recipe DB)
  ├─ Store Integration (requires: Shopping List + third-party APIs)
  └─ Waste Tracking (requires: Mark Items Used vs Wasted)

Risky / De-prioritized:
  ├─ Temperature Micro-tracking (avoided)
  ├─ Per-Portion Depletion (avoided)
  ├─ Auto-Expiration Calculation (avoided)
  └─ Social Sharing V1 (deferred)

User Workflows by Feature Maturity

Day 1: MVP (Onboarding → First Use)

User installs → Creates household account
→ Invites family member (optional)
→ Adds 3-5 items (barcode or manual)
  - Orange (Produce, Fridge, expires in 7 days)
  - Milk (Dairy, Fridge, expires in 10 days)
  - Rice (Pantry, Pantry, no expiration)
→ Receives first notification: "Milk expires in 3 days"
→ User marks milk "used" when consumed
→ Cycle repeats, builds usage history

Week 2-4: Mid-Phase Usage Patterns

User has ~30-50 items in inventory
→ Searches for "carrots" instead of browsing
→ Creates shopping list manually: "milk, eggs, bread"
→ Family member views same inventory, adds item from store
→ Real-time sync shows new item immediately
→ Receives grouped notifications: "5 items expiring this week"
→ Marks multiple items used after meal prep

Month 2+: Advanced Features Activate

App has usage history: milk 1x/week, eggs 1x/2 weeks
→ App alerts: "Based on history, you'll need milk in 3 days"
→ App suggests recipes: "Chicken + carrots expire tomorrow, here are 2 recipes"
→ Dashboard shows: "You wasted $12 of produce this month"
→ Optional: store integration shows: "Milk is $1 cheaper at Kroger this week"

Complexity Tiers & Implementation Effort

Feature Complexity Effort Risk Dependencies
Add Items (manual + barcode) Medium 3-4 weeks Medium Barcode DB
Expiration Alerts Medium 2-3 weeks Low Push notifications, scheduling
Multi-user + Real-time sync High 4-6 weeks High Auth, conflict resolution, DB sync
Storage Locations Low 1 week Low None
Search & Filter Low-Medium 2 weeks Low Search indexing
Shopping Lists Medium 2-3 weeks Low Inventory state
Dark Mode Low 1 week Low None
Usage Analytics Medium-High 3-4 weeks Medium Usage history, charting
Recipe Integration Very High 6-8 weeks High Recipe DB, food taxonomy, API
Store Pricing Integration Very High 8-12 weeks Very High Store APIs, pricing data, legal
AI Meal Planning Very High 8-12 weeks High ML models, recipe data, user prefs
Expiration Auto-Detection (OCR) High 4-6 weeks Medium Computer vision model, fallback UX

MVP Feature Recommendation for Sage

Based on research, recommend starting with:

Phase 1 (Weeks 1-6): Core Inventory + Expiration

  1. Add items: barcode scan + manual text entry (barcode DB lookup)
  2. Track location (Fridge, Pantry, Freezer)
  3. Expiration alerts (customizable, 2-3 day advance notice)
  4. Multi-user household creation + sharing
  5. Dark mode

Why this order:

  • Solves core pain point: "I forget what's in my fridge"
  • Barcode + manual covers both quick & comprehensive entry
  • Expiration alerts are primary retention driver
  • Family sharing is essential for roommate/household use case
  • Complexity is high but manageable; low dependencies

Phase 2 (Weeks 7-12): Usage Tracking & Lists

  1. Mark items "used" / "wasted" (simple binary for now)
  2. Shopping list (manual creation, check-off while shopping)
  3. Search & filtering by name, location, category
  4. Basic usage history display (optional: "You use milk every X days")

Why defer:

  • Requires user behavior to be useful (1-2 weeks data)
  • Shopping list is nice-to-have after core inventory works
  • Usage predictions need baseline data

Phase 3 (Weeks 13+): Differentiation

  1. Usage analytics dashboard (waste by category, % of waste, trends)
  2. Expiration date auto-detection (photo OCR)
  3. Recipe suggestions for expiring items (requires recipe DB)
  4. Optional: local grocery store integration (high complexity, high payoff)

Why last:

  • Requires user behavior data (weeks 1-2)
  • Recipe integration needs external DB + food taxonomy
  • Store integration is complex API work but strong differentiator

Defer to Post-MVP

Feature Why Defer Suggest Instead
Temperature microtracking Users don't need this; confuses households Just location (Fridge, Freezer, Pantry)
Per-item quantity depletion tracking Too tedious; users abandon Simple "Finished" button
Auto-calculation expiration dates Creates false alerts; breaks trust Scan or manual entry only
Meal delivery service integrations Scope creep; separate user base Manual shopping list suffices
Social sharing in V1 Premature; habit formation first Build in V2 once retention proven
Advanced roles (viewer, editor, admin) Overkill for 4-person households Single "household member" role + owner

Feature Parity with Competitors

Current market leaders (Your Food, NoWaste, Pantry Check, KitchenPal):

Feature Your Food NoWaste Pantry Check KitchenPal Sage (Recommended MVP)
Barcode scanning
Manual entry
Expiration alerts
Location tracking
Multi-user sharing
Dark mode
Shopping list Phase 2
Usage analytics Partial Partial Phase 3
Recipe integration Partial Phase 3
AI meal planning Partial Phase 3
Store pricing Phase 3 (Differentiator)
Consumption prediction Phase 3 (Differentiator)

Sage's differentiation points:

  • Usage prediction (learns consumption patterns, predicts "you'll need milk in 3 days")
  • Local sales tracking (integrated with store pricing, not separate app)
  • Combined in household context (family-first, not add-on)

Sources