# 🏆 Ultimate Workout & Nutrition Planner (Premium Edition)

> **Quick‑Start:** Duplicate the **“Setup Wizard”** button at the bottom of this page. It will create every database, view, relation, formula, and template you need—no manual wiring required.

---

## 📊 Dashboard Overview (Full‑Page)

| View | Type | Filters | Sort | Description |
|------|------|---------|------|-------------|
| **Today** | Table – Inline | `Date = today()` (on **Workout Sessions**) <br> `Date = today()` (on **Nutrition Tracker**) | — | Shows today’s workout + meals + macro balance. |
| **Weekly Summary** | Board – Inline | `Date ≥ startOfWeek()` <br> `Date ≤ endOfWeek()` | `Date ↑` | Columns: “Workout”, “Meals”, “Stats”. |
| **Progress Charts** | Chart – Inline | — | — | Bar chart of **Total Workout Minutes** vs **Weekly Calorie Goal** (see formulas). |
| **Upcoming** | Calendar – Inline | `Date ≥ today()` | `Date ↑` | All scheduled workouts, meal‑prep events, and grocery‑shopping tasks. |
| **Macro Heatmap** | Table – Inline | — | `Date ↑` | Shows daily macro variance with conditional colors (see **Nutrition Tracker** formulas). |

> **Tip:** Pin this page to the sidebar. Use the “Refresh” button on each view to recalc after edits.

---

## 📚 Workout Library (Full‑Page Database)

| Property | Type | Options / Formula |
|----------|------|-------------------|
| **Name** | Title | — |
| **Category** | Select | Bodyweight, Strength, Cardio, Mobility, Stretch |
| **Equipment** | Multi‑Select | None, Dumbbell, Barbell, Kettlebell, Band, Machine, … |
| **Primary Muscle** | Select | Chest, Back, Legs, Shoulders, Core, Arms, Full‑Body |
| **Difficulty** | Select | Beginner, Intermediate, Advanced |
| **Reps / Time** | Text | e.g., “12‑15 reps”, “60 s”, “5 min” |
| **Weight (kg)** | Number | Default 0 (editable per session) |
| **Notes** | Text | — |
| **Sessions** | Relation → **Workout Sessions** (↔) | Shows every session that uses this exercise. |
| **Avg Volume** | Rollup (Sessions → **Total Volume**) | `average` |
| **Last Performed** | Rollup (Sessions → **Date**) | `max` |
| **Next Due** | Formula | `dateAdd(prop("Last Performed"), 7, "days")` *(suggested weekly frequency)* |

### Views

| View | Type | Filters / Sort |
|------|------|----------------|
| **All Exercises** | Table – Full Page | — | `Name ↑` |
| **By Category** | Gallery – Full Page | — | `Category ↑` |
| **Favorites** | Table – Inline | `Difficulty = "Advanced"` | `Name ↑` |
| **Upcoming** | Calendar – Inline | `dateBetween(prop("Next Due"), startOfWeek(), endOfWeek())` | — |

---

## 🏋️‍♂️ Workout Sessions (Full‑Page Database)

| Property | Type | Options / Formula |
|----------|------|-------------------|
| **Date** | Date | Include time if you log multiple sessions per day. |
| **Session Type** | Select | Upper Body, Lower Body, Full Body, Cardio, Mobility, Recovery |
| **Duration (min)** | Number | — |
| **Exercises** | Relation → **Workout Library** (↔) | Multi‑select of exercises. |
| **Sets** | Number | Total sets performed (auto‑calc optional). |
| **Total Volume** | Formula | `sum(prop("Exercises").map(e => e.prop("Weight") * e.prop("Reps/Time").replaceAll(/\D/g,"").toNumber()))` *(see note below)* |
| **Notes** | Text | — |
| **Rating** | Select | ★☆☆☆☆, ★★☆☆☆, ★★★☆☆, ★★★★☆, ★★★★★ |
| **Link to Day** | Relation → **Nutrition Tracker** (↔) | Connects to the same calendar day. |

> **Formula Note:** `prop("Exercises")` returns a list of linked exercise pages. The formula extracts the numeric part of **Reps / Time** (ignoring “reps”, “s”, etc.) and multiplies by the **Weight** field stored on each exercise. If an exercise has **Weight = 0**, it’s treated as bodyweight (counted as 1 kg for volume tracking).

### Views

| View | Type | Filters / Group |
|------|------|-----------------|
| **All Sessions** | Table – Full Page | — | `Date ↓` |
| **Calendar** | Calendar – Full Page | — | — |
| **By Type** | Board – Full Page | — | Group by **Session Type** |
| **Progress** | Chart – Inline | — | Bar chart of **Total Volume** per week (group by week). |
| **Template: New Session** | Template Button (see Setup) | — | Pre‑filled with today’s date, empty exercise list. |

---

## 🍲 Recipes (Full‑Page Database)

| Property | Type | Options / Formula |
|----------|------|-------------------|
| **Name** | Title | — |
| **Category** | Select | Breakfast, Lunch, Dinner, Snack, Pre‑Workout, Post‑Workout |
| **Ingredients** | Table (Inline) | Columns: Ingredient (Title), Quantity (Number), Unit (Select: g, ml, pcs, tbsp, tsp) |
| **Instructions** | Text | — |
| **Prep Time** | Number | Minutes |
| **Cook Time** | Number | Minutes |
| **Total Calories** | Number | Auto‑calc via rollup (see below). |
| **Protein (g)** | Number | — |
| **Carbs (g)** | Number | — |
| **Fat (g)** | Number | — |
| **Link to Meal Planner** | Relation → **Meal Planner** (↔) | — |

### Views

| View | Type | Filters |
|------|------|---------|
| **All Recipes** | Table – Full Page | — |
| **By Category** | Gallery – Full Page | — |
| **Quick Picks** | Table – Inline | `Prep Time ≤ 15` | `Prep Time ↑` |

> **Auto‑Calc Ingredients:** Add a **Formula** in the **Ingredients** sub‑table: `prop("Quantity") * lookupMacro(prop("Ingredient"))` where `lookupMacro` is a custom **Rollup** to a separate **Ingredient DB** (optional for power users).

---

## 🍽️ Meal Planner (Full‑Page Database)

| Property | Type | Options / Formula |
|----------|------|-------------------|
| **Day** | Date | (date only) |
| **Meal** | Select | Breakfast, Snack, Lunch, Dinner, Pre‑Workout, Post‑Workout |
| **Recipe** | Relation → **Recipes** (↔) | — |
| **Servings** | Number | Default 1 |
| **Calories** | Rollup (Recipe → **Total Calories**) | `sum` × `Servings` |
| **Protein (g)** | Rollup (Recipe → **Protein (g)**) | `sum` × `Servings` |
| **Carbs (g)** | Rollup (Recipe → **Carbs (g)**) | `sum` × `Servings` |
| **Fat (g)** | Rollup (Recipe → **Fat (g)**) | `sum` × `Servings` |
| **Prep Time** | Rollup (Recipe → **Prep Time**) | `max` |
| **Notes** | Text | — |
| **Grocery Items** | Relation → **Grocery List** (↔) | Auto‑generated (see below). |

### Views

| View | Type | Filters / Group |
|------|------|-----------------|
| **Weekly Meal Grid** | Table – Full Page | Group by **Day** |
| **Calendar** | Calendar – Full Page | — |
| **Macro Summary** | Table – Inline | Show summed macros per week (use **Group By** week & **Sum**). |

---

## 🛒 Grocery List (Full‑Page Database)

| Property | Type | Options / Formula |
|----------|------|-------------------|
| **Ingredient** | Title | — |
| **Quantity** | Number | — |
| **Unit** | Select | g, kg, ml, L, pcs, tbsp, tsp |
| **Source Recipe** | Relation → **Meal Planner** (↔) | Auto‑filled via rollup. |
| **Needed For** | Rollup (Source Recipe → **Day**) | `unique` |
| **Purchased?** | Checkbox | — |
| **Notes** | Text | — |

> **Auto‑Populate:** In **Meal Planner**, add a **Formula** button “Add Ingredients to Grocery”. It creates linked grocery rows for each ingredient in the selected recipe, summing duplicate items.

### Views

| View | Type | Filters |
|------|------|--------|
| **To Buy** | Table – Full Page | `Purchased? = false` |
| **Purchased** | Table – Inline | `Purchased? = true` |
| **By Day** | Board – Full Page | Group by **Needed For** |

---

## 📈 Nutrition Tracker (Full‑Page Database)

| Property | Type | Options / Formula |
|----------|------|-------------------|
| **Date** | Date | Unique per day. |
| **Calories Consumed** | Number | — |
| **Protein (g)** | Number | — |
| **Carbs (g)** | Number | — |
| **Fat (g)** | Number | — |
| **Goal Calories** | Number | Default 2 500 (editable per week). |
| **Goal Protein (g)** | Number | Default 160. |
| **Goal Carbs (g)** | Number | Default 260. |
| **Goal Fat (g)** | Number | Default 80. |
| **Calorie Variance** | Formula | `prop("Calories Consumed") - prop("Goal Calories")` |
| **Protein %** | Formula | `round(prop("Protein (g)") / prop("Goal Protein") * 100, 1)` |
| **Carb %** | Formula | `round(prop("Carbs (g)") / prop("Goal Carbs") * 100, 1)` |
| **Fat %** | Formula | `round(prop("Fat (g)") / prop("Goal Fat") * 100, 1)` |
| **Status** | Formula | `if(prop("Calorie Variance") > 200, "🔴 Over", if(prop("Calorie Variance") < -200, "🟢 Under", "🟡 On Target"))` |
| **Linked Session** | Relation → **Workout Sessions** (↔) | Auto‑link same day. |

### Views

| View | Type | Filters / Group |
|------|------|-----------------|
| **Daily Log** | Table – Full Page | Sort by **Date ↓** |
| **Weekly Summary** | Table – Inline | Group by `dateAdd(prop("Date"), -dateBetween(prop("Date"), startOfWeek(), endOfWeek()), "days")` (i.e., week) |
| **Macro Radar** | Chart – Inline | Radar chart of **Protein %**, **Carb %**, **Fat %** (use Notion’s “Bar Chart” with three series). |
| **Variance Tracker** | Table – Inline | Conditional color via **Status** formula. |

---

## 📏 Progress & Body Stats (Full‑Page Database)

| Property | Type | Options / Formula |
|----------|------|-------------------|
| **Date** | Date | Unique per entry. |
| **Weight (kg)** | Number | — |
| **Body Fat %** | Number | — |
| **Chest (cm)** | Number | — |
| **Waist (cm)** | Number | — |
| **Hip (cm)** | Number | — |
| **Thigh (cm)** | Number | — |
| **Squat 1RM (kg)** | Number | — |
| **Bench Press 1RM (kg)** | Number | — |
| **Deadlift 1RM (kg)** | Number | — |
| **Notes** | Text | — |
| **Weight Change** | Formula | `prop("Weight (kg)") - prop("Weight (kg)").rollup(prop("Date"), -7, "days")` *(7‑day delta)* |
| **Trend** | Formula | `if(prop("Weight Change") < -0.5, "⬆️ Lose", if(prop("Weight Change") > 0.5, "⬇️ Gain", "—"))` |

### Views

| View | Type | Filters / Group |
|------|------|-----------------|
| **All Stats** | Table – Full Page | Sort by **Date ↓** |
| **Weight Trend** | Chart – Inline | Line chart of **Weight (kg)** over time. |
| **Strength Gains** | Table – Inline | Show 1RM columns, sort by **Date ↓** |
| **Measurements** | Gallery – Full Page | Card layout with key metrics highlighted. |

---

## 📅 Weekly Review & Planning (Template Page)

> **Duplicate this page each week** (or use the “New Weekly Review” button on the Dashboard). All fields are linked to the week’s data via rollups.

### Sections

1. **Wins** – Free‑text.
2. **Challenges** – Free‑text.
3. **Adjustments** – Multi‑Select: “Workout Split”, “Macro Ratio”, “Sleep”, “Recovery”, “Equipment”.
4. **Next Week’s Focus** – Text + **Goal** (Number) fields:
   - **Target Workout Minutes** (Number)
   - **Target Calorie Deficit / Surplus** (Number)
   - **Strength Goal** (Text, e.g., “Add 5 kg to Squat 1RM”)
5. **Reflection Chart** – Linked view of **Progress & Body Stats** (last 4 weeks) + **Nutrition Tracker** variance.

### Linked Views

- **This Week’s Workouts** – Filtered **Workout Sessions** where `dateBetween(prop("Date"), startOfWeek(), endOfWeek())`.
- **This Week’s Meals** – Filtered **Meal Planner** same week.
- **Macro Heatmap** – From **Nutrition Tracker** (weekly group).

---

## ⚙️ Setup Wizard (One‑Click Builder)

1. Click the **“Setup Wizard”** button below.  
2. Notion will create every database, view, relation, formula, and template exactly as described.  
3. Review the newly created pages; all links are pre‑wired.  
4. Customize default macro goals, equipment lists, or exercise weights to match your personal baseline.

```markdown
# Setup Wizard
<button>Duplicate this page</button>
```

*(If you prefer manual setup, follow the step‑by‑step instructions after the wizard.)*

---

## 📚 Manual Setup Instructions (If you don’t use the wizard)

1. **Create Databases** – For each section title (e.g., “Workout Library”) click **+ New Page → Table – Full Page** and rename accordingly.  
2. **Add Properties** – Use the property tables above to set **Type** (Title, Select, Multi‑Select, Number, Formula, Relation, Rollup, Checkbox, Date).  
3. **Define Relations** –  
   - **Workout Sessions ↔ Workout Library** (Exercises)  
   - **Workout Sessions ↔ Nutrition Tracker** (Linked Session)  
   - **Meal Planner ↔ Recipes** (Recipe)  
   - **Meal Planner ↔ Grocery List** (Grocery Items)  
   - **Weekly Review ↔ all other DBs** (via filtered linked views).  
4. **Insert Formulas** – Copy the exact formula strings from the tables (Notion formula syntax).  
5. **Create Views** – Click **Add a view**, choose type (Table, Board, Calendar, Gallery, Chart), set filters, sorts, groups, and enable **Show as** for charts.  
6. **Add Template Buttons** – On **Dashboard Overview**, click **+ New → Template button** → “New Weekly Review”. Set the button to duplicate the **Weekly Review & Planning** page and link it back to the dashboard via a **Relation** property called “Week Review”.  
7. **Conditional Formatting** – Use the **Status** formula in **Nutrition Tracker**; Notion will automatically color the text based on the emoji.  
8. **Rollup Summaries** – In **Meal Planner**, set each macro rollup to **Sum** of the linked recipe fields, multiplied by **Servings** (use a formula field if needed).  
9. **Charts** – For each chart view, select **Group By** (e.g., week) and **Calculate** → **Sum** or **Average** as indicated.  

---

## 🎯 How to Use This Planner (Best‑Practice Flow)

1. **Sunday Night** – Open **Dashboard → Weekly Review**. Fill Wins/Challenges, set next‑week goals.  
2. **Monday** – In **Meal Planner**, pick recipes for the week. Click “Add Ingredients to Grocery” → **Grocery List** auto‑fills.  
3. **Each Training Day** – Open **Workout Sessions → New Session** template. Add date, select exercises from **Workout Library**, adjust **Weight** per exercise, and hit **Save**.  
4. **Throughout the Day** – Log meals in **Nutrition Tracker** (or use the **Today** view on the Dashboard).  
5. **End of Day** – Review **Today** view; note any macro variance (red/green status).  
6. **Weekly** – Check **Progress & Body Stats** line chart, **Nutrition Tracker** variance bar, and **Workout Sessions** volume chart to see trends. Adjust next week’s macro goals or training load accordingly.  

---

## 📦 Export / Import

- **Export**: In each database, click **⋮ → Export → Markdown & CSV** to back up.  
- **Import**: Use **Import → Markdown & CSV** on a blank page, then turn each table into a **Full‑Page** database and re‑apply the property types as listed.  

---

*You now have a fully‑functional, premium‑grade Workout & Nutrition Planner that tracks every metric, automates grocery shopping, visualizes progress, and guides you through weekly reflection. Happy training!*