The actual time it took to produce the very first unit ($T_1$).
Typically between 70% and 95%. Represents efficiency retained as volume doubles.
Calculate the time required for this specific unit number.
Calculation Results
Learning Index (Slope b):–
Time for Unit N:–
Total Time (1 to N):–
Average Time per Unit:–
Excel Formula for this Result:
=A1 * POWER(A3, LOG(A2, 2))
How to Calculate Learning Rate in Excel
The learning rate (or learning curve) is a mathematical concept widely used in manufacturing, cost estimation, and business process analysis. It is based on the observation that as the cumulative production of a product doubles, the time or cost required to produce a single unit decreases at a constant rate.
This calculator allows you to project production times using the Crawford (Unit Time) model. Below, we detail how to perform these calculations manually within Microsoft Excel.
Understanding the Formula
The standard Learning Curve formula (Crawford Model) is:
Y = aXb
Y = The time (or cost) required to produce the Xth unit.
a = The time required to produce the first unit (T1).
X = The cumulative unit number.
b = The slope of the learning curve.
The critical part of the calculation is determining the slope b, which is calculated as:
b = log(Learning Rate) / log(2)
Step-by-Step: Calculating Learning Rate in Excel
To set up a learning curve projection in Excel, follow these steps:
1. Set up your Data Table
Create a simple table with your input variables:
Cell
Value
Description
A1
100
Time for First Unit (Hours)
A2
85%
Learning Rate (enter as 0.85)
A3
10
Target Unit Number
2. Calculate the Slope (Index)
In a new cell (e.g., B1), calculate the exponent using the LOG function:
=LOG(A2, 2)
Note: If your learning rate is 85%, this will result in approximately -0.234.
3. Calculate the Unit Time
To find the time required for the 10th unit (Value in A3), use the POWER function in cell B2:
=A1 * POWER(A3, B1)
Or combined in one formula:
=A1 * POWER(A3, LOG(A2, 2))
Calculating the Learning Rate from Historical Data
If you have historical production data and want to find your actual learning rate, you can do so using Excel's LOGEST function or a scatter plot.
Record Data: Column A = Unit Number, Column B = Time per Unit.
Create a Chart: Select data -> Insert -> Scatter Plot.
Display Equation: Check "Display Equation on chart".
The equation will appear in the format y = c * x^b. To find your Learning Rate percentage from the exponent b displayed on the chart, use this formula in a cell:
=POWER(2, b)
Why is this important?
Accurately calculating the learning rate allows businesses to:
Bid accurately: Avoid overestimating costs on long-term contracts.
Schedule workforce: Predict when production will speed up and require less labor hours.
Manage inventory: Understand material flow changes as efficiency improves.
Common learning rates usually fall between 70% (rapid learning, complex manual tasks) and 100% (no learning, fully automated processes). An 80% learning rate is a standard benchmark in many industries.
function calculateLearningCurve() {
// 1. Get input values
var t1 = parseFloat(document.getElementById('initialTime').value);
var lrPercent = parseFloat(document.getElementById('learningRate').value);
var n = parseInt(document.getElementById('targetUnit').value);
// 2. Validate inputs
if (isNaN(t1) || t1 <= 0) {
alert("Please enter a valid positive number for the First Unit Time.");
return;
}
if (isNaN(lrPercent) || lrPercent 100) {
alert("Please enter a valid Learning Rate percentage (0-100).");
return;
}
if (isNaN(n) || n < 1) {
alert("Please enter a valid positive integer for the Target Unit.");
return;
}
// 3. Perform Calculations (Crawford Unit Time Model)
// Convert percentage to decimal
var lrDecimal = lrPercent / 100;
// Calculate Slope b = log(LR) / log(2)
var b = Math.log(lrDecimal) / Math.log(2);
// Calculate Time for Nth unit: Tn = T1 * n^b
var timeN = t1 * Math.pow(n, b);
// Calculate Total Time (Approximate summation for discrete units)
// While integration is sometimes used, iterating is more accurate for discrete units in JS
var totalTime = 0;
for (var i = 1; i <= n; i++) {
totalTime += t1 * Math.pow(i, b);
}
// Calculate Average Time
var avgTime = totalTime / n;
// 4. Update the UI
document.getElementById('resSlope').innerText = b.toFixed(4);
// Update span for Unit N label
document.getElementById('resUnitNum').innerText = n;
document.getElementById('resTotalNum').innerText = n;
// Update Values with 2 decimal places
document.getElementById('resUnitTime').innerText = timeN.toFixed(2) + " Hours";
document.getElementById('resTotalTime').innerText = totalTime.toFixed(2) + " Hours";
document.getElementById('resAvgTime').innerText = avgTime.toFixed(2) + " Hours";
// Update Excel Formula Example text
document.getElementById('excelSyntax').innerText =
"=" + t1 + " * POWER(" + n + ", LOG(" + lrDecimal + ", 2))";
// Show results
document.getElementById('result').className = "results-area visible";
}