.for-calc-box {
background: #f9f9f9;
border: 1px solid #e0e0e0;
border-radius: 8px;
padding: 25px;
margin-bottom: 30px;
box-shadow: 0 4px 6px rgba(0,0,0,0.05);
}
.for-input-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 20px;
margin-bottom: 20px;
}
@media (max-width: 600px) {
.for-input-grid {
grid-template-columns: 1fr;
}
}
.for-input-group {
display: flex;
flex-direction: column;
}
.for-input-group label {
font-weight: 600;
margin-bottom: 8px;
color: #2c3e50;
}
.for-input-group input {
padding: 12px;
border: 1px solid #ccc;
border-radius: 4px;
font-size: 16px;
}
.for-btn-container {
text-align: center;
}
.for-calc-btn {
background-color: #0073aa;
color: white;
border: none;
padding: 12px 30px;
font-size: 18px;
border-radius: 5px;
cursor: pointer;
transition: background 0.3s;
font-weight: bold;
}
.for-calc-btn:hover {
background-color: #005177;
}
.for-result-box {
margin-top: 25px;
padding: 20px;
background-color: #fff;
border-left: 5px solid #0073aa;
display: none;
}
.for-result-value {
font-size: 32px;
font-weight: bold;
color: #0073aa;
}
.for-result-label {
font-size: 14px;
color: #666;
text-transform: uppercase;
letter-spacing: 1px;
}
.for-explanation {
margin-top: 10px;
font-size: 15px;
color: #555;
}
.error-msg {
color: #d63638;
font-weight: bold;
display: none;
margin-top: 10px;
}
function calculateForcedOutageRate() {
var foh = document.getElementById('foh_input').value;
var sh = document.getElementById('sh_input').value;
var resultContainer = document.getElementById('result_container');
var errorMsg = document.getElementById('error_display');
var resultValue = document.getElementById('for_final_value');
var summary = document.getElementById('calculation_summary');
// Reset display
errorMsg.style.display = 'none';
resultContainer.style.display = 'none';
// Validation
if (foh === " || sh === ") {
errorMsg.innerText = "Please fill in both fields.";
errorMsg.style.display = 'block';
return;
}
var fohNum = parseFloat(foh);
var shNum = parseFloat(sh);
if (isNaN(fohNum) || isNaN(shNum) || fohNum < 0 || shNum < 0) {
errorMsg.innerText = "Values must be valid non-negative numbers.";
errorMsg.style.display = 'block';
return;
}
var totalHours = fohNum + shNum;
if (totalHours === 0) {
errorMsg.innerText = "Total hours (FOH + SH) cannot be zero.";
errorMsg.style.display = 'block';
return;
}
// Calculation Logic: FOR = [FOH / (FOH + SH)] * 100
var forRate = (fohNum / totalHours) * 100;
var availability = (shNum / totalHours) * 100;
// Display Results
resultValue.innerText = forRate.toFixed(2) + "%";
var summaryText = "
";
summaryText += "Out of a total operative timeline of " + totalHours.toFixed(1) + " hours:";
summaryText += "• The unit was forced out for " + fohNum + " hours.";
summaryText += "• The unit was in service for " + shNum + " hours.";
summaryText += "• This results in an
.";
summary.innerHTML = summaryText;
resultContainer.style.display = 'block';
}
What is Forced Outage Rate (FOR)?
The Forced Outage Rate (FOR) is a critical key performance indicator (KPI) used in the power generation industry and reliability engineering. It represents the probability that a generating unit will not be available for service when required due to unplanned component failures or other forced events.
Unlike planned maintenance, which is scheduled in advance, a forced outage is an immediate shutdown caused by unexpected equipment failure, operator error, or environmental conditions. A lower FOR indicates higher reliability and better asset performance.
The Calculation Formula
This calculator uses the standard IEEE/NERC formula for calculating the Forced Outage Rate:
FOR (%) = [ FOH / (FOH + SH) ] × 100
Where:
- FOH (Forced Outage Hours): The number of hours a unit was unavailable due to a forced outage.
- SH (Service Hours): The number of hours the unit was electrically connected to the system and generating power.
Example Calculation
Let's assume a gas turbine generator has been operating for a specific month (744 hours in total). During this month, the unit ran successfully for 700 hours but experienced a mechanical failure that forced it offline for 44 hours.
Using the values:
- FOH = 44 hours
- SH = 700 hours
The calculation would be:
FOR = [ 44 / (44 + 700) ] × 100
FOR = [ 44 / 744 ] × 100
FOR = 0.0591 × 100 = 5.91%
This means that for the period in question, the unit was unavailable due to failure approximately 5.91% of the time it was needed.
Why is FOR Important?
Monitoring the Forced Outage Rate is essential for:
- Capacity Planning: Grid operators need to know the probability of generator failure to maintain sufficient reserve margins.
- Maintenance Strategy: A rising FOR suggests deteriorating equipment health, signaling the need for predictive maintenance or capital replacement.
- Financial Performance: In many power markets, capacity payments are directly tied to availability. High forced outage rates can lead to significant financial penalties.