2025 Week 41 | Sigma: Can You Make an Interactive Forecasting Tool?

Can you build an interactive forecasting app?

Introduction

This week, we’re turning forecasting into action. Using Sigma’s RegressionSlope() and RegressionIntercept() functions, you’ll build a live forecasting app that projects future outcomes—and adjusts in real time.

No Excel exports. No FORECAST() formulas. Just your dataset, an input table, and a few calculated fields to model linear, compound, and growth-from-actual trends.

The goal isn’t just to visualize forecasts – it’s to simulate them. You’ll create interactive optimism and pessimism controls that instantly reshape the slope of your trend, widening or narrowing the forecast fan as users tweak their assumptions.

This challenge shows how Sigma can move from reporting to scenario modeling – turning static dashboards into dynamic, decision-ready tools.

Need Access to Sigma?

Note: You will only have view access to WOW Workbooks, Folders, and Workspaces, not edit access. Please create your WOW Workbooks under “My Documents.” We suggest creating a folder to organize all your workbooks. 

Requirements

Dataset

Use PLUGS_ELECTRONICS_HANDS_ON_LAB_DATA (Sigma Sample) or any dataset with:

  • Week or Date
  • Quantity or Sales (your metric to forecast)
  • Enough history (at least 8–12 weeks of data)
Create Your Controls & Input Table
  • Add a Numeric Control named CE-Optimism → default 10
  • Add a Numeric Control named CE-Pessimism → default 10
  • (Optional) Add a Numeric Control named CE-GrowthRate → default 5
  • Add an Input Table to create future weeks
    • Create row numbers
    • HINT: Lookup(Max([Historical Weekly/Week]), [Key], [Historical Weekly/Key])
Build the Base Calculations

Index
Rank([Week]) Sort ascending

Regression Functions
RegressionSlope([Week Quantity], [Index])

RegressionIntercept([Week Quantity], [Index])

Last Historical Reference

LastHistActual = Max(If([Type] = “Historical”, [Week Quantity], Null))

LastHistIndex  = Max(If([Type] = “Historical”, [Index], Null))

Baseline Forecast (Linear)
If(

  [Type] = “Future”,

  [LastHistActual] + ([Index] – [LastHistIndex]) * [Slope],

  [Week Quantity]

)

Add Scenario Slopes

Sign-aware logic keeps optimism and pessimism intuitive whether the slope is positive or negative.

Slope_Optimistic

If([Slope] < 0,

  [Slope] * (1 – [CE-Optimism] / 100),

  [Slope] * (1 + [CE-Optimism] / 100)

)

Do the same for Pessimistic

Forecast Fields

Use the same structure for all forecasts, just swapping the slope term.

Optimistic

If([Type] = “Future”,

  [LastHistActual] + ([Index] – [LastHistIndex]) * [Slope_Optimistic],

  [Week Quantity]

)

Do the same for Pessimistic

Add Compound and Growth-from-Actuals Logic

Create a helper column to adjust for the percentage math

HINT: If(Abs([CE-Growth]) >= 1, [CE-Growth] / 100, [CE-Growth])

Compound Growth Forecast see control element
(uses a percentage growth rate applied cumulatively)

If([Type] = “Future”,

  [LastHistActual] * Power(1 + [CE-GrowthRate] / 100,

    [Index] – [LastHistIndex]),

  [Week Quantity]

)

Growth-from-Actuals Forecast
(uses week-over-week deltas between historical values)

WeeklyDelta = Avg(If([Type] = “Historical”,

  [Week Quantity] – Lag([Week Quantity], 1), Null))

If([Type] = “Future”,

  [LastHistActual] + ([Index] – [LastHistIndex]) * [WeeklyDelta],

  [Week Quantity]

)

Create the Charts

Chart 1: “Three Views of Change”

  • Plot Linear Forecast, Compound Growth, and Growth-from-Actuals
  • Highlight differences over time
  • HINT: re-order the values to hide some lines or make the line weight heavier

Chart 2: “Forecast Scenarios”

  • Plot Historical, Linear, Optimistic, and Pessimistic lines
  • Add dynamic color legend
  • Optional: display optimism/pessimism % above chart

Make It Interactive

  • Bind CE-Optimism, CE-Pessimism, and CE-GrowthRate to calculations
  • As users adjust them, watch slope or growth-rate changes redraw the forecast in real time

Dataset

Sigma Sample Database:

 

Share

After you finish your workout, share on LinkedIn, Sigma’s Community page, (or Twitter) using the hashtags #WOW2024 and #SigmaComputing, and tag Jess Batten, Ashley BennettEric HeidbrederKatrina Menne, Carter Voekel, and Michal Shaffer!

Create an interactive, sharable version of your solution here.

Also, make sure to fill out the Submission Tracker so that we can count you as a participant this week to track our participation throughout the year.

Solution

Coming soon, amigos.

Scroll to Top