New to this topic?
We recommend reading these guides first to get the most out of this one:
Log-Log
Transform to Linear
R²≥0.85
Good Fit Threshold
±CI
Confidence Interval
2σ
Outlier Threshold

Log-Log Plotting: Making Curves into Lines

The learning curve equation Y = T1 × Xb is nonlinear in its natural form. Plotting raw hours (Y-axis) against unit number (X-axis) produces a curve that is difficult to assess visually. The solution is a logarithmic transformation of both axes.

Taking the natural log of both sides: ln(Y) = ln(T1) + b × ln(X). This is the equation of a straight line where ln(T1) is the y-intercept and b is the slope. On log-log paper, a perfect learning curve is a straight line with a negative slope.

📊 Log-Log Transform Example Step by Step

Given data: T1 = 10,000 hours, 85% learning rate (b = ln 0.85 / ln 2 = –0.2345)

Unit (X)Hours (Y)ln(X)ln(Y)
110,0000.0009.210
56,8571.6098.833
105,8282.3038.670
254,7013.2198.456
503,9963.9128.293
1003,3974.6058.131

The ln(Y) values decrease linearly with ln(X). The slope is –0.2345, which is exactly b. The y-intercept is 9.210, which is ln(10,000) = ln(T1). On a log-log plot, these six points fall on a perfectly straight line.

Why the transform comes first The same six units, plotted twice. On raw axes four of them crowd into the first quarter and the curve is flat before it is halfway across. On log axes they are a ruler — and the slope is b.

Both panels are the page's worked example: T1 = 10,000 hours on an 85% unit curve, b = −0.2345, at units 1, 5, 10, 25, 50 and 100. Nothing is fitted here; the line on the right is the model, not a regression through the points. What the right-hand panel buys is everything the page does afterwards — R², residual patterns, breakpoints, "do not force-fit a bad model" — because each of those is a statement about departure from a straight line, and departure from a curve is not something an eye can judge. The table's hours column was recomputed from the page's own given before plotting: four of its six rows did not follow from T1 and b, and unit 100 was out by 5%.

Linear Regression on Transformed Data

Once the data is log-transformed, ordinary least squares (OLS) regression finds the best-fit line through the points. The regression output gives you two parameters:

ParameterRegression OutputLearning Curve MeaningHow to Convert
Intercept (a)ln(T1)Theoretical first unit hoursT1 = ea
Slope (b)Learning exponentRate of improvementLearning rate = 2b
📊 Regression Example from Production Data Real-World Application

Given: 30 completed units with actual touch labor hours. After log-transforming and running OLS regression:

  • Intercept (a) = 9.152 → T1 = e9.152 = 9,420 hours
  • Slope (b) = –0.2107 → Learning rate = 2–0.2107 = 86.4%
  • R² = 0.91
  • Standard error of b = 0.018

Interpretation: The data supports an 86.4% unit learning curve with T1 of 9,420 hours. The R² of 0.91 indicates a strong fit. The standard error of the slope means the 95% confidence interval for the learning rate is approximately 83.9% to 88.8%.

⚠️ Regression on Logs ≠ Regression on Raw Data

OLS regression on log-transformed data minimizes the sum of squared errors in log-space, not in hours-space. This means the regression gives proportionally equal weight to early and late units. If you need to minimize absolute hour errors (e.g., for budgeting), you may need weighted regression or nonlinear least squares. For most learning curve applications, log-space regression is appropriate and standard.

R² Interpretation and Residual Analysis

R² tells you what fraction of the variance in ln(Y) is explained by the linear model. It does not tell you whether the model is correct. A structured pattern in the residuals — even with high R² — indicates the model is missing something.

R² RangeInterpretationAction
0.90–1.00Excellent fit; data follows learning curve closelyCheck residuals for patterns; if clean, use the model with confidence
0.80–0.90Good fit; some scatter but trend is clearInvestigate scatter sources; widen confidence intervals for forecasts
0.70–0.80Moderate fit; significant unexplained variationLook for disruptions, rate changes, data quality issues; consider segmented model
Below 0.70Poor fit; simple learning curve does not describe this dataDo not use the model without addressing the cause; consider multi-variable or segmented approaches

Always plot the residuals (actual minus predicted in log-space) against unit number. If the residuals show a U-shape, S-shape, or step function, the single-line model is inadequate. Common patterns and their causes:

Residual PatternLikely CauseSolution
U-shapedLearning rate changed over the production runFit a segmented curve with different rates for early and late production
Step changeConfiguration change, rate change, or disruption at a specific unitIdentify the break unit; fit separate curves before and after
Increasing scatterData quality degrades for recent units (incomplete data) or product mix changesVerify data completeness; normalize for configuration
CyclicalSeasonal workforce changes, lot-boundary effectsAdd a lot or seasonal variable to the model

Confidence Intervals for Forecasts

A point estimate without a confidence interval is incomplete. Every learning curve forecast should include a range that reflects uncertainty in both T1 and the learning rate.

📊 Building a Confidence Interval Practical Method

From regression: T1 = 9,420 hours (SE = 380), b = –0.2107 (SE = 0.018), n = 30 units

Forecast for unit 100:

ScenarioT1Learning RateUnit 100 Hours
Point estimate9,42086.4%3,280
95% upper bound10,18088.8%3,940
95% lower bound8,66083.9%2,720

The 95% confidence range for unit 100 is 2,720 to 3,940 hours — a spread of ±19% around the point estimate. This range narrows as you add more data points and widens as you forecast further from the data range.

When the Data Does Not Fit a Straight Line

Sometimes the log-log plot is clearly not a straight line. This does not mean learning curves are wrong — it means the simple single-slope model is insufficient. Common situations and their remedies:

SituationWhat You SeeModel Approach
Breakpoint (rate change)Slope changes at a specific unit numberPiecewise regression: fit two lines with a common breakpoint. Use the Chow test or Bayesian information criterion (BIC) to determine if the break is statistically significant.
Plateau (learning limit)Curve flattens, hours stop decreasingStanford-B model: Y = T1 × (X + B)b, where B represents equivalent prior experience. Or set a floor and truncate the curve.
Multiple populationsTwo distinct clusters of pointsSeparate the data by configuration, production line, or work content. Fit independent curves to each population.
Initial instabilityFirst 5–10 units scatter widely, then settleExclude the early units from regression (they include startup effects outside the learning pattern). Report T1 from the regression, not from unit 1 actuals.

⚠️ Do Not Force-Fit a Bad Model

If the data clearly shows a breakpoint or plateau, forcing a single straight line through all points produces a “compromise” slope that is wrong for both the early and late portions. The resulting forecast will underestimate early units and overestimate late units (or vice versa). Always let the data tell you the model — do not impose a model on the data.

🎯 The Bottom Line

Log-log plotting transforms the learning curve into a straight line for visual assessment and linear regression. OLS on log-transformed data gives you T1 and the learning rate directly. R² above 0.85 indicates a good fit, but always check residuals for patterns. Confidence intervals must accompany every forecast — a point estimate without a range is an invitation for misuse. When the data does not fit a straight line, use breakpoint analysis, the Stanford-B model, or data segmentation rather than forcing a bad fit. Next: Rate Adjustment & Disruption Modeling — what happens to the curve when production stops, surges, or loses its workforce.

Interactive Demo

The same curve on both sets of axes. Switch between them and see why the regression is always run on the transformed data.

⚡
Try It Yourself
Learning Curve Explorer
▼
Y = T1 × X^b. Move the learning rate and watch what a few points are worth across a whole lot — then flip to log-log, where the curve becomes the straight line you can actually judge a fit against.
85%
7098
10,000 h
100030000
100 units
10300
05,00010,0001255075100unit number
-0.2345
b (slope)
3,397 h
Unit 100
437,539 h
Lot total
4,375 h
Cumulative avg
Assume 90% instead of 85% — five points, and the kind of error a single mis-stated T₁ or a wrongly-classified lot produces — and this same 100-unit run budgets at 581,410 hours instead of 437,539. That is 143,872 hours of difference, from one assumption nobody re-derives after the proposal.
Free forever · Every feature included

Stop reading, start modeling

Model your process flow, run simulations, optimize staffing with TOC math, and test your knowledge with 107 interactive checks — all in one platform.

Open Workbench →

Take this to a room

The running order

For analysts fitting curves. They should leave able to fit on log-log, judge the fit, and refuse to force a straight line through a breakpoint.

7 beats · 13 min
  1. 1

    Log-log makes the curve a line

    Take logs of both axes and the learning curve becomes a straight line. That is the whole technique.

    • Straight on log-log means the curve is behaving.
    • Curvature on log-log means something changed.
    • You can see both by eye before running any regression.

    Ask the room Have we ever plotted our own hours on log-log?

  2. 2

    Regression gives you both parameters

    Ordinary least squares on the transformed data returns T1 and the learning rate directly.

    • The intercept gives T1. The slope gives the exponent, and from it the rate.
    • No specialist software required - a spreadsheet does it.
    • Twenty or more completed units gives a reliable curve.
  3. 3

    Log-space is not hours-space

    A subtlety worth stating, because it changes what the fit is optimising.

    • Regression on logs minimises squared error in log space, not in hours.
    • That gives proportionally equal weight to early and late units.
    • If you need to minimise absolute hour error for budgeting, weight it - otherwise log space is right.
  4. 4

    R-squared above 0.85, then check residuals

    The single number is not enough. Look at the pattern of what is left over.

    • R-squared above 0.85 indicates a good fit.
    • Residuals should scatter randomly. A pattern in them means a missing effect.
    • Outliers beyond two sigma get investigated, not deleted.
  5. 5

    Always give a range

    A point estimate without a confidence interval is an invitation to misuse.

    • Every forecast carries an interval.
    • The interval widens the further you extrapolate - show that.
    • A single number will be quoted back to you as a commitment.

    Ask the room Do our forecasts carry ranges today?

  6. 6

    Do not force-fit

    When the data shows a breakpoint or plateau, a single straight line is wrong for both halves.

    • The compromise slope underestimates early units and overestimates late ones, or the reverse.
    • Use breakpoint analysis, the Stanford-B model, or segment the data.
    • Let the data tell you the model. Do not impose the model on the data.
  7. 7

    What we do next

    Plot what we have, honestly, before deciding anything.

    • Pull completed units only, with clean touch-labour hours.
    • Plot on log-log and look at it before regressing.
    • Fit, check R-squared and residuals, and produce an interval.
    • If there is a breakpoint, segment rather than averaging over it.

    Ask the room Which programme has twenty clean completed units we could plot?