Compared to a standard new home built to code in Michigan (CZ 5A). Adjust the parameters below to model your project.
| Scenario | Embodied (tons CO2) | Annual (tons/year) | 30-year total (tons) |
|---|
This tool computes a 30-year whole-life carbon estimate (kg CO2e and tons CO2e) for a single-family residential building from a small set of design inputs. The intent is to give designers and homeowners a comparative tool — not a project-specific LCA suitable for code compliance or certification. Every number on this page traces to an explicit formula, a published data source, and a defined unit conversion. The engine source is open and the walkthrough below describes every step of the calculation.
Worked examples throughout this document use the default Chelsea, MI configuration: ZIP 48118 (IECC climate zone 5A), 2,300 sf single-story, 2.5 occupants, typical finish level. All values reproduce by setting these inputs and reading the corresponding output field.
The 5-digit ZIP code resolves through a static crosswalk (39,366 ZIPs, 54 states/territories) to a 2-letter state code. State then drives all regional parameters. The engine never resolves to city or county level.
climate_zones.json, per ASHRAE 169-2021 / IECC 2021. Eight zones (1=hot, 8=very cold) × three moisture regimes (A=humid, B=dry, C=marine).degree_days.json, base 65°F, aggregated to a single representative HDD/CDD pair per climate zone. The lookup is climate-zone-resolved, not ZIP-resolved. Chelsea, MI uses CZ 5 values: HDD = 6,500 / CDD = 900.electricity_rates.json, sourced from EIA Electric Power Monthly Table 5.6.A (residential, state-level), updated to February 2026. Users may override with their actual utility bill rate (engine accepts electricity_rate_override parameter in $/kWh).gas_rates.json, sourced from EIA Natural Gas Monthly state-level residential prices, updated February 2026, expressed in $/therm.egrid.json, EPA eGRID 2022 state-level STCO2RTA (output emission rate, CO2-only, transmission losses excluded). Michigan = 0.458 kg CO2/kWh.Worked example (Chelsea, MI default): ZIP 48118 → state MI → CZ 5A → HDD 6,500 / CDD 900 / rateelec = $0.200/kWh / rategas = $1.073/therm / EFgrid = 0.458 kg/kWh.
The building is modeled as a square-footprint rectangular volume. Window-to-wall ratio is fixed at 15% (close to RECS 2020 single-family national average of 14–18%). Wall height defaults to 9.0 ft. Door area defaults to a fixed 40 sf. Roof and floor areas equal the footprint (no slope or overhang adjustment).
Worked example: floor area 2,300 sf, 1 story → footprint 2,300 sf → side 48.0 ft → perimeter 191.8 ft → gross wall 1,726.6 sf → window 259 sf → net wall 1,427.5 sf → ceiling/floor 2,300 sf → volume 20,700 ft³. (Reproduces engine output exactly.)
Each element's heat-loss coefficient (UA) is area divided by effective R-value (or area times U-factor for fenestration). For walls, effective R is derived from the assembly: cavity R-value derated for thermal bridging through framing, plus continuous insulation R-value, plus a 1.0 air-film constant. For roofs, total assembly R-value plus the air-film constant. Window U-factor and door R are used directly.
Wall framing R-derate factors (fraction of cavity R that gets through the wall after thermal bridging):
| Framing pattern | ffR |
|---|---|
| 2×4 16" o.c. (conventional) | 0.70 |
| 2×6 16" o.c. | 0.70 |
| 2×6 24" o.c. | 0.75 |
| 2×6 24" o.c. advanced framing (OVE) | 0.78 |
| Double-stud 2×4 24" o.c. | 0.95 |
| Default (unknown / BEAM composite) | 0.70 |
Default R-values come from IECC 2021 prescriptive Table R402.1.2 for the climate zone unless an explicit assembly overrides them. CZ 5 code-min: R-20 cavity + R-5 continuous walls, R-60 ceiling, R-30 floor, U-0.30 windows, ACH50 = 3.0. Default door R = 5.0.
Slab-on-grade floor R is computed via a piecewise lookup, not directly from sub-slab insulation R-value. This accounts for ground thermal mass and soil temperature stabilization beneath the slab (most slab heat loss occurs through the perimeter, not the center). The lookup approximates the F-factor approach used by DOE Building America and ASHRAE 90.1 Appendix A:
| Sub-slab insulation | Effective floor R |
|---|---|
| None (bare slab) | 25 |
| R-1 to R-10 | 45 |
| R-11 to R-15 | 55 |
| R-16+ | 60 + (R−15) × 0.5 |
Worked example (Chelsea code-min, 2×6 16" o.c. framing default): Rwall,eff = 20 × 0.70 + 5 + 1 = 20.0. Rceiling,eff = 60 + 1 = 61.0. R-10 sub-slab → Rfloor,eff = 45.0 (lookup). UAwall = 1427.5 / 20 = 71.4. UAceiling = 2300 / 61 = 37.7. UAfloor = 2300 / 45 = 51.1. UAwindow = 259 × 0.30 = 77.7. UAdoor = 40 / 5 = 8.0. UAinf = 20,700 × (3.0/20) × 0.018 = 55.9. UAtotal = 301.8 BTU/hr·°F. (Reproduces engine output exactly.)
Annual heating energy uses the classic variable-base degree-day method (ASHRAE Handbook of Fundamentals Ch. 19), augmented with mechanical-ventilation losses and an internal-gains credit.
System efficiencies (constants, hardcoded):
| System | Rating | Used as | Notes |
|---|---|---|---|
| Gas furnace (standard) | AFUE 0.80 | 0.80 | code-min residential |
| Gas furnace (high-eff) | AFUE 0.95 | 0.95 | condensing |
| Oil furnace | AFUE 0.83 | 0.83 | — |
| Propane furnace | AFUE 0.80 | 0.80 | — |
| Heat pump (standard) | HSPF 8.8 | COP 2.58 | = HSPF / 3.412 |
| Heat pump (cold-climate) | HSPF 10.0 | COP 2.93 | = HSPF / 3.412 |
| Electric resistance | — | COP 1.0 | — |
| Geothermal heat pump | — | COP 4.0 | fixed seasonal average |
HSPF is a seasonal metric expressed in BTU output per Wh input over the AHRI test season, so HSPF/3.412 yields the seasonal-average COP directly. This is the correct conversion for annual energy estimation (unlike SEER → COP, which is more nuanced — see Step 5).
Worked example (Chelsea, gas furnace): UAtotal = 301.8, HDD = 6,500. Qenv = 301.8 × 6,500 × 24 = 47.08 MMBtu. Qvent,cfm = 7.5 × 2.5 + 0.03 × 2,300 = 88 cfm. hoursheating = 6,500/20 × 24 = 7,800. qvent = 88 × 60 × 30 × 0.018 × 1.0 = 2,851 BTU/hr. Qvent = 22.18 MMBtu. gains_credit = (230 × 2.5 + 800) × 8,760 × (7,800/8,760) = 10.72 MMBtu. Qnet = 58.53 MMBtu. fuelused = 58.53 MMBtu / 0.80 / 0.10 MMBtu/therm = 732 therms/yr. Compares to RECS 2020 Michigan median ~700 therms/yr for similar homes (within 5%).
Cooling load aggregates four sensible sources (envelope, solar gain through fenestration, internal gains, and ventilation), multiplies by a climate-zone-specific latent uplift factor for dehumidification, and converts to electricity using a seasonal COP.
Latent uplift LUzone,moisture — dehumidification penalty applied to sensible cooling load. Lookup by (IECC climate zone) × (moisture zone):
| Climate zone | A (humid) | B (dry) | C (marine) |
|---|---|---|---|
| 1 (very hot — Miami) | 0.40 | 0.10 | — |
| 2 (hot — Phoenix, Houston) | 0.35 | 0.05 | — |
| 3 (warm — Atlanta) | 0.25 | 0.05 | 0.12 |
| 4 (mixed — Baltimore) | 0.20 | 0.08 | 0.15 |
| 5 (cool — Chicago) | 0.15 | 0.08 | 0.12 |
| 6 (cold — Minneapolis) | 0.10 | 0.05 | — |
| 7 (very cold — Duluth) | 0.08 | 0.05 | — |
| 8 (subarctic) | 0.05 | — | — |
SEER → COP conversion. SEER (Seasonal Energy Efficiency Ratio) is a part-load weighted seasonal metric (AHRI 210/240). The naive conversion COP = SEER/3.412 gives the peak-condition COP (the EER value at 95°F outdoor), which overstates real seasonal performance by ~12–15%. The engine uses EER ≈ 0.875 × SEER (DOE Building America practice) before converting to COP, giving SEER 14 → COP ≈ 3.59 rather than the naive 4.10.
Cooling system COPs (constants):
| System | Rating | Used COP |
|---|---|---|
| Central AC (code-min) | SEER 14 | 3.59 |
| Heat pump cooling mode | SEER 14 | 3.59 |
| Geothermal cooling | — | 5.0 |
Worked example (Chelsea, code-min, SEER 14 central AC): UAtotal = 301.8, CDD = 900. Qenv,c = 301.8 × 900 × 24 = 6.52 MMBtu. cool_days = 90. Qsolar = 259 × 0.40 × 200 × 4 × 90 = 7.46 MMBtu. hourscool = 900/15 × 24 = 1,440. Qint,c = 1,375 × 1,440 = 1.98 MMBtu. qvent(cooling, ΔT=15) = 88 × 60 × 15 × 0.018 = 1,426 BTU/hr; Qvent,c = 2.05 MMBtu. Qsens = 18.0 MMBtu. LU5A = 0.15 → Qtotal,c = 20.7 MMBtu. coolingkWh = 20,700,000 / (3.59 × 3,412) = 1,690 kWh/yr. (Reproduces engine output exactly.)
Energy factors (EF / UEF) for water heating systems, per DOE 10 CFR 430:
| Water heater | EF used |
|---|---|
| Gas tank | 0.62 |
| Gas tankless | 0.82 |
| Electric tank | 0.92 |
| Heat pump water heater | 3.5 |
Worked example: 25 × 2.5 × 365 × 541 = 12.34 MMBtu demand. Gas tank: 12.34 / 0.62 / 0.10 = 199 therms/yr. HPWH: 12.34 / 3.5 / 3,412 = 1,034 kWh/yr. Baseline electricity: 5,500 × 1.0 × (1 + 0.0001 × 300) = 5,665 kWh/yr.
PV is treated as both an operational offset and an embodied carbon cost. The two halves use different accounting frameworks:
The max(0, …) clamp on net operational carbon is intentional. Per ISO 21930 attributional LCA, exported electricity does not create negative operational carbon for the building. Surplus generation displaces grid emissions somewhere, but that credit accrues to the grid operator or REC purchaser, not the building. This means oversizing PV beyond actual consumption adds embodied carbon (1.8 t per kW) without further offset — a 20 kW array on a leaky house has a higher whole-life total than a 10 kW array on the same house. The tool deliberately will not let users "buy negative carbon" with surplus PV.
Net metering simplification. The 70% retail-credit assumption for exported electricity is an approximate national average. Actual policies vary widely: full retail net metering (legacy CA NEM 1.0/2.0, MA, NJ) credits 100%; net-billing or avoided-cost programs (CA NEM 3.0, NV, MI DTE Distributed Generation) credit 25–50% of retail. The cost-savings number for PV-heavy scenarios will be optimistic in restrictive states (e.g., a Michigan DTE customer will see real savings of ~50–70% of the displayed value) and pessimistic in generous states. State-specific net-metering data is a planned improvement.
PV degradation. Real panels lose approximately 0.5%/year output through soiling, glass yellowing, and cell aging. Over 30 years this is ~14% cumulative degradation. The engine currently assumes constant generation, biasing PV scenarios optimistic by 5–7% over the full horizon.
Each envelope assembly (wall, roof, foundation) is built from a stack of materials drawn from the BEAM Tool v4.1 database (Builders for Climate Action). Each material has an EPD-derived A1–A3 emissions factor and, where applicable, a biogenic carbon storage value. Insulation materials are stored per square meter at RSI 1, so embodied scales linearly with thermal resistance.
Framing fractions (fraction of wall area occupied by solid lumber, including studs, headers, plates, corners): 2×4 16" o.c. = 0.25, 2×6 16" o.c. = 0.25, 2×6 24" o.c. = 0.22, advanced framing (OVE) 2×6 24" o.c. = 0.18, double-stud 2×4 24" o.c. = 0.30. These match published values from FHB, JLC, and OVE practice guides.
Windows use a flat 80 kg CO2e/m² of glazed area, representative of mid-range residential aluminum-clad and vinyl windows. This is a known simplification: real values range from ~50 kg/m² (basic vinyl double-pane) to ~250 kg/m² (aluminum frame). Triple-pane wood-clad and double-pane vinyl currently report identical embodied carbon in this tool.
System boundary. Envelope embodied counts only EN 15978 stages A1 (raw materials), A2 (transport to factory), and A3 (manufacturing). Excluded: A4 site delivery, A5 installation, B1–B5 use and maintenance, B6 (operational energy, counted separately above), B7 (operational water, not relevant), C1–C4 disposal, D module credits. This is the conventional cradle-to-gate cutoff for residential WBLCA at this level of detail.
Interior partitions, mechanical/electrical/plumbing equipment, floor finishes, and cabinetry are estimated via per-square-foot category presets scaled by total floor area. This is the largest remaining source of absolute uncertainty in the whole-life total (±30% per component).
Finish-level presets (kg CO2e per sf of floor area):
| Category | Modest | Typical | High-end |
|---|---|---|---|
| Interior partitions | 5.0 | 8.0 | 12.0 |
| Floor finishes | 4.0 | 6.0 | 10.0 |
| MEP equipment | 5.0 | 5.0 | 6.0 |
| Cabinetry & fixtures | 2.0 | 4.0 | 8.0 |
| Total | 16 | 23 | 36 |
Sources: Carbon Leadership Forum MEP-LCA 2024 (MEP equipment); Athena Sustainable Materials Institute residential prototype outputs (partitions, finishes); Magwood (2022) Build Beyond Zero Ch. 8 (cabinetry, fixtures); BEAM Tool v4.1 (cross-check). These are typical-range averages, not project-specific. Real residential non-envelope carbon varies by ±30% from these presets depending on actual equipment specifications, finish brands, and interior configuration.
Whole-life total: embodied (envelope) + embodied (non-envelope) + embodied (PV) + 30-year operational. The 30-year horizon is conventional for residential WBLCA at this scope; it is not a building service-life claim. Real building service life is 60–100+ years.
Cost projection. The 4% central rate-increase assumption is consistent with historical nominal US residential energy inflation (~3–4%/yr over recent decades). The 0% / 6% bounds reflect realistic but uncertain trajectories. Note: these are nominal dollars, not real (inflation-adjusted). At ~2.5% general inflation, 4% nominal = ~1.5% real growth in energy expenditures. For consumer comparison ("how much will I pay over 30 years?"), nominal is the relevant metric. For NPV / discounted analysis, results would differ.
Two distinct uncertainty calculations run alongside every result. Absolute uncertainty reflects the realistic spread on a single scenario's total. Comparative uncertainty is much narrower because shared modeling assumptions cancel between scenarios — this is why "scenario A is 70% lower than scenario B" can be very-high-confidence even when each absolute value has a ±20% range.
Per-component uncertainty bands (one-sigma, expressed as fraction of central):
| Component | σabsolute | σcomparative |
|---|---|---|
| Operational energy use | ±10% | ±5% |
| Grid carbon factor | ±5% | ±2% |
| Envelope embodied | ±15% | ±10% |
| PV embodied | ±15% | ±8% |
| PV generation | ±15% | ±10% |
| Non-envelope embodied | ±30% | ±20% |
Statistical approach follows ISO 14044 §4.4.4 (uncertainty analysis), EPA WBLCA Guide (2019) §5.3 (comparative LCA noise floor), and standard practice for comparative residential LCA where shared boundary conditions reduce relative uncertainty. The 1.645σ multiplier corresponds to the 90% confidence interval assuming approximately normal error distribution on independent component uncertainties. The cost-uncertainty band (Step 10) is treated separately because rate-trajectory uncertainty is correlated across all scenarios (they share the same future utility-rate assumption); paired low-vs-low and high-vs-high comparisons are used for the savings range.
The list below is comprehensive and intentionally transparent. Items are flagged either as known omissions (a feature not yet implemented), simplifications (an approximation chosen for tractability), or directional biases (a known under- or over-estimate of a specific quantity). Items are listed in approximate order of magnitude of effect on the whole-life total.
These limitations are tracked openly because the tool's value comes from being honest about what it does and doesn't model. Most items above are planned improvements; some (e.g., constant grid carbon) are conservative simplifications that bias the tool against electrification, so fixing them strengthens rather than weakens the case for low-carbon design.
The vertical bar at year 30 shows the 90% confidence interval on the absolute total. This is wider than the single number suggests because non-envelope materials, equipment, and finish choices have real product-level spread that this tool doesn't try to nail down precisely. A 200 t result might be 170–230 t in reality. That's not a flaw in the engine — it's an honest representation of what the data supports.
When comparing scenarios, the same modeling assumptions affect both — so the difference between them is much more reliable than the absolute values. "Very high confidence" means the gap is so large (3+ standard deviations) that the ranking is unambiguous. "Within modeling noise" means the difference falls within the inherent spread of the assumptions — the two scenarios are effectively a tie.