Enter total number of welds, shots (NDT), or total linear length inspected.
Enter number of failed welds or length of repair required (must match unit above).
The max repair rate permitted by the project specifications (e.g., API 1104 often allows up to a certain percentage).
Calculated Repair Rate0.00%
Total Inspected:0
Defective / Repairs:0
Acceptable Yield:0.00%
Understanding Weld Repair Rates
The Weld Repair Rate is a critical Quality Key Performance Indicator (KPI) used in construction, pipeline, and fabrication industries. It measures the percentage of welding work that fails non-destructive testing (NDT) or visual inspection and requires rework.
Monitoring this metric helps Welding Engineers and Quality Managers assess welder performance, identify systemic procedure issues, and control project costs. High repair rates can lead to significant schedule delays and increased consumption of consumables.
How to Calculate Repair Rate
The repair rate can be calculated based on the count of weld joints or the linear length of the weld. The formula remains consistent regardless of the unit, provided the unit is the same for both the numerator and denominator.
By Joint Count: Used for piping and structural steel where discrete joints are inspected. If you X-ray 100 butt welds and 3 fail, your rate is 3%.
By Linear Length: Common in tank fabrication or long seam welding. If you weld 1,000 inches and 50 inches require repair, the linear repair rate is 5%.
By NDT Shot: Specifically for radiographic testing, calculating the percentage of film "shots" that show defects.
Industry Standards and Acceptable Limits
Acceptable repair rates vary by industry code and project specifications. However, general benchmarks include:
Process Piping (ASME B31.3): Typically aims for rates below 3-5%.
Pipelines (API 1104): Strict standards often demand repair rates below 3% for automatic welding and 5% for manual welding.
Structural Steel (AWS D1.1): Limits are often defined by the specific project quality plan.
If your calculated rate exceeds the project limit (defaulted to 5% in the calculator above), immediate investigation into welding parameters, electrode quality, or welder technique is recommended.
function calculateRepairRate() {
// 1. Get input values
var totalQty = document.getElementById('totalQuantity').value;
var rejectedQty = document.getElementById('rejectedQuantity').value;
var limitRate = document.getElementById('projectLimit').value;
// 2. Parse values to floats
var total = parseFloat(totalQty);
var rejected = parseFloat(rejectedQty);
var limit = parseFloat(limitRate);
// 3. Validation
if (isNaN(total) || total <= 0) {
alert("Please enter a valid Total Inspection Quantity greater than 0.");
return;
}
if (isNaN(rejected) || rejected total) {
alert("Rejected quantity cannot be greater than the total inspected quantity.");
return;
}
// 4. Calculate Logic
var repairRate = (rejected / total) * 100;
var yieldRate = 100 – repairRate;
// 5. Display Results
var resultArea = document.getElementById('result-area');
var displayRate = document.getElementById('displayRate');
var displayTotal = document.getElementById('displayTotal');
var displayDefects = document.getElementById('displayDefects');
var displayYield = document.getElementById('displayYield');
var statusBadge = document.getElementById('statusBadge');
// Show the result container
resultArea.style.display = "block";
// Update text content with 2 decimal precision
displayRate.innerHTML = repairRate.toFixed(2) + "%";
displayTotal.innerHTML = total;
displayDefects.innerHTML = rejected;
displayYield.innerHTML = yieldRate.toFixed(2) + "%";
// 6. Handle Pass/Fail Status Logic
// If limit is not provided, default to a high number or just show rate
var threshold = isNaN(limit) ? 5.0 : limit;
if (repairRate <= threshold) {
statusBadge.className = "status-badge status-pass";
statusBadge.innerHTML = "WITHIN LIMITS";
displayRate.style.color = "#28a745"; // Green
} else {
statusBadge.className = "status-badge status-fail";
statusBadge.innerHTML = "EXCEEDS LIMIT";
displayRate.style.color = "#dc3545"; // Red
}
}