# Lifecycle Carbon Calculator for Construction
## Overview
Calculate embodied carbon (EC) and lifecycle carbon emissions for construction materials, assemblies, and projects. Support sustainable design decisions and carbon reduction targets.
## Business Case
Carbon calculation supports:
- **Regulatory Compliance**: Meet carbon reporting requirements
- **Green Certifications**: LEED, BREEAM, Living Building Challenge
- **Design Optimization**: Choose lower-carbon alternatives
- **Sustainability Goals**: Track progress toward net-zero
## Technical Implementation
```python
from dataclasses import dataclass, field
from typing import List, Dict, Any, Optional
from enum import Enum
import pandas as pd
class LifecycleStage(Enum):
A1_A3 = "Product Stage (A1-A3)" # Raw materials, transport, manufacturing
A4 = "Transport to Site (A4)"
A5 = "Construction (A5)"
B1_B7 = "Use Stage (B1-B7)" # Maintenance, repair, replacement
C1_C4 = "End of Life (C1-C4)" # Demolition, transport, disposal
D = "Beyond Lifecycle (D)" # Reuse, recycling potential
@dataclass
class MaterialCarbon:
material_id: str
name: str
category: str
unit: str
carbon_a1_a3: float # kgCO2e per unit
carbon_a4: float
carbon_a5: float
carbon_b: float
carbon_c: float
carbon_d: float # Usually negative (credit)
density: float # kg/m³ if applicable
source: str
epd_url: str = ""
@dataclass
class AssemblyCarbon:
assembly_id: str
name: str
materials: List[Dict[str, Any]]
total_carbon: float
carbon_by_stage: Dict[str, float]
@dataclass
class ProjectCarbon:
project_id: str
name: str
gross_area: float
assemblies: List[AssemblyCarbon]
total_embodied_carbon: float
carbon_per_area: float
carbon_by_stage: Dict[str, float]
carbon_by_category: Dict[str, float]
benchmark_comparison: Dict[str, Any]
class LifecycleCarbonCalc...