Identify the constraint in your production line or workflow system. Enter the cycle times for your sequential processes to determine the system's bottleneck rate and maximum throughput capacity.
System Process Data
Enter the Cycle Time (time to complete one unit) for each step in your process.
min/unit
min/unit
min/unit
min/unit
min/unit
Please enter at least two valid process times.
Bottleneck Cycle Time:—
Hourly Throughput (Rate):—
Daily Capacity (8hr Shift):—
Weekly Capacity (5 Days):—
function calculateBottleneck() {
var p1 = document.getElementById('p1_time').value;
var p2 = document.getElementById('p2_time').value;
var p3 = document.getElementById('p3_time').value;
var p4 = document.getElementById('p4_time').value;
var p5 = document.getElementById('p5_time').value;
var errorMsg = document.getElementById('errorMsg');
var resultsDiv = document.getElementById('results');
// Parse inputs
var times = [];
if (p1 && !isNaN(p1)) times.push({ name: "Process 1", time: parseFloat(p1) });
if (p2 && !isNaN(p2)) times.push({ name: "Process 2", time: parseFloat(p2) });
if (p3 && !isNaN(p3)) times.push({ name: "Process 3", time: parseFloat(p3) });
if (p4 && !isNaN(p4)) times.push({ name: "Process 4", time: parseFloat(p4) });
if (p5 && !isNaN(p5)) times.push({ name: "Process 5", time: parseFloat(p5) });
// Validation
if (times.length === 0) {
errorMsg.style.display = 'block';
errorMsg.innerHTML = "Please enter valid numbers for the cycle times.";
resultsDiv.style.display = 'none';
return;
}
errorMsg.style.display = 'none';
resultsDiv.style.display = 'block';
// Logic: The Bottleneck is the step with the HIGHEST cycle time (slowest step)
// Bottleneck Rate = 1 / Max Cycle Time
var maxCycleTime = 0;
var bottleneckName = "";
for (var i = 0; i maxCycleTime) {
maxCycleTime = times[i].time;
bottleneckName = times[i].name;
}
}
// Calculations based on the bottleneck (slowest step)
// Rate per hour = 60 mins / Cycle Time (mins)
var hourlyRate = 0;
if (maxCycleTime > 0) {
hourlyRate = 60 / maxCycleTime;
}
var dailyRate = hourlyRate * 8; // Assuming 8 hour shift
var weeklyRate = dailyRate * 5; // Assuming 5 day week
// Display Results
document.getElementById('bottleneckStep').innerHTML = "Bottleneck Identified: " + bottleneckName;
document.getElementById('resCycleTime').innerHTML = maxCycleTime + " min/unit";
document.getElementById('resHourlyRate').innerHTML = hourlyRate.toFixed(2) + " units/hour";
document.getElementById('resDailyRate').innerHTML = Math.floor(dailyRate) + " units/shift";
document.getElementById('resWeeklyRate').innerHTML = Math.floor(weeklyRate) + " units/week";
}
What is Bottleneck Rate?
The Bottleneck Rate (often referred to as the capacity of the system) is the rate at which the entire system produces output. It is dictated strictly by the slowest resource in the process chain.
In operations management, a "bottleneck" is the step in a process that has the lowest capacity or the longest cycle time. Because a chain is only as strong as its weakest link, a production line is only as fast as its slowest machine.
Why is it Important?
Understanding your bottleneck rate is critical for several reasons:
Throughput Limit: It defines the maximum output your facility can generate.
Inventory Control: Operating non-bottleneck steps faster than the bottleneck leads to Work-In-Process (WIP) pile-ups.
Investment Efficiency: Improving the speed of a non-bottleneck step yields zero increase in total system productivity. You must target the bottleneck to see results.
How to Calculate Bottleneck Rate
To calculate the bottleneck rate, you must first analyze the cycle times of individual steps in your workflow.
The Formula
The Bottleneck Rate ($R_b$) is determined by the resource with the minimum capacity ($C$) or the maximum cycle time ($T$).
Rb = Minimum(Capacity of Step 1, Capacity of Step 2, … Capacity of Step N)
OR
Rb = 1 / Maximum(Cycle Time of Step 1, Cycle Time of Step 2, … Cycle Time of Step N)
Step-by-Step Calculation
Measure Cycle Times: Determine how long it takes each station to process one unit (e.g., minutes per unit).
Identify the Constraint: Compare all cycle times. The station with the highest cycle time is the bottleneck.
Calculate Rate: Divide the time unit (e.g., 60 minutes for an hour) by the bottleneck's cycle time.
Example Calculation
Imagine a sandwich shop with three sequential steps:
Step A (Taking Order): 2 minutes per customer.
Step B (Making Sandwich): 5 minutes per customer.
Step C (Packaging/Payment): 3 minutes per customer.
Analysis:
Step A Capacity: 60 / 2 = 30 customers/hour.
Step B Capacity: 60 / 5 = 12 customers/hour.
Step C Capacity: 60 / 3 = 20 customers/hour.
Result: Step B is the bottleneck because it has the lowest capacity (12). Therefore, the Bottleneck Rate of the entire shop is 12 customers per hour. Even if Step A takes orders faster, the shop cannot produce finished sandwiches faster than Step B allows.
How to Improve System Capacity
Once you have used the calculator above to identify your bottleneck rate, you can increase total system throughput by applying the "Theory of Constraints":
Exploit the Bottleneck: Ensure the bottleneck resource is never idle. Remove breaks or shifts for this specific machine/person if possible.
Subordinate Everything Else: Slow down non-bottleneck steps to match the rate of the bottleneck to prevent inventory pile-up.
Elevate the Bottleneck: Add more resources (e.g., hire a second sandwich maker) to reduce the cycle time of the bottleneck step.
Frequently Asked Questions
What happens if I improve a non-bottleneck step?
Nothing happens to your total output. If you improve a step that is not the bottleneck, you simply create more "slack" or idle time at that station, but the system still cannot produce faster than the bottleneck allows.
Can the bottleneck shift?
Yes. If you improve the current bottleneck significantly, its cycle time may drop below another step's cycle time. That other step then becomes the new bottleneck.
Is Bottleneck Rate the same as Throughput?
Bottleneck Rate is the theoretical maximum throughput. Actual throughput is often lower due to variability, breakdowns, or lack of demand.