Blog · How-to guides · Sales teams
How Excel's forecasting functions work on sales data: FORECAST and FORECAST.LINEAR fit a straight line, worked by hand on eight quarters; FORECAST.ETS uses exponential smoothing with seasonality, run in Excel on 24 months with its confidence interval. Arguments, Forecast Sheet, which to use, and where each goes wrong.
The Excel FORECAST function predicts a future value from past data. =FORECAST.LINEAR(x, known_y's, known_x's) returns the point at x on the straight line that best fits the history; FORECAST is the older name and gives the same result. =FORECAST.ETS(target_date, values, timeline) uses exponential smoothing and can detect a seasonal pattern, which suits monthly sales.
| Function | Returns |
|---|---|
FORECAST.LINEAR(x, known_y's, known_x's) |
The value at x on the least-squares straight line through the history |
FORECAST(x, known_y's, known_x's) |
The same as FORECAST.LINEAR; kept for compatibility |
FORECAST.ETS(target_date, values, timeline, [seasonality], [data_completion], [aggregation]) |
A point forecast from exponential smoothing, with seasonality |
FORECAST.ETS.CONFINT(target_date, values, timeline, [confidence_level], ...) |
The half-width of the confidence interval around that forecast |
FORECAST.ETS.SEASONALITY(values, timeline) |
The length of the seasonal pattern Excel detects |
FORECAST.ETS.STAT(values, timeline, statistic_type, ...) |
A statistic of the fit: smoothing parameters alpha, beta, gamma, or an error measure such as MAE or RMSE |
Microsoft's page on FORECAST and FORECAST.LINEAR notes that "in Excel 2016, the FORECAST function was replaced with FORECAST.LINEAR as part of the new Forecasting functions." For a straight-line fit, =TREND(known_y's, known_x's, new_x) returns the same number again.
Eight quarters of sales, quarter number in A2:A9 and sales in B2:B9.
| Quarter (x) | Sales, USD thousands (y) | Fitted line | Residual |
|---|---|---|---|
| 1 | 410 | 411.25 | −1.25 |
| 2 | 432 | 429.89 | 2.11 |
| 3 | 445 | 448.54 | −3.54 |
| 4 | 470 | 467.18 | 2.82 |
| 5 | 488 | 485.82 | 2.18 |
| 6 | 501 | 504.46 | −3.46 |
| 7 | 526 | 523.11 | 2.89 |
| 8 | 540 | 541.75 | −1.75 |
The forecasts for quarters 9 and 10, with the line's slope and intercept beside them:
=FORECAST.LINEAR(9,B2:B9,A2:A9) returns 560.39
=FORECAST.LINEAR(10,B2:B9,A2:A9) returns 579.04
=SLOPE(B2:B9,A2:A9) returns 18.64
=INTERCEPT(B2:B9,A2:A9) returns 392.61
=RSQ(B2:B9,A2:A9) returns 0.996
The fitted line rises about 18.6 per quarter, so quarter 9 lands at about 560.4 and quarter 10 at about 579.0.
Microsoft gives the equation behind the function: the line is a + bx, with b = Σ(x − x̄)(y − ȳ) / Σ(x − x̄)² and a = ȳ − b x̄. By hand, x̄ = 4.5 and ȳ = 476.5. The sum of (x − x̄)(y − ȳ) across the eight rows is 783, and the sum of (x − x̄)² is 42:
b = 783 / 42 = 18.643
a = 476.5 − 4.5 × 18.643 = 392.607
Quarter 9: 392.607 + 18.643 × 9 = 560.39
Quarter 10: 392.607 + 18.643 × 10 = 579.04
In the sheet, the same check is one cell that must equal the FORECAST.LINEAR result:
=INTERCEPT(B2:B9,A2:A9)+SLOPE(B2:B9,A2:A9)*9
RSQ of 0.996 says the line explains 99.6% of the variation in the history, and the residuals stay within ±3.6. That says the history is straight. It does not say the future will be. The regression in Excel page covers the same fit with LINEST and the ToolPak.
=FORECAST.ETS(target_date, values, timeline, [seasonality], [data_completion], [aggregation])
From Microsoft's FORECAST.ETS reference:
Microsoft describes the method as "the AAA version of the Exponential Smoothing (ETS) algorithm": additive level, trend and seasonality, each smoothed with weights that favor recent data. It is in the family of Holt-Winters seasonal methods described in Forecasting: Principles and Practice. The fitted parameters are chosen by Excel, so the result cannot be reproduced on paper the way FORECAST.LINEAR can.
We ran it in Excel for Microsoft 365 on October 1, 2026, on 24 months of sales: dates 1/1/2024 to 12/1/2025 in A2:A25 and sales in B2:B25. The 2025 months are the series from moving average in Excel; 2024 is the year before.
| Month | 2024 (USD thousands) | 2025 (USD thousands) |
|---|---|---|
| Jan | 750 | 820 |
| Feb | 715 | 760 |
| Mar | 830 | 905 |
| Apr | 825 | 880 |
| May | 860 | 940 |
| Jun | 950 | 1,010 |
| Jul | 790 | 870 |
| Aug | 785 | 830 |
| Sep | 900 | 990 |
| Oct | 985 | 1,050 |
| Nov | 1,020 | 1,120 |
| Dec | 1,160 | 1,240 |
| Year | 10,570 | 11,415 |
=FORECAST.ETS(DATE(2026,1,1),B2:B25,A2:A25,12)
With seasonality forced to 12, Excel returned 891.39 for January 2026, 836.10 for February and 975.49 for March: the familiar shape of a soft start to the year, about 8% to 10% above 2025.
=FORECAST.ETS.CONFINT(DATE(2026,1,1),B2:B25,A2:A25,0.95,12)
That returned 20.01, so the 95% interval for January 2026 is 891.39 ± 20.01, or 871.37 to 911.40. Microsoft's CONFINT reference puts it this way: 95% of future points "are expected to fall within this radius" of the forecast. Report the range, not only the point.
Now let Excel choose:
=FORECAST.ETS.SEASONALITY(B2:B25,A2:A25) returns 6
=FORECAST.ETS(DATE(2026,1,1),B2:B25,A2:A25) returns 990.79
On two years of data, automatic detection found a 6-month cycle rather than 12, and the January forecast jumped to 990.79 with an interval of ±84.18, four times wider. With seasonality set to 0 the result was 1,045.48. When you know the business is yearly, set 12 yourself; seasonality in sales measures shows how to confirm it first.
Select the date and value columns and choose Data > Forecast Sheet. According to Microsoft's Forecast Sheet guide, Excel creates a new worksheet with a table of historical and predicted values and a chart, using FORECAST.ETS and FORECAST.ETS.CONFINT. The options cover the forecast start, the confidence interval (95% by default), seasonality (detected or set manually), how missing points are filled, how duplicates are aggregated, and whether to include forecast statistics. It tolerates up to 30% missing points. Set seasonality manually there too, for the reason above.
Neither knows about your pipeline, a price increase or a lost customer. Both project the history forward. On the 24-month data, FORECAST.LINEAR on the dates gives 1,065.35 for January 2026, because a straight line averages the seasonal low away. Where these fit among other methods is covered in predictive analytics.
Covirage fits statistical models on your uploaded sales history per segment, reports the interval as well as the point, and tracks accuracy against actuals; the external AI model explains the forecast and never produces the figures. See forecasts for sales teams, checked against actuals every month, and how to measure forecast accuracy and bias in Excel to test any of the forecasts above once the months arrive. For a bottom-up annual method, see sales projection; for a workbook that combines the baseline with the pipeline, the sales forecast template.
None in the result. Microsoft replaced FORECAST with FORECAST.LINEAR in Excel 2016 as part of the new forecasting functions and kept FORECAST for compatibility. Both fit a least-squares straight line and return the value at a given x.
Microsoft describes it as the AAA version of the Exponential Smoothing (ETS) algorithm: level, trend and seasonality, each updated with weights that favor recent data. It needs a timeline with a constant step and returns a point forecast; FORECAST.ETS.CONFINT gives the interval around it.
Microsoft lists #NUM! when Excel cannot find a constant step in the timeline, or when seasonality is outside 0 to 8,760. Check that the dates are evenly spaced, set data_completion and aggregation deliberately, and make sure seasonality is a whole number in range.
Microsoft lists the forecasting functions for Excel 2016, 2019, 2021, 2024 and Microsoft 365, and says FORECAST.ETS is not available in Excel for the web, iOS or Android. Forecast Sheet is documented for Excel for Windows; check Microsoft's page for your version.