# Meal‑Prep Planner (Premium)

## Overview
A turnkey Notion system for busy parents that lets you:

1. **Plan weekly menus** – assign meals to each day, mealtime, and household member.  
2. **Generate smart shopping lists** – auto‑calculate ingredient amounts, export to grocery services, and scan barcodes.  
3. **Schedule prep sessions** – block time for chopping, cooking, and batch‑cooking with shared calendars.  
4. **Track nutrition & budget** – see calories, macros, micronutrients, cost per serving, and prep‑time variance in a single dashboard.  
5. **Support multiple household members** – individual diet profiles, allergen filters, and permission‑based sharing.  

All data lives in linked databases with formulas, roll‑ups, and pre‑built mobile‑friendly views. A 5‑step Sunday workflow gets you ready for the week in minutes.

---

## 1️⃣ Getting Started (Onboarding)

| Page | Content |
|------|---------|
| **Welcome** | Brief intro + link to the **Video Walkthrough** (embed placeholder). |
| **Video Walkthrough** | `https://www.youtube.com/watch?v=YOUR_VIDEO_ID` (replace with your hosted video). |
| **FAQ** | Common setup questions, troubleshooting, and support email. |
| **Setup Checklist** | • Duplicate “Household Members – Template”  <br>• Duplicate “Recipes – Template”  <br>• Duplicate “Weekly Menu – Template”  <br>• Connect to your grocery service (see Integration section). |

> 📱 **Mobile tip:** All pages are created as **Inline** databases so they render natively on the Notion mobile app. Use the preset **Mobile List** view for quick scrolling.

---

## 2️⃣ Household Members

| Property | Type | Description |
|----------|------|-------------|
| **Name** | Title | Full name of the member. |
| **Avatar** | Files & media | Photo (optional). |
| **Dietary Tags** | Multi‑select | `Keto`, `Paleo`, `Vegan`, `Vegetarian`, `Low‑FODMAP`, etc. |
| **Allergens** | Multi‑select | `Gluten`, `Peanuts`, `Dairy`, `Shellfish`, `Soy`, `Eggs`. |
| **Calorie Goal (kcal)** | Number | Daily target. |
| **Macro Targets** | Formula (JSON) | `{ "protein": 150, "carbs": 200, "fat": 70 }` (editable per member). |
| **Permission** | Select | `Owner`, `Editor`, `Viewer` (used for shared pages). |

**Suggested Views**  
- **All Members** – Table, sorted alphabetically.  
- **Diet Profiles** – Gallery grouped by `Dietary Tags`.  
- **Mobile List** – List view with only `Name` and `Avatar` (default mobile view).

---

## 3️⃣ Recipes (Master)

| Property | Type | Description |
|----------|------|-------------|
| **Recipe Name** | Title | Unique name. |
| **Category** | Select | `Breakfast`, `Lunch`, `Dinner`, `Snack`, `Dessert`. |
| **Servings (Base)** | Number | Servings the recipe is written for. |
| **Prep Time (min)** | Number | Estimated prep minutes. |
| **Cook Time (min)** | Number | Estimated cook minutes. |
| **Difficulty** | Select | `Easy`, `Medium`, `Hard`. |
| **Cost per Serving ($)** | Number | Auto‑calculated from ingredient costs. |
| **Calories per Serving** | Number | Macro‑derived (see formulas). |
| **Protein (g)** | Number | Macro‑derived. |
| **Carbs (g)** | Number | Macro‑derived. |
| **Fat (g)** | Number | Macro‑derived. |
| **Micronutrients** | Multi‑select | `Vitamin A`, `Vitamin C`, `Calcium`, `Iron`, `Fiber`, etc. |
| **Dietary Tags** | Multi‑select | Same list as Household Members. |
| **Allergens** | Multi‑select | Same list as Household Members. |
| **Tags** | Multi‑select | `Quick`, `MakeAhead`, `KidFriendly`, `FreezerFriendly`, `BatchCook`. |
| **Ingredients** | Relation → **Ingredients** (inline) | Link to ingredient sub‑table. |
| **Instructions** | Text | Step‑by‑step directions. |
| **Source URL** | URL | Link to original recipe. |
| **Photo** | Files & media | Image of finished dish. |
| **Created By** | Person | Owner of the recipe. |

### Ingredients Sub‑Database (inline, linked to each recipe)

| Property | Type | Description |
|----------|------|-------------|
| **Ingredient** | Title | Name of the ingredient. |
| **Quantity (Base)** | Number | Amount for the **Servings (Base)** of the recipe. |
| **Unit** | Select | `g`, `kg`, `ml`, `l`, `cup`, `tbsp`, `tsp`, `pcs`, etc. |
| **Cost ($)** | Number | Unit cost (e.g., $0.50 per cup). |
| **Allergen** | Multi‑select | Same list as above (optional). |
| **Barcode** | Text | Scan result (optional – use any barcode scanner app and paste). |
| **Scaled Quantity** | Formula | `prop("Quantity (Base)") * (prop("Weekly Menu → Servings Planned") / prop("Servings (Base)"))` (auto‑scales per week). |
| **Total Cost** | Formula | `prop("Scaled Quantity") * prop("Cost ($)")`. |

**Suggested Views**  
- **All Recipes** – Table, sorted alphabetically.  
- **Quick Meals** – Filter `Prep Time ≤ 15`.  
- **Make‑Ahead** – Filter `Tags` contains `MakeAhead`.  
- **Dietary Filters** – Multi‑select filter on `Dietary Tags` & `Allergens`.  
- **Mobile Gallery** – Gallery view with recipe photo (default mobile view).  

**Formulas for Macros (in Recipes)**  
- `Calories per Serving = round(prop("Protein (g)") * 4 + prop("Carbs (g)") * 4 + prop("Fat (g)") * 9)`  
- `Cost per Serving = round(sum(prop("Ingredients").rollup("Total Cost")), 2)`  

---

## 4️⃣ Weekly Menu Planner

| Property | Type | Description |
|----------|------|-------------|
| **Week (Start)** | Date | Monday of the week. |
| **Day** | Select | `Monday`‑`Sunday`. |
| **Meal** | Select | `Breakfast`, `Lunch`, `Dinner`, `Snack`. |
| **Member** | Relation → **Household Members** | Who will eat the meal. |
| **Recipe** | Relation → **Recipes** | Linked recipe. |
| **Servings Planned** | Number | Desired servings for this meal (auto‑scaled). |
| **Scaled Ingredients** | Rollup → **Ingredients → Scaled Quantity** | Sum of all ingredient quantities needed for this meal. |
| **Total Cost** | Rollup → **Ingredients → Total Cost** (sum). |
| **Calories** | Rollup → **Recipes → Calories per Serving** (sum * Servings Planned). |
| **Protein** | Rollup → **Recipes → Protein (g)** (sum * Servings Planned). |
| **Carbs** | Rollup → **Recipes → Carbs (g)** (sum * Servings Planned). |
| **Fat** | Rollup → **Recipes → Fat (g)** (sum * Servings Planned). |
| **Micronutrients** | Rollup → **Recipes → Micronutrients** (unique). |
| **Prep Session** | Relation → **Prep Sessions** | Auto‑linked (see below). |
| **Notes** | Text | Special instructions (e.g., “no peanuts”). |

**Ingredient Scaling Logic**  
- The **Scaled Quantity** formula in the Ingredients sub‑database uses the `Servings Planned` from the Weekly Menu row that references the recipe. This automatically updates the Shopping List.

**Suggested Views**  
- **Calendar** – Calendar view grouped by `Day`.  
- **Daily List** – Filter `Day` = today, grouped by `Meal`.  
- **Member View** – Filter by a specific `Member`.  
- **Mobile List** – List view with only `Day`, `Meal`, `Recipe`.  
- **Nutrition Summary** – Table grouped by `Week (Start)` showing total calories, macros, and cost.  

---

## 5️⃣ Shopping List Generator

| Property | Type | Description |
|----------|------|-------------|
| **Ingredient** | Title | From Ingredients roll‑up. |
| **Quantity** | Formula | `prop("Scaled Quantity")` (rounded to 2 decimals). |
| **Unit** | Rollup → **Ingredients → Unit** (show first). |
| **Source Recipe** | Rollup → **Weekly Menu → Recipe** (show name). |
| **Cost ($)** | Rollup → **Ingredients → Total Cost** (sum). |
| **Purchased?** | Checkbox | Tick when bought. |
| **Barcode** | Text | Paste scanned barcode (optional). |
| **Week (Start)** | Relation → **Weekly Menu → Week (Start)** | Auto‑linked to the week. |

**Automation Buttons**  
- **Generate List** – Notion button (via `Create a new page` → `Template button`) that creates a filtered view of this table for the current week.  
- **Export CSV** – Template button that copies the view to a CSV file (use Notion’s “Export → CSV” on the filtered view).  

**Suggested Views**  
- **Current Week** – Filter `Week (Start)` = this week.  
- **By Store** – Group by a multi‑select `Store` property (add manually).  
- **Mobile Checklist** – List view with only `Ingredient`, `Quantity`, `Purchased?`.  

---

## 6️⃣ Prep Session Scheduler (Shared Calendar)

| Property | Type | Description |
|----------|------|-------------|
| **Session Name** | Title | Auto‑generated (`{Day} {Meal} Prep`). |
| **Date & Time** | Date & time | Scheduled slot. |
| **Linked Meal** | Relation → **Weekly Menu** | Meal being prepared. |
| **Duration (min)** | Formula | `prop("Linked Meal").rollup("Prep Time (min)") + prop("Linked Meal").rollup("Cook Time (min)")` |
| **Member** | Rollup → **Weekly Menu → Member** | Who will do the prep. |
| **Location** | Select | `Home Kitchen`, `Work Kitchen`, `Outdoors`. |
| **Notes** | Text | Checklist for the session. |
| **Sync** | Checkbox | Tick to push to Google Calendar via Notion integration. |

**Suggested Views**  
- **Week at a Glance** – Calendar view filtered to the current week.  
- **Member Calendar** – Filter by `Member`.  
- **Mobile Agenda** – List view sorted by `Date & Time`.  

---

## 7️⃣ Meal‑Prep Dashboard (Master)

### Dashboard Page Layout (inline)

| Block | Content |
|------|---------|
| **Weekly Overview** | Linked view of **Weekly Menu → Nutrition Summary** (table). |
| **Nutrition Chart** | Formula bar chart using `prop("Calories")` vs. `prop("Calorie Goal (kcal)")` from Household Members (use `progress` formula). |
| **Budget Tracker** | Rollup of **Shopping List → Cost ($)** (sum) vs. weekly budget (property on Dashboard). |
| **Prep Time Tracker** | Formula `prop("Duration (min)")` roll‑up from **Prep Sessions** (sum). |
| **Allergen Alerts** | Filtered view of **Weekly Menu** where `Allergens` intersect with any member’s allergens → highlighted. |
| **Mobile Quick View** | List view of today’s meals with icons (use formula `if(prop("Member") == "Parent", "👩‍🍳", "👦")`). |

#### Example Formulas

- **Progress Bar (Calories)**  
  ```markdown
  prop("Calories") / prop("Member").rollup("Calorie Goal (kcal)") * 100
  ```
  Use a formula to display `"🟢"` if >90%, `"🟡"` if 70‑90%, `"🔴"` if <70%.

- **Prep Time Variance** (in Recipes)  
  ```markdown
  prop("Prep Time (min)") - prop("Prep Time (min)").rollup("Average Prep Time")
  ```

- **Cost per Serving** (in Recipes) – already defined.

**Dashboard Views**  
- **Mobile Dashboard** – List view with only key metrics (Calories, Cost, Prep Time).  
- **Full Dashboard** – Table view with all roll‑ups and charts (desktop).  

---

## 8️⃣ Integration & Automation

| Integration | Setup Steps |
|------------|--------------|
| **Instacart / Amazon Fresh Export** | 1. In **Shopping List → Current Week**, click **Export CSV** button. <br>2. In Zapier, create a Zap: **Trigger** – New CSV File in Google Drive; **Action** – “Create Order” in Instacart (or “Add to Cart” in Amazon Fresh). |
| **Barcode Scanning** | Use any smartphone barcode scanner app, copy the scanned value, and paste into the **Barcode** field of the ingredient. The value can be used to look up price via a Zapier lookup table. |
| **Google Calendar Sync** | In Notion → Settings & Members → Integrations → Connect Google Calendar. Enable sync for the **Prep Session Scheduler** calendar. |
| **Mobile Reminder** | Turn on Notion notifications for the **Prep Session Scheduler** page; set each session’s `Date & Time` to trigger a push notification. |
| **API Access** | Use Notion API token (found in Settings → Integrations) to pull the **Shopping List** into any third‑party app (e.g., MyFitnessPal, budgeting tools). |

---

## 9️⃣ Import into Notion

1. **Create a new page** where you want the planner.  
2. Click **Import → Markdown & CSV**, upload this `.md` file.  
3. Notion will create headings and plain tables.  
4. For each table:  
   - Click the table → **Turn into → Table – Full Page** (or **Inline** for mobile).  
   - Rename the database to match the section title (e.g., “Recipes”).  
   - Convert **Relation** columns by selecting **Relation → Connect to…** the appropriate database.  
   - Add **Rollup**, **Formula**, **Select**, **Multi‑select**, **Checkbox**, and **Number** properties as listed.  
5. Re‑create the saved **Views** (Calendar, Gallery, List, Mobile List) using the view settings in each section.  
6. Duplicate the **Getting Started** page for each new workspace member and adjust permissions (`Owner`, `Editor`, `Viewer`).  
7. Set up the **Integration & Automation** steps (Zapier, Google Calendar) to enable one‑click grocery export and barcode scanning.  

Your premium Meal‑Prep Planner is now fully functional—plan, shop, prep, and track nutrition for the whole family with confidence!