Use this simplified estimator to understand how key design choices impact the energy performance and CO2 emissions of a new dwelling, in line with UK Building Regulations (Part L) principles. This calculator provides an indicative estimate and is not a substitute for a full, official SAP calculation.
Detached House
Semi-Detached House
Mid-Terrace House
Mid-Floor Flat
Natural Gas
Electricity (Grid)
Heating Oil
LPG
Understanding SAP Calculations and Building Regulations
The Standard Assessment Procedure (SAP) is the methodology used in the UK to assess and compare the energy and environmental performance of dwellings. It is a fundamental part of demonstrating compliance with Part L (Conservation of Fuel and Power) of the Building Regulations for new homes.
What is a SAP Calculation?
A SAP calculation provides an energy rating for a dwelling, expressed on a scale of 1 to 100 (where 100 represents zero energy cost). It also calculates the dwelling's CO2 emissions. These calculations are required for all new build properties, conversions, and extensions where the thermal envelope is significantly altered.
Key Factors Assessed by SAP:
Fabric Efficiency: This includes the U-values (thermal transmittance) of walls, roofs, floors, and windows. Lower U-values indicate better insulation and less heat loss.
Air Permeability: Measures how airtight a building is. A lower air permeability value means less uncontrolled heat loss through draughts.
Heating and Hot Water Systems: The efficiency of the primary heating system, hot water generation, and controls significantly impacts energy use.
Ventilation: While necessary for air quality, uncontrolled ventilation can lead to heat loss. SAP considers the type of ventilation system.
Renewable Energy Technologies: Contributions from solar PV, solar thermal, or heat pumps are factored in to reduce overall energy demand and emissions.
Thermal Bridging: Heat loss that occurs at junctions between different building elements (e.g., wall-floor junctions).
Lighting: The efficiency of fixed lighting within the dwelling.
Building Regulations (Part L) Compliance:
For a new dwelling to comply with Part L, it must meet several criteria, primarily:
Target Emission Rate (TER): The calculated CO2 emissions of the dwelling (Dwelling Emission Rate – DER) must not exceed a set target.
Target Fabric Energy Efficiency (TFEE): The calculated fabric energy efficiency (DFEE) must not exceed a set target, ensuring a good standard of insulation and airtightness.
Limiting Fabric Parameters: Individual U-values for walls, roofs, floors, and windows, as well as air permeability, must not exceed maximum allowable limits.
The aim of these regulations is to ensure that new homes are built to a high standard of energy efficiency, reducing energy consumption, fuel bills, and carbon emissions.
How Our Estimator Works (Simplified):
Our calculator provides a simplified estimate based on common assumptions for dwelling geometry and typical heating patterns. It focuses on the primary drivers of energy performance: the thermal envelope (U-values, air permeability) and heating system efficiency. It calculates an estimated annual energy demand and CO2 emissions, offering a qualitative assessment against typical new build standards. This tool is for educational purposes and initial design considerations only.
.sap-calculator-container {
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
background-color: #f9f9f9;
padding: 25px;
border-radius: 10px;
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
max-width: 800px;
margin: 20px auto;
color: #333;
}
.sap-calculator-container h2 {
color: #2c3e50;
text-align: center;
margin-bottom: 20px;
font-size: 1.8em;
}
.sap-calculator-container h3 {
color: #34495e;
margin-top: 30px;
margin-bottom: 15px;
font-size: 1.4em;
}
.sap-calculator-container p {
line-height: 1.6;
margin-bottom: 15px;
}
.calculator-inputs label {
display: inline-block;
margin-bottom: 8px;
font-weight: bold;
width: 250px;
vertical-align: middle;
}
.calculator-inputs input[type="number"],
.calculator-inputs select {
width: calc(100% – 260px);
padding: 10px;
margin-bottom: 15px;
border: 1px solid #ccc;
border-radius: 5px;
box-sizing: border-box;
vertical-align: middle;
}
.calculator-inputs button {
background-color: #28a745;
color: white;
padding: 12px 25px;
border: none;
border-radius: 5px;
cursor: pointer;
font-size: 1.1em;
display: block;
width: 100%;
margin-top: 20px;
transition: background-color 0.3s ease;
}
.calculator-inputs button:hover {
background-color: #218838;
}
.calculator-results {
background-color: #e9f7ef;
border: 1px solid #d4edda;
padding: 20px;
margin-top: 30px;
border-radius: 8px;
color: #155724;
}
.calculator-results h4 {
color: #155724;
margin-top: 0;
font-size: 1.3em;
}
.calculator-results p {
margin-bottom: 8px;
}
.calculator-results strong {
color: #0f3d1a;
}
.sap-article ol, .sap-article ul {
margin-left: 20px;
margin-bottom: 15px;
}
.sap-article li {
margin-bottom: 8px;
}
function calculateSAP() {
// Get input values
var dwellingType = document.getElementById("dwellingType").value;
var floorArea = parseFloat(document.getElementById("floorArea").value);
var wallUValue = parseFloat(document.getElementById("wallUValue").value);
var roofUValue = parseFloat(document.getElementById("roofUValue").value);
var floorUValue = parseFloat(document.getElementById("floorUValue").value);
var windowUValue = parseFloat(document.getElementById("windowUValue").value);
var airPermeability = parseFloat(document.getElementById("airPermeability").value);
var heatingEfficiency = parseFloat(document.getElementById("heatingEfficiency").value);
var fuelType = document.getElementById("fuelType").value;
// Validate inputs
if (isNaN(floorArea) || floorArea <= 0 ||
isNaN(wallUValue) || wallUValue <= 0 ||
isNaN(roofUValue) || roofUValue <= 0 ||
isNaN(floorUValue) || floorUValue <= 0 ||
isNaN(windowUValue) || windowUValue <= 0 ||
isNaN(airPermeability) || airPermeability <= 0 ||
isNaN(heatingEfficiency) || heatingEfficiency 100) {
document.getElementById("sapResult").innerHTML = "Please enter valid positive numbers for all fields. Heating efficiency must be between 1 and 100.";
return;
}
// Constants and Assumptions (Simplified for calculator)
var ceilingHeight = 2.4; // meters
var deltaTAvg = 11; // Average internal (21C) vs external (10C) temperature difference for heating season
var heatingHoursPerYear = 24 * 200; // 200 days of heating season, 24 hours/day
var specificHeatCapacityAir = 0.33; // Wh/m³K
// CO2 Emission Factors (kg CO2/kWh) – UK averages, can vary
var co2Factors = {
naturalGas: 0.183,
electricity: 0.233,
oil: 0.245,
lpg: 0.214
};
var co2Factor = co2Factors[fuelType];
// — Area Estimations based on Dwelling Type (Simplified) —
var wallAreaTotal, roofArea, floorAreaExposed, windowArea;
var perimeter = 4 * Math.sqrt(floorArea); // Assume square footprint for simplicity
var totalExternalWallArea = perimeter * ceilingHeight;
switch (dwellingType) {
case "detached":
wallAreaTotal = totalExternalWallArea;
roofArea = floorArea;
floorAreaExposed = floorArea;
windowArea = 0.15 * wallAreaTotal; // 15% glazing ratio
break;
case "semiDetached":
wallAreaTotal = 0.75 * totalExternalWallArea; // Approx 3 exposed sides
roofArea = floorArea;
floorAreaExposed = floorArea;
windowArea = 0.15 * wallAreaTotal;
break;
case "midTerrace":
wallAreaTotal = 0.5 * totalExternalWallArea; // Approx 2 exposed sides
roofArea = floorArea;
floorAreaExposed = floorArea;
windowArea = 0.15 * wallAreaTotal;
break;
case "flat":
// For a mid-floor flat, assume only a portion of walls are external, and minimal exposed roof/floor
wallAreaTotal = 0.33 * totalExternalWallArea; // Approx 1/3 of perimeter exposed
roofArea = 0.1 * floorArea; // Small exposed roof area (e.g., balcony above)
floorAreaExposed = 0.1 * floorArea; // Small exposed floor area (e.g., balcony below)
windowArea = 0.20 * wallAreaTotal; // Slightly higher glazing ratio for flats
break;
}
var wallAreaNet = wallAreaTotal – windowArea;
if (wallAreaNet < 0) wallAreaNet = 0; // Ensure net wall area is not negative
// — Heat Loss Calculation —
// Fabric Heat Loss (W/K)
var qFabric = (wallAreaNet * wallUValue) +
(roofArea * roofUValue) +
(floorAreaExposed * floorUValue) +
(windowArea * windowUValue);
// Ventilation Heat Loss (W/K)
var dwellingVolume = floorArea * ceilingHeight;
// Simplified air change rate from air permeability: (airPermeability / 50) * 0.5 (rough factor for natural infiltration)
// A more direct approach for SAP is to use the air permeability value directly in a formula.
// For simplicity, let's assume air changes per hour (ACH) is roughly airPermeability / 10 for a typical house.
var airChangesPerHour = airPermeability / 10; // Very rough approximation
var qVentilation = dwellingVolume * airChangesPerHour * specificHeatCapacityAir;
var totalHeatLossCoefficient = qFabric + qVentilation; // W/K
// — Annual Energy Demand —
var annualHeatLoss_Wh = totalHeatLossCoefficient * deltaTAvg * heatingHoursPerYear;
var annualHeatLoss_kWh = annualHeatLoss_Wh / 1000;
var annualEnergyDemand_kWh = annualHeatLoss_kWh / (heatingEfficiency / 100);
// — Annual CO2 Emissions —
var annualCO2Emissions_kg = annualEnergyDemand_kWh * co2Factor;
// — Qualitative Assessment —
var energyAssessment = "";
var co2Assessment = "";
var energyPerSqM = annualEnergyDemand_kWh / floorArea;
var co2PerSqM = annualCO2Emissions_kg / floorArea;
if (energyPerSqM < 70) {
energyAssessment = "Excellent (Likely to achieve a high SAP rating)";
} else if (energyPerSqM < 100) {
energyAssessment = "Good (Meets typical new build standards)";
} else if (energyPerSqM < 130) {
energyAssessment = "Acceptable (May require improvements for optimal performance)";
} else {
energyAssessment = "Needs Significant Improvement (Likely to struggle with Building Regulations compliance)";
}
if (co2PerSqM < 15) {
co2Assessment = "Excellent (Very low carbon footprint)";
} else if (co2PerSqM < 25) {
co2Assessment = "Good (Meets typical new build CO2 targets)";
} else if (co2PerSqM < 35) {
co2Assessment = "Acceptable (May require improvements to reduce emissions)";
} else {
co2Assessment = "Needs Significant Improvement (Likely to struggle with Building Regulations CO2 targets)";
}
// Display results
var resultHtml = "
Estimated Performance Results:
";
resultHtml += "Estimated Annual Energy Demand: " + annualEnergyDemand_kWh.toFixed(0) + " kWh/year";
resultHtml += "Estimated Annual CO2 Emissions: " + annualCO2Emissions_kg.toFixed(1) + " kg CO2/year";
resultHtml += "Energy Demand per m²: " + energyPerSqM.toFixed(1) + " kWh/m²/year";
resultHtml += "CO2 Emissions per m²: " + co2PerSqM.toFixed(1) + " kg CO2/m²/year";
resultHtml += "Energy Performance Assessment: " + energyAssessment + "";
resultHtml += "CO2 Emissions Assessment: " + co2Assessment + "";
resultHtml += "Note: This is a simplified estimate. A full SAP calculation involves more detailed inputs and methodologies.";
document.getElementById("sapResult").innerHTML = resultHtml;
}