Under Section 608 of the Clean Air Act, owners and operators of refrigeration and air conditioning appliances containing 50 or more pounds of ozone-depleting refrigerant (or substitutes such as HFCs) must calculate the leak rate every time refrigerant is added to the system. This calculator helps facilities management professionals and HVAC technicians ensure compliance with current EPA regulations.
Important: As of 2019, the EPA tightened the leak rate thresholds. Systems exceeding these rates must be repaired within 30 days.
The Two Calculation Methods
The EPA approves two distinct methods for calculating the leak rate. You must apply the same method for all appliances at the same facility.
1. The Annualizing Method
This is the most common method used when servicing a unit. It projects the current leak forward to estimate what the leak would be over a full year if it continued at the current rate.
Formula:
(Lbs of Refrigerant Added / Full Charge) × (365 / Days Since Last Addition) × 100%
2. The Rolling Average Method
This method looks backward. It calculates the percentage of the full charge lost over the past 365 days.
Formula:
(Lbs of Refrigerant Added Over Past 365 Days / Full Charge) × 100%
Current EPA Leak Rate Thresholds
If your calculated leak rate exceeds the following percentages based on the appliance type, you are required to repair the appliance, conduct initial and follow-up verification tests, or retrofit/retire the appliance.
Industrial Process Refrigeration (IPR): 30%
Commercial Refrigeration: 20%
Comfort Cooling: 10%
Definition of Full Charge
The "Full Charge" is the amount of refrigerant required for the appliance to operate at the intended duty. This is typically determined by the equipment manufacturer's specifications or by calculation based on component volumes.
// Set default current date
var today = new Date().toISOString().split('T')[0];
document.getElementById('currentAddDate').value = today;
function toggleMethod(method) {
var annualSection = document.getElementById('annualizingSection');
var rollingSection = document.getElementById('rollingSection');
if (method === 'annualizing') {
annualSection.classList.add('active');
rollingSection.classList.remove('active');
} else {
annualSection.classList.remove('active');
rollingSection.classList.add('active');
}
}
function updateThresholdDisplay() {
var threshold = document.getElementById('applianceType').value;
document.getElementById('thresholdDisplay').innerText = threshold;
}
function calculateLeakRate() {
// Inputs
var fullCharge = parseFloat(document.getElementById('fullCharge').value);
var threshold = parseFloat(document.getElementById('applianceType').value);
var method = document.querySelector('input[name="calcMethod"]:checked').value;
var leakRate = 0;
var isValid = true;
// Basic Validation
if (isNaN(fullCharge) || fullCharge <= 0) {
alert("Please enter a valid Full Charge amount greater than 0.");
return;
}
if (method === 'annualizing') {
var added = parseFloat(document.getElementById('refrigerantAdded').value);
var dateLast = new Date(document.getElementById('lastAddDate').value);
var dateCurrent = new Date(document.getElementById('currentAddDate').value);
if (isNaN(added) || added < 0) {
alert("Please enter the amount of refrigerant added.");
return;
}
if (isNaN(dateLast.getTime()) || isNaN(dateCurrent.getTime())) {
alert("Please enter valid dates for the last addition and current addition.");
return;
}
// Calculate days difference
var timeDiff = dateCurrent.getTime() – dateLast.getTime();
var daysDiff = timeDiff / (1000 * 3600 * 24);
if (daysDiff <= 0) {
alert("Current date must be after the last addition date.");
return;
}
// Annualizing Formula: (Added / FullCharge) * (365 / Days) * 100
leakRate = (added / fullCharge) * (365 / daysDiff) * 100;
} else {
// Rolling Average Logic
var totalAdded = parseFloat(document.getElementById('totalAdded365').value);
if (isNaN(totalAdded) || totalAdded threshold) {
statusDisplay.innerText = "EXCEEDS THRESHOLD";
statusDisplay.className = "compliance-fail";
msgDisplay.innerText = "WARNING: This system exceeds the EPA leak rate threshold. Mandatory leak repair is required within 30 days.";
} else {
statusDisplay.innerText = "COMPLIANT";
statusDisplay.className = "compliance-pass";
msgDisplay.innerText = "This system is currently below the EPA leak rate threshold. Continue routine monitoring.";
}
}