$npx -y skills add AlpacaLabsLLC/skills-for-architects --skill epd-parserParse EPD (Environmental Product Declaration) PDF documents into structured environmental impact data — GWP, life cycle stages, certifications, and compliance metrics. Use when the user shares an EPD document or asks to "parse this EPD", extract GWP, or pull impact data from a de
| 1 | # /epd-parser — EPD PDF Parser |
| 2 | |
| 3 | Extract structured environmental impact data from EPD (Environmental Product Declaration) PDF files. Uses PyMuPDF for text extraction and Claude's reasoning to parse varying EPD formats into a standardized 42-column schema. |
| 4 | |
| 5 | EPDs follow ISO 14025 / ISO 21930 / EN 15804 and report life cycle environmental impacts of building products. This skill reads those PDFs and structures the data for comparison, specification, and LEED documentation. |
| 6 | |
| 7 | ## Input |
| 8 | |
| 9 | The user provides EPD PDFs in one of these ways: |
| 10 | |
| 11 | 1. **File paths** — one or more PDF file paths |
| 12 | 2. **Folder path** — a directory containing PDFs (will process all `.pdf` files) |
| 13 | 3. **Just invoked** — ask the user for file paths or a folder |
| 14 | |
| 15 | Also ask (or use defaults): |
| 16 | |
| 17 | - **Output destination** — Google Sheet, local CSV, or markdown (default: ask) |
| 18 | |
| 19 | ## Output Schema |
| 20 | |
| 21 | EPD data uses a **42-column schema** — separate from the 33-column FF&E product schema. When writing to CSV, use the same column order. |
| 22 | |
| 23 | ### Product Identity (columns A-H) |
| 24 | |
| 25 | | Col | Field | Description | Format | |
| 26 | |-----|-------|-------------|--------| |
| 27 | | A | EPD Link | URL to original EPD document | `=HYPERLINK(url, "EPD")` or blank for local PDFs | |
| 28 | | B | Manufacturer | Company that makes the product | Title Case | |
| 29 | | C | Product Name | Declared product or product group | Title Case | |
| 30 | | D | Description | Brief product description | Sentence case | |
| 31 | | E | Declared Unit | Functional/declared unit (e.g., "1 m2", "1 kg", "1 m3") | As stated in EPD | |
| 32 | | F | Functional Unit | Functional unit with RSL if different from declared | As stated, blank if same | |
| 33 | | G | CSI Division | MasterFormat division number | `03`, `05`, `07`, `08`, `09`, etc. | |
| 34 | | H | Material Category | Normalized material type | See vocabulary below | |
| 35 | |
| 36 | ### EPD Metadata (columns I-P) |
| 37 | |
| 38 | | Col | Field | Description | Format | |
| 39 | |-----|-------|-------------|--------| |
| 40 | | I | EPD Registration No. | Unique EPD identifier | As published | |
| 41 | | J | Program Operator | Certifying body | `UL`, `NSF`, `SCS`, `IBU`, `Environdec`, etc. | |
| 42 | | K | PCR Reference | Product Category Rule reference | Full citation | |
| 43 | | L | PCR Expiry | PCR expiration date | YYYY-MM-DD | |
| 44 | | M | Standard | Governing standard | `ISO 14025`, `ISO 21930`, `EN 15804+A2`, etc. | |
| 45 | | N | System Boundary | Scope of LCA | `Cradle-to-gate`, `Cradle-to-grave`, `Cradle-to-gate with options` | |
| 46 | | O | Valid From | EPD publication date | YYYY-MM-DD | |
| 47 | | P | Valid To | EPD expiration date | YYYY-MM-DD | |
| 48 | |
| 49 | ### Impact Indicators — Product Stage A1-A3 (columns Q-V) |
| 50 | |
| 51 | | Col | Field | Description | Unit | |
| 52 | |-----|-------|-------------|------| |
| 53 | | Q | GWP-total (A1-A3) | Global Warming Potential, total | kg CO2e | |
| 54 | | R | GWP-fossil (A1-A3) | GWP from fossil sources | kg CO2e | |
| 55 | | S | GWP-biogenic (A1-A3) | GWP from biogenic sources | kg CO2e | |
| 56 | | T | ODP (A1-A3) | Ozone Depletion Potential | kg CFC-11e | |
| 57 | | U | AP (A1-A3) | Acidification Potential | kg SO2e | |
| 58 | | V | EP (A1-A3) | Eutrophication Potential | kg PO4e | |
| 59 | |
| 60 | ### Impact Indicators — Other Stages (columns W-AB) |
| 61 | |
| 62 | | Col | Field | Description | Unit | |
| 63 | |-----|-------|-------------|------| |
| 64 | | W | GWP (A4-A5) | Construction stage GWP | kg CO2e | |
| 65 | | X | GWP (B1-B7) | Use stage GWP | kg CO2e | |
| 66 | | Y | GWP (C1-C4) | End-of-life GWP | kg CO2e | |
| 67 | | Z | GWP (D) | Beyond system boundary GWP | kg CO2e | |
| 68 | | AA | GWP-total (all stages) | Sum of all declared stages | kg CO2e | |
| 69 | | AB | POCP (A1-A3) | Photochemical Ozone Creation Potential | kg C2H4e | |
| 70 | |
| 71 | ### Resource Use (columns AC-AH) |
| 72 | |
| 73 | | Col | Field | Description | Unit | |
| 74 | |-----|-------|-------------|------| |
| 75 | | AC | PERE (A1-A3) | Primary Energy, Renewable, energy use | MJ | |
| 76 | | AD | PENRE (A1-A3) | Primary Energy, Non-Renewable, energy use | MJ | |
| 77 | | AE | Total Energy (A1-A3) | PERE + PENRE | MJ | |
| 78 | | AF | FW (A1-A3) | Fresh Water Use | m3 | |
| 79 | | AG | Recycled Content | Percentage of recycled content | % | |
| 80 | | AH | Waste (A1-A3) | Total waste generated | kg | |
| 81 | |
| 82 | ### Tracking (columns AI-AP) |
| 83 | |
| 84 | | Col | Field | Description | Format | |
| 85 | |-----|-------|-------------|--------| |
| 86 | | AI | LEED Eligible | MRc2 compliance flag | `Yes`, `No`, `Partial` | |
| 87 | | AJ | EC3 ID | Building Transparency EC3 identifier | As listed, blank if unknown | |
| 88 | | AK | Plant/Facility | Manufacturing plant or facility name | As stated | |
| 89 | | AL | Country | Manufacturing country | ISO 3166-1 alpha-2 | |
| 90 | | AM | Parsed At | Timestamp of parsing | ISO 8601 | |
| 91 | | AN | Tags | User-assigned tags | Comma-separated | |
| 92 | | AO | Notes | Additional context | Free text — se |