Analyst Dojo
Lesson 1 of 7 11–14% of the exam

The regression line: slope, intercept and least squares

Simple linear regression explains a dependent variable Y with one independent variable X: Y = b₀ + b₁X + ε. Ordinary least squares (OLS) picks the line with the smallest sum of squared residuals, giving b̂₁ = Cov(X, Y) ÷ Var(X) and b̂₀ = Ȳ − b̂₁X̄.

9 min cram, 40 min full read. Based on the 2027 CFA® Program Level I curriculum, Quantitative Methods, Learning Module 10. Sitting in November 2026? The 2026 version of this lesson is still available.

Tailor this to you: take the self-assessment

Before this: Statistical Characteristics of Asset Returns

On the exam

  • Describe, interpret, and explain simple linear regression, including coefficient estimation using the least squares criterion

Describe, interpret and explain simple linear regression and how ordinary least squares estimates the coefficients. Expect a slope from a covariance and a variance (or from sums of deviations), an intercept from the means, a predicted value or a residual, the type of data a regression uses, and an indicator variable read as two group means. Wrong options divide by the variance of Y or swap X and Y.

How deeply to learn each part
Know the idea
Understand it in general. It frames other topics, but you will not calculate with it.
Use it
Understand it well enough to solve a question with it. Recognize when it applies.
Memorize
Learn it by heart. The exam will not give it to you.

You know this one. The full lesson is folded away. The takeaways, formulas and checkpoint below are your quick refresher, and the checkpoint is a fair test of whether you still do.

You tested strong here. The full lesson is folded away. The takeaways, formulas and checkpoint below are your quick refresher, and the checkpoint is a fair test of whether you still know it.

Cram mode: the one-screen version of this lesson. Switch to Full for the explanations, worked examples and interactives.

What is a simple linear regression?

A simple linear regression explains the variation in one variable using one other variable and a straight line. The variable you want to explain is the dependent variable , Y. The variable you use to explain it is the independent variable , X.

Fitting the line this way is called ordinary least squares (OLS) regression, and we say Y is regressed on X. One independent variable makes the regression simple; two or more make it a multiple regression, which is beyond this module.

Simple linear regression model Memorize
Yi=b0+b1Xi+εiY_i = b_0 + b_1 X_i + \varepsilon_i

The regression coefficients are the intercept , b0b_0, and the slope coefficient , b1b_1. The error term , εi\varepsilon_i, is everything about YiY_i that the line does not capture. Once the data give estimates of the coefficients, we write them with hats, b^0\hat{b}_0 and b^1\hat{b}_1.

The parts of a simple linear regression
Y = b₀ + b₁X + εone explained variable, one explaining variable
  • Dependent variable, Y Memorize the variable you want to explain
    • Also called explained variable, predicted variable
  • Independent variable, X Memorize the variable doing the explaining
    • Also called explanatory variable, predictor
  • Regression coefficients Memorize estimated from the data
    • Intercept, b₀ predicted Y when X = 0
    • Slope, b₁ change in predicted Y per one-unit rise in X
  • Error term, ε Use it what the line leaves unexplained
    • Residual, e the sample estimate of ε: actual Y minus fitted Y

Throughout this module we use one small data set. Six retailers report their marketing spend as a percentage of sales (X) and their revenue growth in percent (Y).

RetailerABCDEF
Marketing spend, X (%)235689
Revenue growth, Y (%)45981213

How does ordinary least squares choose the line?

Any line gives a fitted value , Y^i=b^0+b^1Xi\hat{Y}_i = \hat{b}_0 + \hat{b}_1X_i, for each observation. The miss, ei=Yi−Y^ie_i = Y_i - \hat{Y}_i, is the residual : actual minus fitted. It is the sample’s estimate of the error term. Square each residual and add them up to get the sum of squares error , SSE. The OLS line is the one with the smallest SSE.

SSE=∑i=1n(Yi−Y^i)2=∑ei2SSE = \sum_{i=1}^{n} (Y_i - \hat{Y}_i)^2 = \sum e_i^2

Squaring does two jobs. Positive and negative misses cannot cancel, and a big miss counts far more than a small one. Calculus then gives a closed-form answer for the two coefficients. The slope is the covariance of X and Y, Cov(X, Y), divided by the variance of X, Var(X).

Slope coefficient Memorize
b^1=∑(Xi−Xˉ)(Yi−Yˉ)∑(Xi−Xˉ)2=Cov(X,Y)Var(X)\hat{b}_1 = \frac{\sum (X_i-\bar{X})(Y_i-\bar{Y})}{\sum (X_i-\bar{X})^2} = \frac{\text{Cov}(X,Y)}{\text{Var}(X)}
Intercept Memorize
b^0=Yˉ−b^1Xˉ\hat{b}_0 = \bar{Y} - \hat{b}_1\bar{X}

Two properties follow, and both are tested: the fitted line always passes through the point of means, (Xˉ,Yˉ)(\bar{X}, \bar{Y}), and the residuals always add up to zero.

Both the covariance and the variance use n − 1, so the divisor cancels and the sums give the same slope.

Rearrange itRegression slope: solve for any one
The question asks for
The covariance of X and Y is 9.7 and the variance of X is 7.5. The slope of the regression of Y on X is closest to:

9.7 ÷ 7.5 = 1.2933

Slope coefficient, b̂₁1.2933

On your calculator
  1. 9.7÷7.5=
  1. 9.7ENTER7.5÷

ENTER enter (on the HP, puts the number on the stack)

Rearrange itRegression intercept: solve for any one
The question asks for
The means are X̄ = 5.5 and Ȳ = 8.5, and the regression slope is 1.2933. The intercept is closest to:

8.5 − 1.2933 × 5.5 = 1.3869

Intercept, b̂₀1.3869

On your calculator
  1. 8.5−(1.2933×5.5)=
  1. 8.5ENTER1.2933ENTER5.5×−

ENTER enter (on the HP, puts the number on the stack)

InteractiveDrag the line: make the squares as small as you can

Try this 0 of 3

  • Drag your line until its SSE is within 10% of the minimum (no snapping needed).
  • Snap to least squares and read the sum of the residuals.
  • In “Move the data”, drag one point until it misses the line by 3 or more.

Your line Ŷ = 2.00 + 1.00X has a sum of squared residuals of 12.00. The least-squares line Ŷ = 1.39 + 1.29X has the smallest possible, 2.77. Least squares is the line with the smallest total area of squared misses.

0481216Revenue growth (%)0246810Marketing spend (% of sales)Your line

Drag either round handle on the line, or focus it and use the arrow keys.

  • Retailer
  • Your line
  • Squared miss

Your squares cover 4.3 times the least-squares area. Drag a handle, or snap to least squares.

Your SSE (total square area)12.00
Least-squares SSE (the minimum)2.77
Your lineŶ = 2.00 + 1.00X
Sum of your residuals6.00
Show
Show working

Means: X̄ = 5.50, Ȳ = 8.50 (n = 6).

Σ(X − X̄)(Y − Ȳ) = 15.75 + 8.75 − 0.25 − 0.25 + 8.75 + 15.75 = 48.50.

Σ(X − X̄)² = 12.25 + 6.25 + 0.25 + 0.25 + 6.25 + 12.25 = 37.50.

b̂₁ = 48.50 ÷ 37.50 = 1.2933 (the same as Cov(X, Y) ÷ Var(X) = 9.7000 ÷ 7.5000).

b̂₀ = Ȳ − b̂₁X̄ = 8.50 − 1.2933 × 5.50 = 1.3867.

Least-squares residuals Y − Ŷ: 0.03, −0.27, 1.15, −1.15, 0.27, −0.03 (they sum to zero). SSE = 2.7733.

Your line Ŷ = 2.00 + 1.00X: SSE = 0.00² + 0.00² + 2.00² + 0.00² + 2.00² + 2.00² = 12.00.

b̂₀ and b̂₁ on your calculator (two-variable statistics)
  1. 2NDDATA2NDCLR WORKclear old data
  2. 2ENTER↓4ENTER↓X01, Y01
  3. 3ENTER↓5ENTER↓X02, Y02
  4. 5ENTER↓9ENTER↓X03, Y03
  5. 6ENTER↓8ENTER↓X04, Y04
  6. 8ENTER↓12ENTER↓X05, Y05
  7. 9ENTER↓13ENTER↓X06, Y06
  8. 2NDSTATpress 2ND SET until LIN shows
  9. ↓↓↓↓↓↓↓↓a = 1.3867 (intercept)
  10. ↓b = 1.2933 (slope)
  11. ↓r = 0.9786

2ND second function (the shifted label above a key) · DATA data worksheet · CLR WORK clear the worksheet · ENTER enter (on the HP, puts the number on the stack) · STAT statistics worksheet

  1. fCLEAR Σ
  2. 4ENTER2Σ+Y first, then X
  3. display1
  4. 5ENTER3Σ+Y first, then X
  5. display2
  6. 9ENTER5Σ+Y first, then X
  7. display3
  8. 8ENTER6Σ+Y first, then X
  9. display4
  10. 12ENTER8Σ+Y first, then X
  11. display5
  12. 13ENTER9Σ+Y first, then X
  13. display6
  14. 0gŷ,rSTO7a = 1.3867 (intercept: ŷ at x = 0
  15. storeitinR7,sinceΣ+keepsnandthesumsinR1toR6)
  16. x≷yr = 0.9786
  17. 1gŷ,rRCL7−b = 1.2933 (slope: ŷ at x = 1 minus ŷ at x = 0)

f gold shift key · CLEAR Σ clear the statistics registers · ENTER enter (on the HP, puts the number on the stack) · Σ+ add a data point · g blue shift key · ŷ,r estimated y and correlation · STO store · x≷y swap the last two numbers · RCL recall a stored number

Display: b₀ 1.3867, b₁ 1.2933, r 0.9786

Least squares is the line with the smallest total area of squared misses.

What are the residuals telling you?

Put the fitted line next to the data and each retailer has a residual.

RetailerXYFitted ŶResidual e
A243.970.03
B355.27−0.27
C597.851.15
D689.15−1.15
E81211.730.27
F91313.03−0.03

The residuals add up to zero, and their squares add up to SSE = 2.773. No other straight line through these points has a smaller sum of squares.

Exam tip On the exam you will usually be handed the covariance and variance, or the sums of squares. Slope first, then intercept. Check that the slope has the variance of X underneath it.

Go deeper Slope and correlation

Dividing the covariance by both standard deviations gives the correlation, rr. Dividing by the variance of X alone gives the slope. So the two are linked by the ratio of standard deviations.

Slope from the correlation Know the idea
b^1=r sYsX\hat{b}_1 = r\,\frac{s_Y}{s_X}

For the six retailers r=0.9786r = 0.9786, sY=3.62s_Y = 3.62 and sX=2.74s_X = 2.74, and 0.9786×3.62÷2.74=1.290.9786 \times 3.62 \div 2.74 = 1.29. A positive correlation always means a positive slope, and the slope is in units of Y per unit of X, while rr has no units.

Does a regression prove cause and effect?

Know the idea

No. A regression measures association: how Y tends to move with X. It cannot tell you that X causes Y, because a third factor can drive both. Retailers in fast-growing regions may spend more on marketing and also grow faster, so part of the 1.29 slope could reflect local demand rather than marketing. Read a slope as “goes with”, not “causes”. This is the point of correlation versus causation .

What kinds of data does a regression use?

The data come in three shapes. Cross-sectional data are many entities observed in the same period (indexed by ii). Time-series data follow one entity over many periods (indexed by tt). Panel data follow the same entities over many periods.

Three kinds of regression data
Regression datawho and when
  • Cross-sectional Memorize many entities, one period
  • Time-series Memorize one entity, many periods
  • Panel Memorize the same entities over many periods

The six retailers in one year are cross-sectional data. A regression of one company’s monthly returns on an index’s monthly returns uses time-series data. Forty countries’ bond yields against their debt ratios over ten years are panel data.

What if X is a yes-or-no variable?

An indicator variable (also called a dummy variable) equals 1 when a condition holds and 0 when it does not. With an indicator as X, the intercept is the mean of Y in the 0 group, the slope is the difference between the two group means, and the mean of the 1 group is intercept plus slope.

Indicator variable regression Use it
Yi=b0+b1Ii+εi,Ii=1 or 0Y_i = b_0 + b_1 I_i + \varepsilon_i, \quad I_i = 1 \text{ or } 0

Lesson 3 tests whether that difference is real.

Go deeper Why squares and not absolute values?

Squares give a smooth function that calculus can minimize in one step, so the coefficients have simple formulas. They also punish large misses heavily, so one wild point pulls the line toward it. That is why a single outlier can tilt a least squares line, a point lesson 2 returns to.

Go deeper Beta is a regression slope

Regress a stock’s excess returns (its return minus the risk-free rate) on the market’s excess returns and the slope is the stock’s beta. Lesson 7 runs that regression step by step and turns the beta into an expected return.

Go deeper Running a regression in a spreadsheet

Spreadsheets do the same arithmetic. In Excel and Google Sheets, SLOPE and INTERCEPT return the coefficients, RSQ the R-squared (the share of the variation in Y that the line explains) and CORREL the correlation; LINEST returns the full set of regression statistics; FORECAST.LINEAR (FORECAST in Google Sheets) and TREND return predicted values. Statistical software (R’s lm function, Python’s scikit-learn or statsmodels) prints the same output table. On the exam you calculate by hand or read the output.

Memorize this

MemorizeThe least squares line

ItemWhat to know
ModelYi=b0+b1Xi+εiY_i = b_0 + b_1X_i + \varepsilon_i
Slopeb^1=Cov(X,Y)÷Var(X)\hat{b}_1 = \text{Cov}(X,Y) \div \text{Var}(X)
Interceptb^0=Yˉ−b^1Xˉ\hat{b}_0 = \bar{Y} - \hat{b}_1\bar{X}
Residualei=Yi−Y^ie_i = Y_i - \hat{Y}_i (actual − fitted)
Criterionminimize ∑ei2\sum e_i^2 (SSE): ordinary least squares
Propertiesline through (Xˉ,Yˉ)(\bar{X}, \bar{Y}); ∑ei=0\sum e_i = 0
Indicator Xintercept = mean of the 0 group; slope = difference in means
Datacross-sectional (many entities, one period), time-series (one entity, many periods), panel (both)

Memory hook Slope = covariance over the variance of X, the variable you stand on. Divide by both standard deviations and you get r, not the slope. The line always passes through (X̄, Ȳ), so the intercept just finishes the job.

Know it cold Least squares minimizes the sum of SQUARED residuals. Plain residuals always sum to zero, so they cannot be the criterion.

The parts of a simple linear regression
Y = b₀ + b₁X + εone explained variable, one explaining variable
  • Dependent variable, Y Memorize the variable you want to explain
    • Also called explained variable, predicted variable
  • Independent variable, X Memorize the variable doing the explaining
    • Also called explanatory variable, predictor
  • Regression coefficients Memorize estimated from the data
    • Intercept, b₀ predicted Y when X = 0
    • Slope, b₁ change in predicted Y per one-unit rise in X
  • Error term, ε Use it what the line leaves unexplained
    • Residual, e the sample estimate of ε: actual Y minus fitted Y
Three kinds of regression data
Regression datawho and when
  • Cross-sectional Memorize many entities, one period
  • Time-series Memorize one entity, many periods
  • Panel Memorize the same entities over many periods
Simple linear regression model Memorize
Yi=b0+b1Xi+εiY_i = b_0 + b_1 X_i + \varepsilon_i
Quick example

Revenue growth (Y, %) on marketing spend (X, % of sales): Ŷ = 1.39 + 1.29X. A retailer spending 4% of sales is fitted at 1.39 + 1.29 × 4 = 6.55%; the gap to its actual growth is its residual.

On your calculator
  1. 1.29×4+1.39= 6.55
  1. 1.29ENTER4×1.39+ 6.55

ENTER enter (on the HP, puts the number on the stack)

Slope coefficient Memorize
b^1=∑(Xi−Xˉ)(Yi−Yˉ)∑(Xi−Xˉ)2=Cov(X,Y)Var(X)\hat{b}_1 = \dfrac{\sum (X_i-\bar{X})(Y_i-\bar{Y})}{\sum (X_i-\bar{X})^2} = \dfrac{\text{Cov}(X,Y)}{\text{Var}(X)}
Quick example

Cov(X, Y) = 0.0036 and Var(X) = 0.0045. Slope = 0.0036 ÷ 0.0045 = 0.80.

On your calculator
  1. 0.0036÷0.0045= 0.8
  1. 0.0036ENTER0.0045÷ 0.8

ENTER enter (on the HP, puts the number on the stack)

Intercept Memorize
b^0=Yˉ−b^1Xˉ\hat{b}_0 = \bar{Y} - \hat{b}_1\bar{X}
Quick example

Ȳ = 7, X̄ = 6 and slope 0.80. Intercept = 7 − 0.80 × 6 = 2.20.

On your calculator
  1. 7−(0.8×6)= 2.2
  1. 7ENTER0.8ENTER6×− 2.2

ENTER enter (on the HP, puts the number on the stack)

Slope from the correlation Know the idea
b^1=r sYsX\hat{b}_1 = r\,\dfrac{s_Y}{s_X}
Quick example

Correlation 0.50, standard deviation of Y 8%, of X 5%. Slope = 0.50 × 8 ÷ 5 = 0.80.

On your calculator
  1. 0.5×8÷5= 0.8
  1. 0.5ENTER8×5÷ 0.8

ENTER enter (on the HP, puts the number on the stack)

Indicator variable regression Use it
Yi=b0+b1Ii+εi,Ii=1 or 0Y_i = b_0 + b_1 I_i + \varepsilon_i, \quad I_i = 1 \text{ or } 0
Quick example

A lender's mean annual default rate was 1.8% before a rule change and 1.1% after. With AFTER = 1 after the change, the fitted line is Y = 1.8 − 0.7 × AFTER: the slope −0.7 is the change in the mean.

On your calculator
  1. 1.1−1.8= −0.7
  1. 1.1ENTER1.8− −0.7

ENTER enter (on the HP, puts the number on the stack)

How it is asked

  1. Slope from covariance and variance

    Cov(X, Y) = 0.0026, Var(X) = 0.0032, Var(Y) = 0.0052. Slope?

    0.0026 ÷ 0.0032 = 0.81. Trap: dividing by Var(Y) gives 0.50; dividing by both standard deviations gives r = 0.64.

  2. Intercept from the means

    X̄ = 6, Ȳ = 9, slope 0.81. Intercept?

    Ȳ − b̂₁X̄ = 9 − 4.86 = 4.14. Trap: swapping the roles gives 6 − 0.81 × 9 = −1.29.

  3. Indicator variable

    Fitted: Default rate = 1.8 − 0.7 × AFTER. Mean default rate after the change?

    1.8 − 0.7 = 1.1%. Traps: 1.8% is the mean before, −0.7 is the change.

  4. Interpret a coefficient

    Ŷ = 4.5 + 0.8X. What is 4.5?

    The predicted Y when X = 0: the intercept. The 0.8 is the change in Y per unit of X.

Exam traps

  • Dividing the covariance by the variance of Y (or by both standard deviations, which gives the correlation r, not the slope).
  • Swapping the dependent and independent variables: the regression of Y on X is not the regression of X on Y.
  • Reading the intercept as meaningful when X = 0 lies far outside the observed data.
  • Saying least squares minimizes the sum of the residuals. It minimizes the sum of the squared residuals.
  • Reading a slope as proof that X causes Y. Regression measures association; a third factor can drive both.
  • Reading an indicator variable's slope as the mean of the 1 group. It is the difference between the two group means.

Checkpoint

4 exam-style questions. About 90 seconds each.

  1. 1Cov(X, Y) = 0.0018, Var(X) = 0.0024 and Var(Y) = 0.0030. The slope of the regression of Y on X is closest to:

  2. 2With X̄ = 4% and Ȳ = 5%, and the slope from the previous question (0.75), the intercept is closest to:

  3. 3The least squares method chooses the regression coefficients that minimize the:

  4. 4In the fitted line Ŷ = 3.0 + 0.5X, the value 3.0 is best interpreted as the:

Key takeaways

  • Y = b₀ + b₁X + ε; the residual is actual minus fitted.
  • b̂₁ = Cov(X, Y) ÷ Var(X); b̂₀ = Ȳ − b̂₁X̄; the line passes through (X̄, Ȳ).
  • Ordinary least squares minimizes the sum of squared residuals (SSE); the residuals sum to zero.
  • Cross-sectional, time-series or panel: know which data a regression uses.
  • With an indicator X, the intercept is the mean of the 0 group and the slope is the difference in means.
Simple linear regression model Memorize
Yi=b0+b1Xi+εiY_i = b_0 + b_1 X_i + \varepsilon_i
Quick example

Revenue growth (Y, %) on marketing spend (X, % of sales): Ŷ = 1.39 + 1.29X. A retailer spending 4% of sales is fitted at 1.39 + 1.29 × 4 = 6.55%; the gap to its actual growth is its residual.

On your calculator
  1. 1.29×4+1.39= 6.55
  1. 1.29ENTER4×1.39+ 6.55

ENTER enter (on the HP, puts the number on the stack)

Slope coefficient Memorize
b^1=∑(Xi−Xˉ)(Yi−Yˉ)∑(Xi−Xˉ)2=Cov(X,Y)Var(X)\hat{b}_1 = \dfrac{\sum (X_i-\bar{X})(Y_i-\bar{Y})}{\sum (X_i-\bar{X})^2} = \dfrac{\text{Cov}(X,Y)}{\text{Var}(X)}
Quick example

Cov(X, Y) = 0.0036 and Var(X) = 0.0045. Slope = 0.0036 ÷ 0.0045 = 0.80.

On your calculator
  1. 0.0036÷0.0045= 0.8
  1. 0.0036ENTER0.0045÷ 0.8

ENTER enter (on the HP, puts the number on the stack)

Intercept Memorize
b^0=Yˉ−b^1Xˉ\hat{b}_0 = \bar{Y} - \hat{b}_1\bar{X}
Quick example

Ȳ = 7, X̄ = 6 and slope 0.80. Intercept = 7 − 0.80 × 6 = 2.20.

On your calculator
  1. 7−(0.8×6)= 2.2
  1. 7ENTER0.8ENTER6×− 2.2

ENTER enter (on the HP, puts the number on the stack)

Slope from the correlation Know the idea
b^1=r sYsX\hat{b}_1 = r\,\dfrac{s_Y}{s_X}
Quick example

Correlation 0.50, standard deviation of Y 8%, of X 5%. Slope = 0.50 × 8 ÷ 5 = 0.80.

On your calculator
  1. 0.5×8÷5= 0.8
  1. 0.5ENTER8×5÷ 0.8

ENTER enter (on the HP, puts the number on the stack)

Indicator variable regression Use it
Yi=b0+b1Ii+εi,Ii=1 or 0Y_i = b_0 + b_1 I_i + \varepsilon_i, \quad I_i = 1 \text{ or } 0
Quick example

A lender's mean annual default rate was 1.8% before a rule change and 1.1% after. With AFTER = 1 after the change, the fitted line is Y = 1.8 − 0.7 × AFTER: the slope −0.7 is the change in the mean.

On your calculator
  1. 1.1−1.8= −0.7
  1. 1.1ENTER1.8− −0.7

ENTER enter (on the HP, puts the number on the stack)

All Quantitative Methods formulas, every lesson

Practice exam-style questions on Simple Linear Regression in Finance

Questions about this lesson?

Where this comes back

Questions candidates ask

How do you calculate the slope of a regression line?

Divide the covariance of X and Y by the variance of X: b̂₁ = Cov(X, Y) ÷ Var(X). Equivalently, sum the cross-products of deviations from the means and divide by the sum of squared deviations of X. Then get the intercept from b̂₀ = Ȳ − b̂₁X̄.

What does the intercept mean in a regression?

It is the predicted value of Y when X is zero. It is only meaningful if X = 0 is plausible and near the data you observed. Otherwise it is just the number that positions the line so it passes through the point of means.

What is the least squares criterion?

Ordinary least squares chooses the intercept and slope that make the sum of squared residuals as small as possible. Squaring stops positive and negative misses from cancelling and penalizes big misses more. It gives one best line with simple formulas for the coefficients.

What is an indicator variable in regression?

A variable that is 1 when a condition holds and 0 otherwise, also called a dummy variable. Regressing Y on it gives an intercept equal to the mean of Y when the indicator is 0 and a slope equal to the difference between the two group means.

Spotted an error? Tell us and we will fix it.

  1. The regression line: slope, intercept and least squares
  2. The four regression assumptions and what residual plots reveal
  3. Goodness of fit and testing the regression coefficients
  4. The ANOVA table and the standard error of the estimate
  5. Predicting Y and building a prediction interval
  6. Functional forms: log-lin, lin-log and log-log models
  7. Estimating beta with a CAPM regression

Ask Sensei Listen instead

Questions on The regression line: slope, intercept and least squares

Learn with Sensei, out loud The voice tutor, in early access

Sensei teaches the lesson aloud and stops when you interrupt: "wait, why is the geometric mean lower?" It answers with the lesson's own example, then quizzes you by voice. Every account can try Sensei on one module, with one voice question.

USD 149 a month founding price (regular USD 199), kept for as long as you stay subscribed. Everything in Plus included.

In active development and improving every day. Send feedback · Plans and pricing

Analyst Dojo Plus

Your free review list holds 10 items.

Plus keeps everything you save, for USD 19 a month. To make room on the free plan, remove something from your review list.

See Plus

Lessons, checkpoints and the lesson questions in practice stay free. Compare plans