# Home Renovation Project – Premium Notion Template  

---  

## 📊 Dashboard (Home Page)  
A **single‑page** hub that pulls live data from all databases. Pin this page to the sidebar for instant access.

| View | Type | Source DB | Filters / Grouping | Notes |
|------|------|-----------|--------------------|-------|
| **Portfolio Overview** | Table | **Projects** | Group by **Status**; Show **% Complete**, **Budget Variance**, **Schedule Variance** | Gives a quick glance at every active renovation. |
| **Master Gantt** | Timeline | **Tasks** | Sort by **Start (Calc)**; Show **Predecessor** line | Fully‑functional Gantt with task dependencies. |
| **Budget KPI** | Table | **KPI Dashboard** | No filter | Shows **Estimated vs. Actual**, **Contingency Used**, **% of Budget Spent**. |
| **Risk Matrix** | Board (Kanban) | **Risk Register** | Group by **Risk Score** (Low‑Medium‑High) | Visual risk heat‑map. |
| **Upcoming & Overdue** | Calendar | **Tasks** | Filter: `dateBetween(now(), prop("Due Date"), now())` OR `prop("Due Date") < now()` | Built‑in reminders (see **Task Management**). |
| **Design Inspiration** | Gallery | **Design Media** | No filter | Pulls images from Pinterest/Google Drive automatically (see section). |
| **Contracts Expiry** | Table | **Contracts** | Filter: `prop("Expiry Alert") = true` | Auto‑alerts for contracts nearing expiry. |

> **Tip:** Turn on **Full‑width** for the Dashboard and hide the left‑hand sidebar on mobile (see *Mobile Layout Guide*).  

---  

## 📁 Projects (Portfolio)  
One row per renovation project. All other databases link back to this table.

| Property | Type | Example |
|----------|------|---------|
| **Project Name** | Title | “Kitchen & Bath Refresh 2024” |
| **Owner(s)** | Person | Alex Rivera |
| **Start Date** | Date | 2024‑04‑01 |
| **Target Completion** | Date | 2024‑09‑30 |
| **Actual Completion** | Date | (filled when project finishes) |
| **Total Budget** | Number (Currency) | $45,000 |
| **Budget Used** | Rollup (from **Budget Tracker**) → **Sum of Actual Cost** | – |
| **Budget Variance %** | Formula | `if(prop("Total Budget") == 0, 0, (prop("Budget Used") - prop("Total Budget")) / prop("Total Budget"))` |
| **Schedule Variance (days)** | Formula | `dateBetween(prop("Actual Completion"), prop("Target Completion"), prop("Target Completion")) ? dateDiff(prop("Actual Completion"), prop("Target Completion"), "days") : dateDiff(now(), prop("Target Completion"), "days")` |
| **% Complete** | Formula | `if(prop("Target Completion") == empty, 0, (dateBetween(now(), prop("Start Date"), prop("Target Completion")) ? dateDiff(now(), prop("Start Date"), "days") / dateDiff(prop("Target Completion"), prop("Start Date"), "days") : 0) * 100` |
| **Status** | Select | Planning, In‑Progress, On‑Hold, Completed |
| **Risk Score** | Rollup (from **Risk Register**) → **Average of Risk Score** | – |
| **Contracts** | Relation → **Contracts** (many) | – |
| **Tasks** | Relation → **Tasks** (many) | – |
| **Budget Items** | Relation → **Budget Tracker** (many) | – |

### Portfolio Views  

| View | Type | Filters / Sort |
|------|------|----------------|
| **All Projects** | Table | Sort by **Start Date** descending |
| **Active Projects** | Table | Filter: `prop("Status") != "Completed"` |
| **High‑Risk Projects** | Board | Group by **Risk Score**; Filter: `prop("Risk Score") >= 7` |
| **Budget Overview** | Table | Show **Total Budget**, **Budget Used**, **Variance %** |

---  

## 📋 Tasks (Task Management)  

| Property | Type | Example |
|----------|------|---------|
| **Task** | Title | “Obtain building permits” |
| **Project** | Relation → **Projects** (single) | Kitchen & Bath Refresh 2024 |
| **Phase** | Select | Planning, Demo, Rough‑In, Finish, Closeout |
| **Owner** | Person | Alex |
| **Due Date** | Date (with **Remind 1 day before**) | 2024‑04‑10 |
| **Priority** | Select | High, Medium, Low |
| **Status** | Select | Not Started, In‑Progress, Blocked, Done |
| **Predecessor** | Relation → **Tasks** (self) | (optional) |
| **Start (Calc)** | Formula | `if(prop("Predecessor") == empty, prop("Due Date") - 7, dateAdd(prop("Predecessor").last().prop("Due Date"), 1, "days"))` |
| **End (Calc)** | Formula | `dateAdd(prop("Start (Calc)"), 7, "days")` |
| **Linked Budget Item** | Relation → **Budget Tracker** | (optional) |
| **Linked Design Media** | Relation → **Design Media** | (optional) |
| **Reminder Sent** | Formula | `if(dateBetween(now(), prop("Due Date"), prop("Due Date")), true, false)` |

### Task Views  

| View | Type | Filters / Grouping |
|------|------|--------------------|
| **Master Gantt** | Timeline | Use **Start (Calc)** as start, **End (Calc)** as end; Show **Predecessor** line |
| **Kanban** | Board | Group by **Status** |
| **By Phase** | Table | Group by **Phase**; Sort by **Priority** |
| **Upcoming (7 days)** | Calendar | Filter: `dateBetween(now(), prop("Due Date"), dateAdd(now(), 7, "days"))` |
| **Overdue** | Table | Filter: `prop("Due Date") < now() and prop("Status") != "Done"` |

---  

## 💰 Budget Tracker  

| Property | Type | Example |
|----------|------|---------|
| **Item** | Title | “Permit Fees” |
| **Project** | Relation → **Projects** (single) | Kitchen & Bath Refresh 2024 |
| **Category** | Select | Permits, Labor, Materials, Contingency |
| **Estimated Cost** | Number (Currency) | $1,200 |
| **Actual Cost** | Number (Currency) | $1,200 |
| **Paid?** | Checkbox | ✅ |
| **Notes** | Text | “City permit #12345” |
| **Cost Variance %** | Formula | `if(prop("Estimated Cost") == 0, 0, (prop("Actual Cost") - prop("Estimated Cost")) / prop("Estimated Cost"))` |
| **Linked Task** | Relation → **Tasks** | (optional) |

### Budget Views  

| View | Type | Filters |
|------|------|---------|
| **Budget Summary** | Table | Group by **Category**; Show rollup **Sum of Estimated**, **Sum of Actual**, **% Variance** |
| **Project‑Level Rollup** | Table (in **Projects**) | Shows **Budget Used** and **Budget Variance %** (see Projects table) |
| **Unpaid Items** | Table | Filter: `prop("Paid?") = false` |

---  

## ⚠️ Risk Register (Risk‑Management Matrix)  

| Property | Type | Example |
|----------|------|---------|
| **Risk** | Title | “Unexpected water line behind wall” |
| **Project** | Relation → **Projects** (single) | Kitchen & Bath Refresh 2024 |
| **Impact** | Select | Low, Medium, High |
| **Probability** | Select | Low, Medium, High |
| **Risk Score** | Formula | `if(prop("Impact") == "High", 3, if(prop("Impact") == "Medium", 2, 1)) * if(prop("Probability") == "High", 3, if(prop("Probability") == "Medium", 2, 1))` |
| **Mitigation Plan** | Text | “Reroute line before framing” |
| **Owner** | Person | Contractor |
| **Status** | Select | Identified, Mitigating, Resolved |
| **Linked Issue** | Relation → **Issue Log** | (optional) |

### Risk Views  

| View | Type | Grouping |
|------|------|----------|
| **Heat‑Map** | Board | Group by **Risk Score** (Low‑Medium‑High) |
| **Open Risks** | Table | Filter: `prop("Status") != "Resolved"` |
| **Project Risks** | Table (in **Projects**) | Rollup of **Average Risk Score** |

---  

## 📈 KPI Dashboard  

A lightweight page that surfaces key performance indicators via rollups & formulas.

| KPI | Source | Formula / Rollup |
|-----|--------|------------------|
| **Total Estimated Budget** | **Projects → Budget Items** | Rollup → `sum(prop("Estimated Cost"))` |
| **Total Actual Spend** | **Projects → Budget Items** | Rollup → `sum(prop("Actual Cost"))` |
| **Budget Variance %** | **Projects** | `prop("Budget Variance %")` |
| **Contingency Used** | **Budget Tracker** (Category = “Contingency”) | Rollup → `sum(prop("Actual Cost"))` |
| **Schedule Variance (days)** | **Projects** | `prop("Schedule Variance (days)")` |
| **Safety Incidents** | **Issue Log** (filter: “Safety”) | Rollup → `count(all)` |
| **Overall % Complete** | **Projects** | `prop("% Complete")` |

Add a **Table** view on this page showing the above rows; each row is a **Formula** property in a hidden “KPI Store” database (single‑row).  

---  

## 🎨 Design Inspiration Gallery (Design Media)  

| Property | Type | Example |
|----------|------|---------|
| **Media** | Title | “Modern Kitchen Pinterest Board” |
| **Project** | Relation → **Projects** (single) | Kitchen & Bath Refresh 2024 |
| **Type** | Select | Image, Pinterest Board, Google Drive Folder |
| **Embed URL** | URL | `https://www.pinterest.com/...` |
| **Thumbnail** | Files & Media | (auto‑generated when URL is embedded) |
| **Linked Task** | Relation → **Tasks** | “Install new cabinets” |
| **Notes** | Text | “Love the matte black hardware” |

### Ready‑to‑Use Integration  

1. **Pinterest** – Paste the board URL into **Embed URL** → Notion automatically renders a live preview.  
2. **Google Drive** – Use the shared‑folder link; Notion shows a clickable thumbnail that opens the folder.  
3. **Local Images** – Drag‑and‑drop into the **Thumbnail** cell.  

The **Design Inspiration** gallery on the Dashboard pulls from this database (Gallery view, full‑width).  

---  

## 📑 Contracts (Contract Management)  

| Property | Type | Example |
|----------|------|---------|
| **Contract** | Title | “General Contractor Agreement” |
| **Vendor** | Relation → **Contractor & Vendor Directory** (single) | Riverstone Renovations |
| **Project** | Relation → **Projects** (single) | Kitchen & Bath Refresh 2024 |
| **Contract Type** | Select | Fixed‑Price, Time‑and‑Materials, Service |
| **Effective Date** | Date | 2024‑04‑01 |
| **Expiry Date** | Date | 2025‑04‑01 |
| **Version** | Number | 2 |
| **Document** | Files & Media | (PDF upload) |
| **Signature** | Person (multi‑select) | Alex Rivera, Contractor |
| **Expiry Alert** | Formula | `dateBetween(now(), prop("Expiry Date"), dateAdd(now(), 30, "days"))` |
| **Reminder** | Date (with **Remind 1 day before**) | `prop("Expiry Date")` |

### Contract Views  

| View | Type | Filters |
|------|------|---------|
| **Active Contracts** | Table | Filter: `prop("Expiry Date") > now()` |
| **Expiring Soon** | Table | Filter: `prop("Expiry Alert") = true` |
| **Version History** | Table | Group by **Version**; Show **Effective Date**, **Expiry Date** |

---  

## 👥 Contractor & Vendor Directory  

| Property | Type | Example |
|----------|------|---------|
| **Name** | Title | Riverstone Renovations |
| **Role** | Select | General Contractor, Plumber, Electrician, Supplier |
| **Phone** | Phone | 555‑0123 |
| **Email** | Email | contact@riverstone.com |
| **Contract** | Relation → **Contracts** (many) | – |
| **Rating (1‑5)** | Number (1‑5) | 4 |
| **Notes** | Text | “Reliable, on‑time” |
| **Last Contacted** | Date | 2024‑04‑15 |
| **Next Follow‑Up** | Date (with **Remind 2 days before**) | 2024‑05‑01 |

### Vendor Views  

| View | Type | Grouping |
|------|------|----------|
| **All Vendors** | Table | Sort by **Rating** descending |
| **Top Rated** | Table | Filter: `prop("Rating (1‑5)") >= 4` |
| **Contracts Linked** | Table | Show linked contracts via rollup |

---  

## 🛠️ Issue Log & Change Orders  

| Property | Type | Example |
|----------|------|---------|
| **Issue / Change** | Title | “Unexpected water line behind wall” |
| **Project** | Relation → **Projects** (single) | Kitchen & Bath Refresh 2024 |
| **Date Reported** | Date | 2024‑04‑22 |
| **Impact (Cost/Time)** | Text | “+$800, +2 days” |
| **Owner** | Person | Contractor |
| **Resolution** | Text | “Rerouted line, approved change order” |
| **Status** | Select | Pending, Approved, Resolved |
| **Linked Task** | Relation → **Tasks** | “Demo existing cabinets” |
| **Safety Incident?** | Checkbox | (tick if safety‑related) |
| **Rollup: Cost Impact** | Formula | `toNumber(replaceAll(prop("Impact (Cost/Time)"), "[^0-9]", ""))` (extracts numeric cost) |

### Issue Views  

| View | Type | Filters |
|------|------|---------|
| **Open Issues** | Table | Filter: `prop("Status") != "Resolved"` |
| **Change Orders** | Table | Filter: `contains(prop("Impact (Cost/Time)"), "+")` |
| **Safety Log** | Table | Filter: `prop("Safety Incident?") = true` |

---  

## 📱 Mobile‑Optimized Layout Guide  

1. **Use Inline Databases** (not full‑page) for quick scroll on mobile.  
2. **Hide heavy galleries** on the mobile view: duplicate the Dashboard page → rename to “Dashboard (Mobile)” → delete the **Design Inspiration** gallery block.  
3. **Enable “Compact” view** for tables: click the three‑dot menu → **Properties → Hide** non‑essential columns (e.g., hide **Version**, **Notes**, **Linked Task**).  
4. **Set default view to “List” or “Table (Compact)”** for each database; these render fastest on the Notion app.  
5. **Pin the “Mobile Dashboard”** to the sidebar for one‑tap access.  

---  

## 📥 How to Import This Template  

1. **Create a new page** in your workspace → give it a name (e.g., “Home Renovation Hub”).  
2. Click the three‑dot menu → **“Import”** → choose **“Markdown & CSV”**.  
3. Upload the `.md` file you just received. Notion will generate headings and raw tables.  
4. For each table: click **“Turn into a database”** → select **Table – Full‑page** (or **Inline** for mobile‑optimized sections).  
5. **Set property types** exactly as listed (Date, Number (Currency), Select, Person, Relation, Formula, Rollup, Files & Media, URL, Checkbox).  
6. **Create Relations**:  
   - **Tasks → Projects** (single)  
   - **Tasks → Budget Tracker** (many)  
   - **Tasks → Design Media** (many)  
   - **Tasks → Predecessor** (self‑relation)  
   - **Budget Tracker → Projects** (single)  
   - **Budget Tracker → Tasks** (many)  
   - **Design Media → Projects** (single)  
   - **Design Media → Tasks** (many)  
   - **Risk Register → Projects** (single)  
   - **Issue Log → Projects** (single)  
   - **Issue Log → Tasks** (many)  
   - **Contracts → Projects** (single)  
   - **Contracts → Contractor & Vendor Directory** (single)  
   - **Contractor & Vendor Directory → Contracts** (many)  
7. **Add Views** exactly as described in each “Views” table.  
8. **Set Reminders**: open each **Date** property → click the clock icon → choose **“Remind 1 day before”** (or the custom reminder indicated).  
9. **Configure Gantt dependencies**: in the **Master Gantt** timeline view, enable **“Show dependencies”** (the line will appear automatically because of the **Predecessor** relation).  
10. **Duplicate the Dashboard** page → rename the copy **“Dashboard (Mobile)”** → delete the **Design Inspiration** gallery block (see Mobile Guide).  
11. **Publish** (optional): click **Share → Share to web** if you want a public copy for clients.  

Your premium Home Renovation Project system is now fully functional: multi‑project portfolio, automated budget roll‑ups, dependency‑aware Gantt, risk‑matrix, contract lifecycle alerts, media integrations, and mobile‑friendly layout. Enjoy seamless project execution!