Skip to Content Zhiwei Zhu Header

Chapter 8

Designing Decisions with Forecasts
An End-to-End Forecasting in Action, Accountability, and Uncertainty (with a Capstone Project Assignment)

 When forecasts disagree, most organizations hesitate.

When forecasts agree, most organizations act.

But in practice, the most important decisions are made when forecasts disagree the most—when uncertainty is highest, signals are mixed, and the cost of delay or overreaction is greatest.

The real challenge is not forecasting the future.

It is deciding what to do when the future refuses to cooperate.

Introduction

In the previous chapters, you learned how to identify structure in time, build forecasting models, and evaluate their behavior. You developed tools to understand trend, seasonality, dependence, and model performance. By Chapter 7, you also saw how multiple models—classical, signal-driven, and AI-based—can produce different views of the same future.

This chapter represents a shift.

We move from forecast construction to decision system design.

The central question is no longer:

Which model is best?

Instead, it becomes:

How should an organization act when models provide different, incomplete, and uncertain views of the future?

This distinction defines the philosophy of Forecast-by-Design.

A traditional forecasting approach treats forecasts as outputs.
A forecast-by-design approach treats forecasts as inputs into a governed decision system.

In this chapter, you will learn how to:

  • Translate forecasts into threshold-based decisions
  • Use model disagreement as structured evidence about risk
  • Design triggers, monitoring systems, and escalation rules
  • Communicate uncertainty in a way that enables responsible action

The goal is not to eliminate uncertainty.

The goal is to organize uncertainty so decisions remain coherent, defensible, and timely.

This is where forecasting becomes organizational intelligence.

Chapter Roadmap & Learning Flow

This chapter follows the Forecast-by-Design reasoning progression:

Observe → Understand → Practice → Reason → Design → Decide → Integrate → Consolidate → Continue

  • Observe: The opening story exhibits a real-world public health crisis where forecasts disagree and decisions cannot wait
  • Understand: The conceptual sections demonstrate how forecasts become decision instruments through thresholds, triggers, and governance
  • Practice: SkillBox 8 uses multi-lens forecasting outputs to assess threshold risk and lead time
  • Reason: LearningLab 8 interpretes disagreement across models as structured evidence about uncertainty
  • Design: DesignStudio 8 builds a decision system with triggers, monitoring rules, and escalation logic
  • Decide: Mini-Case 8 Makes a defensible recommendation under uncertainty
  • Integrate: Chapter Insight and NorthStar System Update connect structure, behavior, and trust into a decision system
  • Consolidate: Check Your Learning 8 tests your reasoning through structured assessment
  • Continue: The chapter extends forecasting into organizational intelligence and system design

Four Analytical Pillars

Primary Pillar

  • Decision Design: designing threshold-based decision systems that translate uncertainty into structured responses.

Supporting Pillars

  • Analytical Logic: Interpreting multi-model behavior and disagreement
  • AI-Enabled Reasoning: Using models and AI to explore scenarios and stress-test assumptions
  • Data Understanding: Recognizing how data limitations affect decision confidence

Learning Outcomes

After completing this chapter, students will be able to:

  1. Translate multi-model forecasts into defensible decision systems rather than selecting a single “best” model
  2. Design thresholds, triggers, and monitoring systems that connect forecasts to action
  3. Interpret model disagreement as evidence about risk and uncertainty, not failure
  4. Evaluate decisions based on robustness across scenarios, not point accuracy
  5. Communicate uncertainty in a way that supports accountability and action
  6. Integrate Data, Models, AI, and Judgment into a coherent decision process

Chapter Question

How do organizations design decisions that remain defensible when forecasts disagree and uncertainty is unavoidable?

 

Opening Story — Forecasting Public Health Emergencies

In early spring of a recent year, analysts at a large U.S. state public health agency received an urgent request:

Produce an eight-week outlook for hospital demand.

At first glance, the request appeared straightforward. Historical data suggested a familiar seasonal surge. A baseline model projected manageable growth—well within capacity.

But other signals told a different story.

Mobility data showed increased movement across regions. Weather conditions shifted toward higher transmission risk. Search behavior suggested rising public concern.

A machine learning model projected a surge beyond hospital capacity.

An LSTM model oscillated unpredictably depending on recent data weighting.

No model was clearly wrong.

Each was answering a different structural question.

The conversation shifted.

Leaders no longer asked:

What will happen?

They began asking:

  • When would we need to act?
  • How much warning do we have?
  • What is the cost of acting too early vs too late?

At that moment, the analytics team recognized a critical truth:

Even a perfectly accurate forecast would not solve the decision problem.

So they reframed the task.

They stopped asking which model was best.

They began designing:

  • decision thresholds
  • trigger conditions
  • monitoring systems
  • contingency plans

Forecasts became inputs—not answers.

And the goal became clear:

Design a decision system that leadership can trust when the future is uncertain.

8.1 From Prediction to Perspective: Designing Forecasting Lenses

In earlier chapters, forecasting was developed as a disciplined process for extracting structure from time. Models were evaluated based on how well they captured patterns such as trend, seasonality, and noise. This perspective remains essential—but it is not sufficient.

Organizations do not—and should not—act on a single “best” empirically derived forecast. They act on interpretations of possible futures.

A single forecast—even a highly accurate one—represents only one view of what may happen. It does not convey how outcomes might differ under alternative conditions, nor does it support decisions that must account for risk, asymmetry, and uncertainty.

In practice, this limitation creates a recurring problem. Decision-makers are often presented with a central forecast accompanied by technical measures of uncertainty, such as confidence intervals. While these additions acknowledge variability, they still frame the future as a single trajectory with a margin of error. For many managerial decisions, this is not enough.

A supply chain manager deciding how much inventory to commit, a finance leader planning budgets, or an operations team scheduling labor does not simply ask, “What is most likely?” They also ask:

  • What if demand is stronger than expected?
  • What if recovery slows or reverses?
  • What scenarios would require different actions today?

These questions are not fully answered by a single forecast, even when uncertainty is quantified. They require structured ways of thinking about multiple plausible futures.

The Limitation of “One Best Forecast” Thinking

As discussed in earlier chapters, relying on a single forecast can unintentionally narrow decision-making.

  • It encourages overconfidence, especially when accuracy metrics are strong.
  • It obscures asymmetric risks, where downside consequences may be more severe than upside gains.
  • It limits preparedness, as alternative outcomes are not explicitly considered.

Even when confidence intervals are wide, they often remain abstract. Decision-makers may struggle to translate statistical ranges into concrete actions. As a result, these outputs are sometimes simplified, ignored, or replaced by informal judgment.

The issue is not a lack of data or modeling sophistication. It is a design limitation: the forecast is presented as a single answer, rather than as a structured set of perspectives.

Act on a Shift in Design Thinking

This chapter puts the fundamental shift x in this book into action:

From selecting the best forecast → to designing multiple decision-relevant perspectives

Instead of asking only, “Which forecast is most accurate?”, we explore:

“Which views of the future are most useful for making decisions?”

This shift does not replace forecasting models. It reframes how their outputs are organized, interpreted, and used.

Forecasting Lenses: Structuring Perspectives

To practice this shift, we introduce the concept of forecasting lenses.

A forecasting lens is a structured way of viewing the future, designed to highlight a particular aspect of uncertainty, risk, or opportunity. Each lens represents a coherent perspective, not just a statistical variation.

For example:

  • A baseline lens may reflect expected conditions under current trends.
  • An upside lens may explore stronger-than-expected demand or favorable shifts.
  • A downside lens may examine risks such as disruption, slowdown, or constraint.

Each lens is not merely a number—it is a narrative supported by data, linking assumptions, patterns, and implications.

From Outputs to Decisions

The value of forecasting lenses lies in how they connect analysis to action.

Instead of asking decision-makers to interpret abstract uncertainty, lenses translate variation into decision-relevant scenarios:

  • Inventory plans can be stress-tested across demand levels.
  • Staffing decisions can be aligned with seasonal peaks under different conditions.
  • Financial projections can reflect both optimistic and conservative paths.

In this way, forecasting becomes not just a predictive tool, but a decision design system—one that supports preparation, comparison, and adaptation.

Positioning Within Forecast by Design

This shift represents a natural extension of the book’s core philosophy.

Earlier chapters focused on:

  • Seeing structure (Data Understanding)
  • Representing structure (Analytical Logic)
  • validating and refining forecasts

This chapter moves further:

  • Designing how forecasts are used (Decision Design)
  • Expanding reasoning through multiple perspectives (AI-Enabled Reasoning)

Forecasting is no longer just about estimating what will happen. It becomes a way to organize thinking about what could happen—and how to respond.

Transition Forward

In the sections that follow, we will examine how forecasting lenses are constructed, how they differ from traditional scenario analysis, and how they can be integrated into organizational decision processes.

The goal is not to replace forecast modeling, but to extend it—transforming forecasts from isolated predictions into structured, decision-ready perspectives.

8.2 NorthStar in Action — From Forecast Outputs to Decision Action

At NorthStar Retail Group, forecasting had become routine.

Each week, the analytics team produced updated forecasts for Everyday Essentials™ products. Models had improved steadily. Trend and seasonality were well understood. Accuracy metrics were stable.

From a technical standpoint, the system was working.

Yet operational tension remained.

As the planning team prepared for upcoming inventory decisions, they faced a familiar question:

How should we act when multiple forecasts point in different directions?

From Output to Action

Consider the Everyday Essentials product line:

  • Current weekly sales: 18,500 units
  • Inventory pressure threshold: +20% above baseline demand

As a part of a decision system, a three forecasting lenses design is selected to provide different signals:

  • A baseline model suggested stable demand near current levels
  • A signal-driven model (incorporating search trends) indicated steady growth
  • A machine learning model suggested a sharper potential surge

Each model was credible. Each was supported by data.

Yet together, they created ambiguity.

Multiple plausible forecasts—but no clear action.

Analyst Reasoning in Action

A common reaction is to ask:

Which model should we trust?

A more disciplined response is:

What decision should we make, given that any of them could be wrong?

The analyst reframed the situation in decision terms:

  • If demand remains stable → increasing inventory creates unnecessary cost
  • If demand surges → failing to prepare leads to stockouts and lost revenue

The problem was no longer about selecting the “best” forecast.
It became a question of risk asymmetry:

What is the cost of being wrong in each direction?

If stockouts carry greater organizational risk than excess inventory, the decision system may justify earlier preparation—even without model agreement.

Decision Systems as Translators

At this point, forecasting alone is not enough. A decision system is required to translate signals into action.

Such a system defines:

  • What signals matter (e.g., demand growth indicators, threshold breaches)
  • When action is triggered (e.g., inventory exceeds +20% threshold)
  • Who is responsible (e.g., supply chain, category managers)
  • How outcomes are monitored (e.g., stockouts, holding costs, forecast error over time)

Without this structure, forecasts remain informational.
With it, they become operational.

From Lenses to Decisions

NorthStar integrated the three forecasts as decision lenses, not competing answers.

  • The baseline lens anchored expectations under stable conditions
  • The signal-driven lens highlighted gradual upward pressure
  • The machine learning lens exposed the risk of rapid demand acceleration

Rather than choosing one, the organization designed a response across them:

  • Inventory commitments were set above baseline but below surge levels
  • Contingency capacity was reserved in case the surge materialized
  • Monitoring thresholds were tightened to trigger rapid adjustment

The question was no longer:

Which forecast is correct?

It became:

How do we act responsibly across multiple plausible futures?

Managerial Meaning

This case illustrates a critical principle:

Forecast accuracy alone does not determine decision quality.

The goal is not to find a perfect forecast.
It is to design a system that supports timely, accountable, and risk-aware action under uncertainty.

At NorthStar, the shift from output to action did not require new data.
It required a new way of organizing and using what was already known.

8.3 From Signals to Action — Designing Thresholds

Forecasts describe what might happen.
Thresholds define when that possibility becomes actionable.

NorthStar Threshold Context

For the Everyday Essentials product line, NorthStar defines:

  • Inventory risk threshold: +20% above baseline demand

This threshold reflects operational realities:

  • Warehouse capacity limits
  • Supplier lead times
  • Staffing constraints

Thresholds are therefore not arbitrary—they are design choices grounded in system capacity.

Reasoning with Thresholds

Suppose:

  • Current demand: 18,500 units
  • Threshold level: 22,200 units

A signal-driven lens suggests demand may reach 21,800 within four weeks, with uncertainty bands that could exceed the threshold.

The analyst evaluates:

  • Distance to threshold (How close are we?)
  • Rate of change (How fast are we approaching?)
  • Uncertainty range (How likely is crossing?)

From Line to Zone

Rather than treating 22,200 as a hard cutoff, the analyst defines decision zones:

  • 18,500–21,000 → Normal range
  • 21,000–22,200 → Watch zone
  • >22,200 → Action zone

This transforms a threshold from a static number into a contextual decision boundary.

Figure 8.1 Threshold Zones for NorthStar Inventory Decisions. Figure 8.1 Threshold zones for NorthStar inventory decisions. Rather than treating a single threshold as an all-ornothing trigger, the figure shows how watch, action, and critical zones help translate demand forecasts into staged operational responses. 

Sample Action-Trigger Language

To make thresholds operational, NorthStar establishes explicit trigger rules through cross-functional collaboration:

  • If demand enters the watch zone and upward signals persist for two consecutive weeks → initiate supplier coordination review.
  • If projected demand exceeds the threshold within the next four weeks → pre-position inventory and secure additional capacity.
  • If multiple lenses indicate threshold crossing risk → escalate to supply chain leadership for early action.

These statements convert forecasts into clear, accountable actions.

Managerial Meaning

Thresholds are not about precision.
They are about preparedness.

A threshold is a commitment to act before uncertainty becomes failure.

8.4 From Models to Lenses — Interpreting Multiple Futures

At NorthStar, different models or lenses rarely agree perfectly.
This is not a flaw—it is a feature.

Three Lenses, Three Perspectives

For the same product line:

  • Baseline lens stable demand
  • Signal-driven lens gradual increase
  • Machine learning lens potential sharp surge

Each represents a different interpretation of the environment.

Where Do Lenses Come From?

Importantly, lenses are not limited to model outputs. They can be constructed from multiple sources:

  • Model-based lenses
    (e.g., ARIMA, Prophet, machine learning outputs)
  • Domain-informed scenarios
    (e.g., promotional campaigns, supplier disruptions, macroeconomic shifts)
  • Hybrid lenses
    (combining model projections with business assumptions)

Key Principle:

A forecasting lens is a decision-relevant perspective, not just a statistical projection.

Reasoning Through Lenses

Instead of asking:

Which model is correct?

The analyst asks:

  • Which lens warns for foundational shift and which lens is more sensitive to short term fluctuation?
  • What scenario does each lens represent?
  • What assumptions drive it?
  • What risks emerge if it occurs?

Scenario Mapping

Scenario Mapping

Lens

Scenario

Business Risk

Baseline

steady demand

over-preparation

Signal-driven

gradual rise

delayed scaling

ML / Surge

sharp increase

stockout risk

Figure 8.2 - Model Disagreement as Scenario Space. Model disagreement as scenario space. Baseline, signal-driven , and stress-sensitive forecast lenses are shown together with watch, action, and critical threshold lines, allowing disagreement to be interpreted as decision-relevant scenario space rather than as a competition for a single winning forecast.

Decision Use of Lenses

Lenses become useful when translated into:

  • Scenario planning
  • Trigger conditions
  • Risk prioritization

For example:

  • If both signal-driven and surge lenses indicate upward pressure → enter watch zone early
  • If domain signals (e.g., promotion + search trends) align with surge lens → accelerate preparation

Managerial Meaning

Agreement can create false confidence.
Diverse lenses create structured awareness.

They do not compete to be right.
They collectively describe what could happen.

8.5 Designing for Decision Robustness

At NorthStar, decisions must hold even when forecasts are uncertain.

Competing Strategies

Strategy A — Wait

  • Avoid excess inventory
  • Risk missing demand surge

Strategy B — Prepare Early

  • Incur holding costs
  • Reduce stockout risk

Analyst Reasoning

The analyst evaluates:

  • Worst-case outcomes
  • Likelihood of different lenses
  • Cost asymmetry

If stockouts significantly damage revenue and customer trust, early preparation may be preferred, even if the surge is uncertain.

Robustness Principle

A robust decision:

  • Does not rely on one lens being correct
  • Performs reasonably across multiple scenarios
  • Explicitly accounts for asymmetric risk

Managerial Meaning

Robustness reframes decision-making:

Not “What is most likely?”
but “What decision protects us across plausible futures?”

8.6 From Forecasting Systems to Decision Systems

This chapter completes the logic by designing decision systems.

NorthStar Decision System (Simplified)

Inputs

  • Baseline lens
  • Signal-driven lens
  • Surge / ML lens
  • Domain signals (e.g., promotions, external indicators)

Interpretation

  • Agreement vs disagreement
  • Signal persistence
  • Threshold proximity

Decision Rules

  • Threshold: +20% demand
  • Trigger: sustained upward signals across lenses

Actions

  • Inventory adjustment
  • Supplier coordination
  • Capacity planning

Governance

  • Supply chain leadership ownership
  • Defined escalation protocol

Monitoring

  • Weekly review cycle
  • Cross-lens comparison

Figure 8.2 - Forecast-to-Decision System Architecture (NorthStar). Forecasts create value only when they past through interpretation, decision rules, action, governance, and mointoring within a structured organizational system.

Final Insight

Forecasts generate insight.
Decision systems generate action.

The value of forecasting is realized only when it is embedded in a system that defines:

  • what signals matter
  • when to act
  • how to respond
  • who is accountable

Forecasting, by design, is not about prediction alone.
It is about structured action under uncertainty.

SkillBox 8 — Building a Decision-Ready Forecasting System

From Multi-Lens Outputs to Threshold Signals and Governance Logic

Purpose

This SkillBox develops your ability to transform forecasting outputs into decision-ready signals.

You are not evaluated on model optimization.

You are evaluated on whether you can:

  • produce comparable outputs across lenses,
  • interpret them in decision terms, and
  • translate disagreement into threshold-aware signals.

NorthStar Context

You are supporting NorthStar RetailGroup, which must decide whether to increase inventory and staffing capacity ahead of a potential demand surge in essential goods.

Leadership has defined a supply advisory demand level of 3500 unit per week and a key threshold:

Inventory ratio = 1 – sales/3500 < 20% triggers operational escalation

Your task is to determine:

  • When might this threshold be crossed?
  • How much warning is available?
  • How confident should leadership be?

Dataset

Use the primary dataset: essentials_sales.csv with variables:

  • week — calendar date
  • week_index — sequential weekly index
  • sales — weekly unit sales
  • promotion — promotion indicator
  • holiday — holiday indicator
  • inventory — inventory ratio (e.g., 20 = 20%)

What You Will Do

You will construct three forecasting lenses:

  • Lens A (Baseline Structure) → SARIMA
  • Lens B (Signal-Responsive) → Prophet + signals
  • Lens C (Stress Lens) → GBM

Then generate decision-oriented outputs:

SB8-1: Multi-lens forecast comparison (Decision-Time View)

SB8-2: Inventory threshold timing analysis

SB8-3: Residual stability diagnostic (Lens A)

SB8-4: Signal persistence assessment

SB8-5: Feature importance (Lens C)

Implementation (Python)

# =========================================================
# SkillBox 8 — Building a Decision-Ready Forecasting System
# NorthStar RetailGroup | 52-week forward forecast
# =========================================================
# Purpose:
# Build three forecasting lenses and convert them into
# threshold-aware inventory signals for decision design.
#
# Lenses:
#   Lens A — SARIMAX baseline
#   Lens B — Prophet + event signals
#   Lens C — GBM stress lens
#
# Decision threshold:
#   Inventory ratio < 0.20 triggers operational escalation
#
# Design choice:
#   Promotion and holiday indicators in the forecast period
#   repeat at the same week positions as in the previous year.
#
# Inventory assumption in this version:
#   inventory ratio = 1 - forecasted sales / 3000
#
# Interpretation:
#   higher sales -> lower inventory ratio
#   higher inventory ratio -> safer
#   lower inventory ratio -> more pressure
# =========================================================

import warnings
warnings.filterwarnings("ignore")

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

from statsmodels.tsa.statespace.sarimax import SARIMAX
from prophet import Prophet
from sklearn.ensemble import GradientBoostingRegressor

# ---------------------------------------------------------
# 0) Load and prepare data
# ---------------------------------------------------------
df = pd.read_csv("essentials_sales.csv")

required_base_cols = ["week", "sales", "promotion", "holiday"]
missing_base = [c for c in required_base_cols if c not in df.columns]
if missing_base:
    raise ValueError(f"Missing required columns: {missing_base}")

df["week"] = pd.to_datetime(df["week"])
df = df.sort_values("week").reset_index(drop=True)

if "week_index" not in df.columns:
    df["week_index"] = np.arange(1, len(df) + 1)

df["sales"] = pd.to_numeric(df["sales"])
df["promotion"] = pd.to_numeric(df["promotion"])
df["holiday"] = pd.to_numeric(df["holiday"])

inventory_threshold = 0.20
inventory_divisor = 3000.0

print("Columns available:", list(df.columns))
print("\nData preview:")
print(df.head())

# ---------------------------------------------------------
# 1) Forecast horizon = 52 weeks
# ---------------------------------------------------------
h = 52

if len(df) < 52:
    raise ValueError("Need at least 52 weeks of history for this SkillBox.")

if len(df) < 104:
    print("\nWarning: fewer than 104 weeks of history. Annual seasonality may be less stable.")

last_week = df["week"].iloc[-1]
future_weeks = pd.date_range(start=last_week + pd.Timedelta(weeks=1), periods=h, freq="W")

# ---------------------------------------------------------
# 2) Repeat promotion/holiday timing from previous year
# ---------------------------------------------------------
last_year_events = df[["promotion", "holiday"]].iloc[-52:].reset_index(drop=True)

future_exog = pd.DataFrame({
    "week": future_weeks,
    "promotion": last_year_events["promotion"].values,
    "holiday": last_year_events["holiday"].values,
    "week_index": np.arange(
        df["week_index"].iloc[-1] + 1,
        df["week_index"].iloc[-1] + h + 1
    )
})

# ---------------------------------------------------------
# 3) Historical plot with event markers
# ---------------------------------------------------------
plt.figure(figsize=(15, 6))
plt.plot(df["week"], df["sales"], label="Historical Sales", color="black", alpha=0.45, lw=1.3)

promo = df[df["promotion"] == 1]
holiday = df[df["holiday"] == 1]

plt.scatter(promo["week"], promo["sales"], marker="^", s=45, label="Promotion Event")
plt.scatter(holiday["week"], holiday["sales"], marker="s", s=35, label="Holiday Event")

plt.title("Historical Sales with Promotion and Holiday Markers")
plt.xlabel("Week")
plt.ylabel("Sales")
plt.grid(True, linestyle=":", alpha=0.5)
plt.legend()
plt.tight_layout()
plt.show()

# =========================================================
# LENS A — SARIMAX baseline
# =========================================================
print("\nFitting Lens A — SARIMAX...")

exog_cols = ["promotion", "holiday"]

lensA = SARIMAX(
    df["sales"],
    exog=df[exog_cols],
    order=(1, 1, 1),
    seasonal_order=(1, 1, 1, 52),
    trend="n",
    enforce_stationarity=False,
    enforce_invertibility=False
).fit(disp=False)

A_fc = lensA.get_forecast(steps=h, exog=future_exog[exog_cols])
A_mean = np.asarray(A_fc.predicted_mean, dtype=float)

# =========================================================
# LENS B — Prophet + signals
# =========================================================
print("Fitting Lens B — Prophet + signals...")

p_train = df.rename(columns={"week": "ds", "sales": "y"})[
    ["ds", "y", "promotion", "holiday"]
].copy()

p_future = future_exog.rename(columns={"week": "ds"})[
    ["ds", "promotion", "holiday"]
].copy()

prophet_model = Prophet(
    yearly_seasonality=True,
    weekly_seasonality=False,
    daily_seasonality=False
)
prophet_model.add_regressor("promotion")
prophet_model.add_regressor("holiday")
prophet_model.fit(p_train)

B_fc = prophet_model.predict(p_future)
B_mean = B_fc["yhat"].values

# =========================================================
# LENS C — GBM stress lens
# =========================================================
print("Fitting Lens C — GBM stress lens...")

def add_features(data):
    d = data.copy()
    d["month"] = d["week"].dt.month
    d["weekofyear"] = d["week"].dt.isocalendar().week.astype(int)

    for lag in [1, 2, 4, 13, 26, 52]:
        d[f"lag_{lag}"] = d["sales"].shift(lag)

    d["roll_4"] = d["sales"].shift(1).rolling(4).mean()
    d["roll_13"] = d["sales"].shift(1).rolling(13).mean()
    return d

df_gbm = add_features(df)

gbm_features = [
    "promotion", "holiday", "month", "weekofyear",
    "lag_1", "lag_2", "lag_4", "lag_13", "lag_26", "lag_52",
    "roll_4", "roll_13"
]

train_gbm = df_gbm.dropna().copy()

gbm = GradientBoostingRegressor(
    n_estimators=400,
    learning_rate=0.03,
    max_depth=3,
    random_state=7
)
gbm.fit(train_gbm[gbm_features], train_gbm["sales"])

# Recursive forecast
gbm_preds = []
gbm_history = df.copy()

for i in range(h):
    next_row = future_exog.iloc[[i]].copy()

    tmp = pd.concat(
        [
            gbm_history[["week", "sales", "promotion", "holiday"]],
            pd.DataFrame({
                "week": next_row["week"].values,
                "sales": [np.nan],
                "promotion": next_row["promotion"].values,
                "holiday": next_row["holiday"].values
            })
        ],
        ignore_index=True
    )

    tmp = add_features(tmp)
    x_next = tmp.iloc[-1:][gbm_features]
    yhat = float(gbm.predict(x_next)[0])
    gbm_preds.append(yhat)

    gbm_history = pd.concat(
        [
            gbm_history,
            pd.DataFrame({
                "week": next_row["week"].values,
                "sales": [yhat],
                "promotion": next_row["promotion"].values,
                "holiday": next_row["holiday"].values,
                "week_index": [next_row["week_index"].values[0]]
            })
        ],
        ignore_index=True
    )

C_mean = np.array(gbm_preds)

# =========================================================
# 4) Convert forecasted sales into inventory ratios
# =========================================================
# Requested assumption:
#   inventory ratio = 1 - forecasted sales / 3000

def to_inventory_ratio(sales_array, divisor=3000.0):
    ratio = 1.0 - (np.asarray(sales_array, dtype=float) / divisor)
    return np.clip(ratio, 0.0, 1.0)

A_inv = to_inventory_ratio(A_mean, inventory_divisor)
B_inv = to_inventory_ratio(B_mean, inventory_divisor)
C_inv = to_inventory_ratio(C_mean, inventory_divisor)

# Historical implied inventory ratio under same assumption
df["inventory_ratio_implied"] = to_inventory_ratio(df["sales"], inventory_divisor)

# =========================================================
# 5) Threshold timing summary
# =========================================================
def first_below(arr, threshold):
    idx = np.where(np.asarray(arr) < threshold)[0]
    return None if len(idx) == 0 else int(idx[0] + 1)

threshold_table = pd.DataFrame({
    "Lens": ["A (SARIMAX)", "B (Prophet+signals)", "C (GBM)"],
    "First week inventory ratio < 0.20": [
        first_below(A_inv, inventory_threshold),
        first_below(B_inv, inventory_threshold),
        first_below(C_inv, inventory_threshold)
    ]
})

print("\nSB8-2 Threshold Timing Table")
print(threshold_table)

# =========================================================
# SB8-1 — Multi-lens sales forecast
# =========================================================
plt.figure(figsize=(16, 8))
plt.plot(df["week"], df["sales"], label="History (Sales)", color="black", alpha=0.45, lw=1.2)

plt.plot(future_weeks, A_mean, label="Lens A — SARIMAX", lw=2.3)
plt.plot(future_weeks, B_mean, label="Lens B — Prophet + signals", lw=2.1)
plt.plot(future_weeks, C_mean, label="Lens C — GBM stress lens", lw=2.0, linestyle="--")

plt.axvline(df["week"].iloc[-1], color="gray", linestyle="--", label="Forecast Start")
plt.title("SB8-1 — Multi-Lens Sales Forecast (52-Week Decision-Time View)")
plt.xlabel("Week")
plt.ylabel("Sales")
plt.legend(loc="upper left", bbox_to_anchor=(1, 1))
plt.grid(True, linestyle=":", alpha=0.6)
plt.tight_layout()
plt.show()

# =========================================================
# SB8-2 — Inventory threshold timing plot
# =========================================================
plt.figure(figsize=(16, 8))

plt.plot(future_weeks, A_inv, label="Lens A inventory ratio", lw=2.2)
plt.plot(future_weeks, B_inv, label="Lens B inventory ratio", lw=2.0)
plt.plot(future_weeks, C_inv, label="Lens C inventory ratio", lw=2.0, linestyle="--")

plt.axhline(inventory_threshold, color="black", linestyle="--", label="Threshold = 0.20")
plt.axvline(df["week"].iloc[-1], color="gray", linestyle="--")

plt.title("SB8-2 — Inventory Threshold Timing by Lens")
plt.xlabel("Week")
plt.ylabel("Inventory ratio (higher = safer)")
plt.legend(loc="upper left", bbox_to_anchor=(1, 1))
plt.grid(True, linestyle=":", alpha=0.6)
plt.tight_layout()
plt.show()

# =========================================================
# SB8-3 — Residual stability diagnostic (Lens A)
# =========================================================
fit_A = np.asarray(lensA.fittedvalues, dtype=float)
n = min(len(df["sales"]), len(fit_A))

resid_A = df["sales"].iloc[-n:].to_numpy(dtype=float) - fit_A[-n:]
resid_A = pd.Series(resid_A, index=df["week"].iloc[-n:])
roll_mean = resid_A.rolling(8).mean()

plt.figure(figsize=(14, 5))
plt.plot(resid_A.index, resid_A.values, label="Residuals (Lens A)")
plt.plot(roll_mean.index, roll_mean.values, label="8-week rolling mean", lw=2)
plt.axhline(0, linestyle="--", color="gray")
plt.title("SB8-3 — Residual Stability Diagnostic (Lens A)")
plt.xlabel("Week")
plt.ylabel("Residual (Actual − Fitted)")
plt.legend()
plt.grid(True, linestyle=":", alpha=0.5)
plt.tight_layout()
plt.show()

# =========================================================
# SB8-4 — Signal persistence panel
# =========================================================
plt.figure(figsize=(16, 6))
plt.plot(df["week"], df["promotion"], label="Historical promotion", lw=1.8)
plt.plot(df["week"], df["holiday"], label="Historical holiday", lw=1.8)

plt.plot(future_weeks, future_exog["promotion"], label="Forecast promotion pattern", linestyle="--")
plt.plot(future_weeks, future_exog["holiday"], label="Forecast holiday pattern", linestyle="--")

plt.axvline(df["week"].iloc[-1], linestyle="--", color="gray")
plt.title("SB8-4 — Signal Persistence Assessment (Repeated Prior-Year Timing)")
plt.xlabel("Week")
plt.ylabel("Signal value")
plt.legend(loc="upper left", bbox_to_anchor=(1, 1))
plt.grid(True, linestyle=":", alpha=0.5)
plt.tight_layout()
plt.show()

# =========================================================
# SB8-5 — Feature importance
# =========================================================
importances = pd.Series(gbm.feature_importances_, index=gbm_features).sort_values(ascending=False)

print("\nSB8-5 Feature Importance (Top 12)")
print(importances.head(12))

plt.figure(figsize=(10, 6))
importances.head(12).sort_values().plot(kind="barh")
plt.title("SB8-5 — Lens C Feature Importance")
plt.xlabel("Relative importance")
plt.tight_layout()
plt.show()

# =========================================================
# Optional historical implied inventory plot
# =========================================================
plt.figure(figsize=(16, 5))
plt.plot(df["week"], df["inventory_ratio_implied"], label="Historical implied inventory ratio", lw=2)
plt.axhline(inventory_threshold, color="black", linestyle="--", label="Threshold = 0.20")

plt.title("Historical Implied Inventory Ratio (1 - sales / 3000)")
plt.xlabel("Week")
plt.ylabel("Inventory ratio (higher = safer)")
plt.legend(loc="upper left", bbox_to_anchor=(1, 1))
plt.grid(True, linestyle=":", alpha=0.6)
plt.tight_layout()
plt.show()

# =========================================================
# Export reporting tables
# =========================================================
forecast_table = pd.DataFrame({
    "week": future_weeks,
    "A_sales": A_mean,
    "B_sales": B_mean,
    "C_sales": C_mean,
    "A_inventory_ratio": A_inv,
    "B_inventory_ratio": B_inv,
    "C_inventory_ratio": C_inv
})

forecast_table.to_csv("skillbox8_forecast_outputs.csv", index=False)
threshold_table.to_csv("skillbox8_threshold_timing.csv", index=False)

print("\nSaved output files:")
print("- skillbox8_forecast_outputs.csv")
print("- skillbox8_threshold_timing.csv")

Implementation (R)

Due to space limitations, the R code is not provided here. As an AI-supported learning exercise, interested readers may use a tool such as ChatGPT to translate the provided Python code into R and then learn the R workflow by reverse-engineering the generated code and outputs.

Key Outputs

Historical Data Visualization

Output of the above code. Line chart showing historical sales with promotion and holiday sales markers.

SB8-1 — Multi-Lens Forecast

  • Historical + forecast horizon
  • All lenses

👉 Interpretation

  • Which lens reacts fastest?
  • Which remains anchored?
  • Where does disagreement emerge?

Output of the above code.

SB8-2 — Inventory Threshold Timing Plot (Operational Decision View)

  • Inventory vs threshold
  • First plausible crossing (none)

👉 Interpretation

  • Which lens provides earliest warning?
  • Is the signal strong or marginal?

Output of the above code.

SB8-3 — Residual Stability (Lens A)

  • Rolling residual mean

👉 Interpretation

  • Is the baseline losing stability?
  • Does this weaken trust in anchor assumptions?

Output of the above code.

SB8-4 — Signal Persistence Panel

  • Promotion + Holiday

👉 Interpretation

  • Are signals persist or are there new signals to be considered?
  • Does Lens B reflect structure or noise?

Output of the above code.

SB8-5 — Feature Importance (Lens C)

👉 Interpretation

  • Are predictions driven by lags (memory) or signals?
  • What amplification risk exists?

 Output of the above code.

Optional Historical Inventory Ratio Plot

👉 Interpretation

  • What does the apparent downward inventory ratio drift imply?
  • What is a proper supply advisory level and what should be a trigger for adjustment?

Output of the above code.

Decision Stakes

  • Acting too late → stockouts, lost revenue, reputational damage
  • Acting too early → excess inventory, operational cost
  • Short term reaction → operational adjustment
  • Long term reaction → strategical adjustment

Your analysis must clarify this tradeoff explicitly.

Common Pitfall

Treating models as competitors instead of evidence sources.

Decision Design Insight

A forecast becomes valuable only when it changes when and how you act, or triggers new questions.

Reflection

  • Which lens would you trust for early warning—and why?
  • Where is your confidence weakest?

Bridge to LearningLab

You will now use AI to interpret disagreement and design decision logic without surrendering judgment.

LearningLab 8 — Multi-Lens Forecasting and Decision Design

Using AI as a Learning and Thinking Partner

Structural Identity

This LearningLab reinforces the analytical ideas introduced in the SkillBox by using AI as both a learning partner and a thinking partner, rather than a modeling shortcut.

The objective is to:

  • strengthen conceptual understanding of multi-lens forecasting
  • extend analytical capability in comparing forecast perspectives
  • expand decision-oriented reasoning through thresholds and triggers

This LearningLab reinforces:

  • Data Understanding
  • Analytical Logic
  • AI-Enabled Reasoning

Purpose

In the preceding SkillBox, you constructed and compared multiple forecasting lenses (e.g., baseline, signal-driven, and machine learning perspectives). You observed how the same data can produce different forward-looking signals depending on modeling assumptions and structure.

This LearningLab introduces the next step: using AI to deepen understanding, extend analysis, and explore decision implications of these differences.

AI is used here to:

  • reinforce the concept of multi-lens forecasting
  • surface alternative interpretations of forecast disagreement
  • introduce decision rules based on thresholds and risk
  • expand system-level thinking across operational contexts

AI responses should be treated as hypotheses, not conclusions.

NorthStar Connection

NorthStar analysts have developed three forecasting lenses for weekly demand:

  • A stable baseline reflecting structural trend and seasonality
  • A signal-driven model incorporating external indicators
  • A machine learning model capturing nonlinear patterns

However, the forecasts do not fully agree.

Key questions include:

  • Are differences across lenses meaningful or noise?
  • Which lens should guide which type of decision?
  • When should disagreement trigger action rather than caution?
  • How should thresholds be defined under uncertainty?

To support this process, analysts use AI not to generate answers, but to expand and challenge their reasoning about how forecasts should inform decisions.

Engagement Structure: AI Learning Modes

You will engage with AI at three levels:

Reinforce → Extend → Explore

Work through the modes in order.

Mode 1 — Beginner: Concept Reinforcement

Purpose
Confirm and strengthen your understanding of core concepts from this chapter, especially multi-lens forecasting and decision thresholds.

AI Role

  • explain concepts in alternative ways
  • generate quizzes or checks for understanding
  • provide simple examples of lens comparison
  • serve as a conceptual learning and thinking partner

Suggested Prompts

“Key Concepts from Chapter 8.

  • From Models to Decision Systems
    Forecasts should be translated into structured decision processes rather than selecting a single “best” model.
  • Thresholds, Triggers, and Action Design
    Decision systems define when and how forecasts lead to action through thresholds, escalation rules, and monitoring.
  • Model Disagreement as Risk Information
    Differences across models reveal uncertainty and scenario variation, helping organizations understand potential risks rather than signaling failure.
  • Decision Robustness Across Scenarios
    Effective decisions are evaluated by how well they perform across multiple plausible futures, not just by point forecast accuracy.
  • Integrating Data, Models, AI, and Judgment
    Decision quality depends on combining analytical outputs with human judgment, contextual understanding, and structured governance.”
  • “Using the concepts above, explain multi-lens forecasting in simple terms with a business example.
  • “Using the concepts above, what is the difference between a baseline forecast and a signal-driven forecast?”
  • “Using the concepts above, what are common misunderstandings about using multiple forecasts?”
  • Using the concepts above, explain why multiple forecasts can support better decisions.”
  • “Using the concepts above, create a 10-question on forecast disagreement and decision thresholds.”

Outcome
“I understand how multiple forecasts represent different perspectives and why they are useful.”

Mode 2 — Advanced: Analytical Extension

Purpose
Extend your analytical capability by connecting multi-lens forecasting to evaluation, uncertainty, and system design.

AI Role

  • compare analytical approaches across model families
  • demonstrate evaluation logic under multiple forecasts
  • introduce techniques for combining or interpreting forecasts
  • serve as an analytical learning and thinking partner

Suggested Prompts

  • “Using the concepts above, compare threshold-based decision design with decision tree analysis.”
  • “Using the concepts above, explain how Monte Carlo simulation could support forecast-based decisions.”
  • “Using the concepts above, explain the newsvendor model and its relation to inventory decisions.”
  • “Using the concepts above, explain when optimization models are useful—and when decision rules are preferable.”

Outcome
“I can analyze and compare multiple forecast outputs and connect them to evaluation and uncertainty.”

Mode 3 — Exploration: Decision and Context Expansion

Purpose
Develop judgment by connecting multi-lens forecasting to real decision systems, including risk, timing, and organizational impact.

AI Role

  • simulate real-world decision scenarios
  • connect forecasting to operations, planning, and risk management
  • introduce broader concepts beyond the chapter
  • challenge assumptions and highlight consequences

Suggested Prompts

  • “How should a company use multiple forecasts to make inventory decisions?”
  • “Design a decision rule using three forecast lenses and a risk threshold.”
  • “What is the cost of being wrong in each direction (over-preparation vs under-preparation)?”
  • “Explain the bullwhip effect and how forecast disagreement might amplify it.”
  • “What role could Kalman filtering play in combining multiple signals over time?”

Outcome
“I understand how forecasting systems translate into real decisions under uncertainty.”

Your Task

After completing all three modes:

  1. Review AI-generated responses
  2. Compare them with your own reasoning
  3. Identify useful insights
  4. Identify questionable assumptions
  5. Determine what requires verification

The goal is to evaluate reasoning, not outsource it.

Deliverable

Prepare a short written summary (200–300 words) describing:

  • one key observation from your analysis of forecast lenses
  • one useful AI-generated insight about decision design
  • one AI statement requiring verification or skepticism

Student Responsibility (Required)

You must:

  • verify at least one AI-generated claim
  • replicate at least one reasoning step independently (e.g., threshold logic)
  • identify at least one AI overgeneralization or limitation

AI expands analytical range but does not replace analytical responsibility.

Reflection

  • What did AI help you understand more clearly about multi-lens forecasting?
  • Where did AI provide incomplete or overly confident reasoning?
  • How did your thinking about forecasts and decisions change?

Technical Insight

AI can:
• accelerate explanation
• broaden analytical exploration
• surface alternative interpretations of forecast disagreement

But it cannot:
• ensure correctness
• replace contextual judgment
• assume responsibility for decisions

Insight: Multi-lens forecasting expands visibility—but decision quality depends on how those lenses are governed.

Bridge to DesignStudio

The next step is not further analysis—but decision system design.

How should multiple forecasts be translated into:
• thresholds,
• escalation rules, and
• operational actions?

The DesignStudio will move from:

understanding → reasoning → decision system design

Excellent—Chapter 8 is the capstone integration layer, where everything shifts decisively from:

forecasting models → forecasting systems → decision design

So the LearningLab must elevate from comparison (Ch7) to action design (Ch8).

Below is the fully polished, publisher-ready LearningLab 8, tightly aligned with:

  • threshold logic
  • multi-lens reasoning
  • decision systems under uncertainty
  • your doctrine: “Models don’t decide—systems do.”

 

DesignStudio 8 — Designing a Forecast-Driven Decision System

Purpose

To design a governed decision system using forecasts.

Business Context (NorthStar)

NorthStar must decide whether to:

  • expand inventory capacity
  • maintain current levels
  • implement conditional triggers

Decision Challenge

Design a system that determines:

  • when to act
  • what triggers action
  • how decisions are monitored and revised

Available Information

  • multi-lens forecasts
  • threshold timing
  • signal diagnostics
  • stakeholder roles

Your Task

Design a decision system addressing:

  1. Threshold Design
    • Define at least 2 actionable thresholds
  2. Trigger Logic
    • When does action occur?
    • What combination of signals is required?
  3. Monitoring Plan
    • What is tracked weekly?
    • How is drift detected?
  4. Governance Structure
    • Who decides?
    • What is escalation protocol?

Deliverable

2–3 page decision system design

Evaluation Focus

  • clarity of thresholds
  • logical consistency
  • robustness under uncertainty

Design Insight

Good decisions are not optimized for one future—they are designed for many.

Reflection

  • What assumption is most fragile in your system?
  • How would your system fail?

Bridge to Mini-Case

You will now apply your system under ambiguity.

Mini-Case 8: Acting Under a Surge Scenario

Committing capacity decisions under uncertain demand

Context

A regional hospital network uses weekly patient-volume forecasts to plan staffing, bed capacity, and critical resource allocation (e.g., ICU beds, ventilators, and emergency department coverage).

Historically, planning has relied on a single baseline forecast derived from seasonal patterns and long-term trends.

As the hospital enters a period of heightened uncertainty—driven by early indicators of a potential respiratory illness surge—analysts have developed three forecasting lenses:

  • Baseline lens suggests stable patient volumes consistent with seasonal patterns
  • Signal lens reflects moderate increases based on recent admission trends and regional alerts
  • Stress lens projects a sharp surge in patient volume, similar to prior outbreak scenarios

The projections are close and partially overlapping, with no definitive indication that a surge will occur. However, recent developments—including rising case counts in neighboring regions and increased emergency visits—suggest that the stress scenario is plausible, even if not the most likely.

Hospital leadership has asked your team to prepare a recommendation assuming the surge scenario could materialize, given the high consequences of under-preparation.

Two weekly planning cycles remain before staffing schedules and resource allocations must be finalized.

Decision Challenge

If the surge (stress) scenario were to occur, what actions should the hospital take now to ensure readiness—without overcommitting resources prematurely?

Available Information

  • Weekly patient volume history and baseline forecast
  • Signal and stress scenario projections
  • Evidence that the stress lens:
    • crosses capacity thresholds earlier than other lenses
    • approaches ICU limits within the next planning cycle
  • Current staffing levels and scheduling flexibility
  • Availability of temporary staff and external support
  • Cost and operational implications of:
    • overstaffing (idle capacity, increased labor costs)
    • understaffing (delays, patient risk, service breakdown)
  • Two remaining planning cycles before commitments must be made

Your Task

Assume the surge scenario is credible, though uncertain.

As a cross-functional decision group (clinical operations, staffing, and administration), answer the following:

  1. Interpret the scenario

If the surge scenario materializes:

  • What operational pressures will emerge (e.g., bed shortages, staffing strain)?
  • When will these pressures become critical?

Focus on timing and system capacity, not just volume.

  1. Assess decision asymmetry

Compare the risks of:

  • acting early (overstaffing, unused capacity), versus
  • acting late (patient risk, system overload)

Which risk is more severe in this context, and why?

  1. Design immediate actions

What actions should be taken now, before full confirmation?

Examples may include:

  • partial staffing increases
  • contingency scheduling (on-call teams)
  • preparation of overflow capacity

Your recommendations should balance:

  • readiness
  • flexibility
  • cost control
  1. Define trigger-based escalation

What signals should trigger:

  • full surge response activation
  • continuation of current plans
  • rollback of preparatory actions

Be explicit:

  • If ______ occurs, then ______ action should follow.
  1. Frame the recommendation

How would you communicate your plan to hospital leadership?

Your message should:

  • acknowledge uncertainty
  • justify early preparation
  • emphasize patient safety and operational resilience

Deliverable

Write a short executive note recommending:

  • immediate preparatory actions under the surge scenario
  • clearly defined escalation triggers
  • justification based on risk, timing, and system impact

Reflection

  1. Why is it necessary to act on a scenario that is not the most likely in healthcare settings?
  2. How does risk asymmetry (patient safety vs cost) shape decision-making?
  3. What distinguishes responsible preparation from overreaction in this context?

Design Insight

In high-stakes environments such as healthcare, the cost of under-preparation is often nonlinear and irreversible.

Decision-making is therefore not based solely on what is most likely, but on what is plausible and consequential.

Effective organizations do not wait for certainty.
They design conditional actions that protect against high-impact outcomes.

Chapter Insight

Forecasts do not create decisions—systems do.
When models disagree, they reveal structure in uncertainty that must be interpreted, not resolved.
A well-designed decision system transforms that uncertainty into timely, accountable, and defensible action.

NorthStar System Update

NorthStar RetailGroup has now moved from forecasting to decision system design. Instead of relying on a single demand projection, the organization has implemented a multi-lens monitoring system anchored by thresholds and supported by signal diagnostics. Inventory decisions are no longer reactive; they are triggered by structured conditions tied to risk and lead time. As a result, NorthStar improves not only responsiveness but also accountability—ensuring that decisions remain coherent even when forecasts diverge.

 

Check Your Learning 8: Designing Decisions Under Forecast Uncertainty

Tier 1 — Conceptual Understanding

  1. Why does Forecast-by-Design treat forecasting as a decision system rather than a prediction task?
  2. What is the role of thresholds in connecting forecasts to action?
  3. Explain the meaning of the statement:
    “Models don’t decide—systems do.”
  4. What does model disagreement reveal in a forecasting system?

Tier 2 — Interpretation & Judgment

  1. A forecast does not cross a decision threshold, but leading indicators are rising.
    • What is the most disciplined interpretation?
  2. A signal-driven model predicts earlier threshold crossing than a baseline model.
    • What does this imply about risk and timing?
  3. Why is averaging forecasts often a poor decision strategy?
  4. A threshold is defined too loosely (e.g., “high demand”).
    • What risks does this create?

Tier 3 — AI / Analytical Reasoning

  1. How can AI help interpret disagreement across models without replacing human judgment?
  2. A machine learning model reacts strongly to recent spikes, while a baseline model remains stable. What structural differences explain this behavior?
  3. What is the risk of using AI to generate scenarios without grounding them in threshold logic?
  4. How should AI be used to improve trigger design?

Tier 4 — Integration / Decision Design

  1. Design a simple decision rule using:
    • one threshold
    • one trigger
    • one monitoring signal
  2. Describe a situation where:
    • acting too early is costly
    • acting too late is catastrophic
      How should this asymmetry influence decision design?
  3. Explain how a robust decision differs from an accurate forecast.
  4. In one paragraph, describe how this chapter integrates all Four Analytical Pillars.

Student Guidance

  • Explain reasoning clearly
  • Connect analysis to decisions
  • Distinguish signal vs noise
  • Avoid purely technical answers

One-Minute Summary

3 Key Ideas

  • Forecasts are inputs; decision systems create value
  • Model disagreement reveals risk structure, not failure
  • Thresholds convert uncertainty into actionable signals

1 Decision Insight

  • The best decision is not the most accurate—it is the most robust across plausible futures

1 Common Mistake

  • Treating forecasting as model selection instead of decision design

Unresolved Problem Hook

Even the most carefully designed decision system faces a deeper challenge:

What happens when the environment itself changes?

When relationships between variables shift, signals become unstable, and past patterns no longer apply, decision systems must do more than respond—they must adapt.

In the next chapter, we extend Forecast-by-Design into organizational learning systems, where forecasts, decisions, and feedback loops evolve together over time.

The question is no longer how to design decisions—
but how to design systems that learn from their own decisions.

 

 

CAPSTONE PROJECT — FORECAST BY DESIGN

Designing a Healthcare Capacity Decision System Under Uncertainty

  1. Capstone Overview

Core Objective

Design a forecast-driven decision system for hospital capacity planning that enables leaders to act:

  • early enough to avoid system failure
  • carefully enough to avoid unnecessary cost

What Makes This a Capstone

In Chapter 8, you worked in a guided environment (NorthStar).

In this capstone:

  • The structure is not given
  • The signals are less clean
  • The thresholds are not predefined

Your task is not to apply a method.
Your task is to design a decision system from scratch.

Capstone Philosophy

This is NOT:

  • a modeling competition
  • a forecasting accuracy exercise

This IS:

  • a decision design challenge under uncertainty

Models don’t decide—systems do.

  1. Business Context (Healthcare System)

You are advising a regional hospital network.

Leadership must decide:

Should we activate surge capacity protocols within the next 4–8 weeks?

Operational Decisions Include

  • expanding ICU capacity
  • reallocating staff
  • postponing elective procedures
  • securing additional supplies

Decision Stakes (Asymmetric Risk)

Action Timing

Consequence

Too early

high cost, disruption

Too late

patient risk, system overload

Your Role

You are the Decision Analytics Team.

You must provide:

  • a clear recommendation
  • a decision system leadership can trust

 

III. Dataset

File

healthcare_capacity_weekly.csv

Variables

  • week — time index
  • admissions — weekly hospital admissions
  • icu_occupancy — % ICU utilization
  • mobility_index — population movement proxy
  • search_trend — health-related search intensity
  • staff_availability — staffing capacity indicator

Data Characteristics

  • signals are noisy
  • relationships are unstable
  • leading indicators are imperfect
  1. Analytical Requirements (Minimal Structure)

You are expected to construct multiple analytical perspectives, but:

You are NOT required to build complex models

Required Lenses (Conceptual, not rigid)

You must include:

  1. Structural Lens
  • baseline pattern of admissions / ICU
  1. Signal Lens
  • role of mobility + search
  1. Stress Lens
  • potential escalation scenarios

These do NOT need to be:

  • perfect models
  • identical to Chapter 7

They must be:

  • interpretable
  • decision-relevant
  1. Core Task (What You Must Design)

You must design a Healthcare Capacity Decision System that includes:

  1. Threshold Design

Define at least two thresholds, such as:

  • ICU occupancy level
  • admission growth rate
  • staffing pressure
  1. Trigger Logic

Define:

What combination of signals triggers action?

Example:

  • ICU ≥ 80% AND mobility rising 2 weeks
  1. Lead Time Assessment

Estimate:

  • how much warning your system provides
  • whether that is sufficient
  1. Monitoring System

Define:

  • what is tracked weekly
  • how updates change decisions
  1. Governance Structure

Define:

  • who makes the decision
  • when escalation occurs
  1. Deliverable (Decision System Report)

Format Options

  • Report: 8–12 pages
  • Slides: 12–18 slides

Required Sections

  1. Executive Decision Summary
  • recommended action
  • key trigger(s)
  • risk statement
  • confidence level
  1. Problem Framing
  • what decision is being made
  • what uncertainty exists
  1. Analytical Interpretation
  • structure in admissions
  • role of signals
  • key uncertainties
  1. Threshold & Trigger Design
  • clearly defined thresholds
  • explicit trigger logic
  1. Decision Recommendation
  • act / wait / conditional
  • justification
  1. Monitoring Plan
  • weekly tracking
  • update rules
  1. Risk & Tradeoff Analysis
  • early vs late cost
  • worst-case reasoning
  1. Governance Design
  • ownership
  • escalation rules
  1. Reflection
  • weakest assumption
  • failure mode

VII. Thinking Requirements (MANDATORY)

Your work MUST demonstrate:

 

Stage

Evidence

Observe

problem framing

Understand

structure + signals

Practice

analytical outputs

Reason

uncertainty interpretation

Design

thresholds + system

Decide

recommendation

Integrate

coherence

Consolidate

reflection

Continue

limitations

 

 

VIII. Evaluation Rubric (100 Points)

  1. Decision Design (30 pts) — PRIMARY
  • thresholds are clear
  • triggers are actionable
  • system is coherent
  1. Analytical Logic (20 pts)
  • correct interpretation
  • no misuse of models
  1. Data Understanding (15 pts)
  • signal vs noise awareness
  • limitations recognized
  1. AI-Enabled Reasoning (15 pts)
  • used appropriately
  • not replacing thinking
  1. Communication (10 pts)
  • executive clarity
  • structured reasoning
  1. Robustness (10 pts)
  • decision holds under uncertainty
  1. Performance Benchmarks

Grade A

  • strong thresholds
  • clear triggers
  • robust decision
  • deep uncertainty awareness

Grade B

  • reasonable logic
  • partial robustness
  • acceptable decision

Grade C

  • analysis without decision system
  • vague thresholds
  • weak justification
  1. AI Usage Policy

Allowed:

  • explaining concepts
  • exploring scenarios
  • structuring reasoning

Not Allowed:

  • generating final answer without justification
  • replacing interpretation

Required Disclosure

Students must include:

  • how AI was used
  • where judgment overrode AI

XIII. Capstone Design Insight

The purpose of this capstone is not to predict hospital demand.

It is to design a system that ensures patients are protected even when predictions are uncertain.

 

Mitch Daniels School of Business Footer