# 📦 RenovateOS – Multi‑Site Renovation OS  
**[Duplicate to your workspace →](https://www.notion.so/duplicate?template=RenovateOS)**  

![RenovateOS Cover](https://images.unsplash.com/photo-1581093588445-9c5d5b2e5c5b?auto=format&fit=crop&w=1200&q=80)  
*Cover: modern construction site, high‑contrast, mobile‑friendly.*

---  

## 🎛️ Dashboard (Page) – “Command Center”  

**Icon:** `🏗️` **Cover:** *Same as above*  

### Primary Views (mobile‑first)

| View | Type | Group / Filter | Key Columns |
|------|------|----------------|-------------|
| **Active Sites Board** | Board | Status (Bidding, Planning, In Progress, Inspection, Completed, On Hold) | Project Name, Progress % (formula), Budget Health |
| **Urgent Tasks** | List | Due Date ≤ next 48 h | Task, Project, Assigned To, Priority |
| **Budget Watch** | Table | Budget Health = “⚠️ Over 80%” | Project, Budget, Spent, Health Indicator |
| **Timeline – All Sites** | Timeline | — | Project, Start Date → Deadline, Status |
| **Gantt – Portfolio** | Gantt (via Timeline view with dependencies) | — | Project, Start Date, Deadline, Predecessor (Relation to other Projects) |

> **Quick tip (mobile):** Long‑press the page header → *Add to Home Screen* for app‑like access.

---  

## 👥 Clients & Leads (Database)  

**Icon:** `👤` **Cover:** *Optional – team photo*  

| Property | Type | Details |
|----------|------|---------|
| **Client Name** | Title | — |
| **Company** | Text | — |
| **Primary Contact** | Person | — |
| **Phone** | Phone | — |
| **Email** | Email | — |
| **Billing Address** | Text | — |
| **Lead Source** | Select (Referral, Web, Referral, Trade Show) | — |
| **Status** | Select (Lead, Prospect, Active, Inactive) | — |
| **Related Projects** | Relation → **Projects Hub** (Many) | — |
| **Last Contact** | Date | — |
| **Notes** | Text | — |

**Views**  
* **All Clients** – Table, sorted by Status.  
* **Active Clients** – Filter: Status = “Active”.  
* **Leads Pipeline** – Board, grouped by Lead Source.  

---  

## 📁 Projects Hub (Database)  

**Icon:** `📂` **Cover:** *Blueprint or site plan*  

| Property | Type | Details |
|----------|------|---------|
| **Project Name** | Title | — |
| **Site Address** | Text | — |
| **Client** | Relation → **Clients & Leads** (One) | — |
| **Status** | Select (Bidding, Planning, In Progress, Inspection, Completed, On Hold) | — |
| **Budget ($)** | Number (currency) | — |
| **Spent to Date** | Formula `prop("Materials Cost") + prop("Subcontractor Cost") + prop("Change Orders Total")` |
| **Budget Health** | Formula `if(prop("Spent to Date") > prop("Budget ($)") * 0.8, "⚠️ Over 80%", "✅ Under 80%")` |
| **Progress %** | Formula `round((prop("Completed Tasks") / prop("Total Tasks")) * 100, 0) + "%" ` |
| **Progress Bar** | Formula `slice("▓▓▓▓▓▓▓▓▓▓", 0, floor(prop("Progress %") / 10)) + slice("░░░░░░░░░░", 0, 10 - floor(prop("Progress %") / 10))` |
| **Project Manager** | Person | — |
| **Start Date** | Date | — |
| **Deadline** | Date | — |
| **Predecessor** | Relation → **Projects Hub** (One) | Enables Gantt dependencies |
| **Materials Cost** | Rollup (Materials & Procurement → Total Cost) |
| **Subcontractor Cost** | Rollup (Subcontractor Directory → Sum of Assigned Tasks → Cost) |
| **Change Orders Total** | Rollup (Change Orders → Approved Amount) |
| **Completed Tasks** | Rollup (Task Scheduler → Count where Status = “Done”) |
| **Total Tasks** | Rollup (Task Scheduler → Count) |
| **Priority** | Select (Low, Medium, High, Critical) – color‑coded (🟢, 🟡, 🟠, 🔴) |
| **Tags** | Multi‑Select (Renovation, Commercial, Residential, Historic) – each tag assigned a background color via Notion’s tag colors |

**Views**  
* **Portfolio Board** – Board grouped by Status, card preview shows Progress % and Budget Health.  
* **Timeline – Projects** – Timeline view with Start Date → Deadline, showing Predecessor links.  
* **Gantt – Portfolio** – Same Timeline view with “Show Dependencies” toggled.  
* **Financial Summary** – Table, hide all but Budget, Spent, Health, Change Orders.  

---  

## 📈 Change Orders (Database)  

**Icon:** `📝` **Cover:** *Paperwork*  

| Property | Type | Details |
|----------|------|---------|
| **Change Order #** | Title | Auto‑number (e.g., CO‑001) |
| **Related Project** | Relation → **Projects Hub** (One) | — |
| **Description** | Text | — |
| **Requested By** | Person | — |
| **Requested Date** | Date | — |
| **Approved** | Checkbox | — |
| **Approved Amount ($)** | Number (currency) | — |
| **Status** | Select (Pending, Approved, Rejected) | — |
| **Impact on Schedule** | Select (None, +1 day, +1 week, +1 month) | — |
| **Linked Tasks** | Relation → **Task Scheduler** (Many) | Auto‑populate when tasks created from this CO |
| **Total Cost** | Formula `if(prop("Approved"), prop("Approved Amount ($)"), 0)` |

**Views**  
* **Pending COs** – List filtered where Approved = false.  
* **Approved COs** – Table grouped by Project.  

---  

## 📋 Task Scheduler (Database)  

**Icon:** `✅` **Cover:** *Checklist*  

| Property | Type | Details |
|----------|------|---------|
| **Task Name** | Title | — |
| **Related Project** | Relation → **Projects Hub** (One) | — |
| **Assigned To** | Relation → **Subcontractor Directory** (Many) | — |
| **Due Date** | Date | — |
| **Start Date** | Date | — |
| **Status** | Select (Not Started, In Progress, Review, Done) | — |
| **Priority** | Select (Low, Medium, Urgent, Critical) – color‑coded |
| **Estimated Hours** | Number | — |
| **Actual Hours** | Number | — |
| **Cost** | Formula `prop("Estimated Hours") * avg(prop("Assigned To").hourly_rate)` |
| **Dependency** | Relation → **Task Scheduler** (One) | Enables task‑level Gantt |
| **Progress** | Formula `if(prop("Status") == "Done", 1, if(prop("Status") == "Review", 0.75, if(prop("Status") == "In Progress", 0.5, 0)))` |
| **Progress Bar** | Formula `slice("▓▓▓▓▓▓▓▓▓▓", 0, floor(prop("Progress") * 10)) + slice("░░░░░░░░░░", 0, 10 - floor(prop("Progress") * 10))` |

**Views**  
* **Board – By Status** – Mobile‑first Kanban.  
* **Timeline – Tasks** – Timeline view with Start Date → Due Date, showing Dependency lines.  
* **Calendar – All Tasks** – Calendar view filtered to current month.  
* **Urgent Queue** – List filtered: Priority = “Urgent” OR “Critical” AND Status ≠ “Done”.  

> **Automation tip:** Enable “Reminders” on **Due Date** → *24 h before* and *1 h before* for push notifications.  

---  

## 🛠️ Subcontractor Directory (Database)  

**Icon:** `👷‍♂️` **Cover:** *Team photo*  

| Property | Type | Details |
|----------|------|---------|
| **Name** | Title | — |
| **Trade** | Select (Plumbing, Electrical, Drywall, Flooring, Carpentry, General Labor, HVAC) – each with distinct tag color |
| **Hourly Rate ($)** | Number (currency) | — |
| **Phone** | Phone | — |
| **Email** | Email | — |
| **Insurance Status** | Select (Valid, Expired, Pending) – color‑coded |
| **License Expiration** | Date | — |
| **Current Projects** | Rollup (Task Scheduler → Count where Status ≠ “Done”) |
| **Total Hours This Month** | Rollup (Task Scheduler → Sum of Actual Hours, filtered by this month) |
| **Rating** | Number (1‑5) – average from completed tasks feedback (optional) |

**Views**  
* **All Subcontractors** – Table, sortable by Trade, Rate, Rating.  
* **Available Now** – List filtered: Current Projects < 3 AND Insurance Status = “Valid”.  
* **Expiring Licenses** – Calendar view of License Expiration.  

---  

## 📦 Materials & Procurement (Database)  

**Icon:** `📦` **Cover:** *Warehouse*  

| Property | Type | Details |
|----------|------|---------|
| **Item Name** | Title | — |
| **Related Project** | Relation → **Projects Hub** (One) | — |
| **Category** | Select (Lumber, Fixtures, Paint, Tools, Hardware, Finishes) – tag colors |
| **Quantity** | Number | — |
| **Unit Cost ($)** | Number (currency) | — |
| **Total Cost ($)** | Formula `prop("Quantity") * prop("Unit Cost ($)")` |
| **Supplier** | Text | — |
| **Delivery Status** | Select (Ordered, Shipped, Delivered, Installed) – color‑coded |
| **Received Date** | Date | — |
| **Invoice** | File & URL | — |
| **Linked Change Order** | Relation → **Change Orders** (Many) | Auto‑populate if this material is part of a CO |

**Views**  
* **Gallery – Visual** – Gallery with cover image of receipt/item (mobile‑friendly).  
* **Budget Impact** – Table filtered where Delivery Status ≠ “Installed”, showing Total Cost.  
* **Pending Deliveries** – List where Delivery Status = “Ordered” OR “Shipped”.  

---  

## 🛡️ Compliance & Safety (Database)  

**Icon:** `⚖️` **Cover:** *Permit*  

| Property | Type | Details |
|----------|------|---------|
| **Document / Permit Name** | Title | — |
| **Related Project** | Relation → **Projects Hub** (One) | — |
| **Type** | Select (Building Permit, Electrical Inspection, Safety Cert, Insurance, Zoning) – tag colors |
| **Expiration Date** | Date | — |
| **Status** | Select (Pending, Approved, Expired, Failed) – color‑coded |
| **Days Remaining** | Formula `dateBetween(prop("Expiration Date"), now(), "days")` |
| **File Attachment** | Files & Media | — |
| **Notes** | Text | — |

**Views**  
* **All Permits** – Table sorted by Days Remaining.  
* **Expiring Soon** – List filtered: Days Remaining ≤ 14.  
* **Pending Approvals** – Board grouped by Status.  

---  

## ⚙️ Automation & Formula Library (Reference)  

| Formula Name | Location | Formula |
|--------------|----------|---------|
| **Budget Health** | Projects Hub → `Budget Health` | `if(prop("Spent to Date") > prop("Budget ($)") * 0.8, "⚠️ Over 80%", "✅ Under 80%")` |
| **Progress %** | Projects Hub → `Progress %` | `round((prop("Completed Tasks") / prop("Total Tasks")) * 100, 0) + "%" ` |
| **Progress Bar** | Projects Hub → `Progress Bar` | `slice("▓▓▓▓▓▓▓▓▓▓", 0, floor(toNumber(replace(prop("Progress %"), "%", "")) / 10)) + slice("░░░░░░░░░░", 0, 10 - floor(toNumber(replace(prop("Progress %"), "%", "")) / 10))` |
| **Task Cost** | Task Scheduler → `Cost` | `prop("Estimated Hours") * avg(prop("Assigned To").hourly_rate)` |
| **Change Order Total** | Change Orders → `Total Cost` | `if(prop("Approved"), prop("Approved Amount ($)"), 0)` |
| **Days Remaining** | Compliance → `Days Remaining` | `dateBetween(prop("Expiration Date"), now(), "days")` |
| **Material Spend Rollup** | Projects Hub → `Materials Cost` | Rollup → **Materials & Procurement** → `Total Cost ($)` (sum) |
| **Subcontractor Spend Rollup** | Projects Hub → `Subcontractor Cost` | Rollup → **Task Scheduler** → `Cost` (sum) |

**Conditional Formatting (via Formula Tags)**  
* Use the `Budget Health` formula to display a red ⚠️ emoji when spending > 80 % of budget.  
* Use the `Status` select colors (set in Notion) for quick visual cues.  

---  

## 📥 Import Instructions (One‑Click Setup)  

1. Click the **Duplicate to your workspace** button at the top of this page.  
2. In the pop‑up, select the workspace where you want RenovateOS installed and confirm.  
3. Notion will create a full copy with all databases, relations, views, formulas, and icons pre‑configured.  
4. (Optional) Replace the placeholder cover image with your own branding.  
5. Invite your team members and assign appropriate **Person** permissions on each database.  
6. Start adding **Clients**, then create **Projects** linked to those clients. All downstream databases will auto‑populate via relations.  

---  

### 🎉 You’re ready!  
All core workflows—financial tracking (including Change Orders), CRM linkage, visual scheduling, and automated health indicators—are live and mobile‑optimized. Enjoy a premium, end‑to‑end renovation operating system.