Forecasting & Planning Workbook

Interactive workbook with step-by-step problem framing, a data-preparation checklist, baseline forecast choices, seasonal decomposition cues, configurable backtesting plan, selectable error metrics (including CRPS for probabilistic forecasts), and a scenario-planning worksheet that links forecasts to concrete operational decisions (inventory, staffing, budgets). Responses are saved so teams can iterate, compare runs, and track follow-through.

{ "Title": "Forecasting & Planning Workbook", "IntroductionHtml": "

Use this workbook to produce forecasts that are evaluated, explainable, and actionable.

This interactive workbook guides you from problem framing through data preparation, baseline and seasonal checks, backtesting design, and scenario planning. Save each run so you can compare models, record assumptions, and link forecasts to operational actions (inventory, staffing, budgets).

Tip: Be honest about uncertainty — save probabilistic forecasts when possible and use CRPS or other proper scoring rules to evaluate them.

", "SubmitLabel": "Save workbook", "SuccessMessage": "Workbook saved. You can re-open this run to review assumptions, backtests, and planned actions.", "DataType": "forecastingWorkbook.v1", "SchemaVersion": "1.0", "Fields": [ { "Key": "problem_title", "Label": "Problem title / Forecast name", "FieldType": "text", "Required": true, "HelpText": "A short name that identifies the item, product, region, or metric you are forecasting." }, { "Key": "problem_description", "Label": "Decision context and why this forecast matters", "FieldType": "textarea", "Required": true, "HelpText": "Who uses the forecast, what decisions depend on it, and what outcomes you hope to improve (inventory turns, service level, staffing efficiency, budget accuracy)." }, { "Key": "time_horizon_months", "Label": "Primary forecast horizon (months)", "FieldType": "number", "Required": true, "HelpText": "Typical planning horizon for decisions tied to this forecast (e.g., 3, 6, 12 months)." }, { "Key": "data_sources", "Label": "Data sources (select all that apply)", "FieldType": "checkbox", "Options": [ {"Value": "sales_txn", "Label": "Sales / transaction data"}, {"Value": "inventory", "Label": "Inventory / stock records"}, {"Value": "production", "Label": "Production / capacity logs"}, {"Value": "finance", "Label": "Financial / ledger"}, {"Value": "crm", "Label": "CRM / customer records"}, {"Value": "external", "Label": "External data (weather, macro indicators)"}, {"Value": "other", "Label": "Other (describe below)"} ], "HelpText": "Identify the primary data sources you will use for modeling." }, { "Key": "data_notes_other", "Label": "Other data sources / notes", "FieldType": "textarea", "Required": false, "HelpText": "If you selected 'Other' or have notes about data quality, record them here." }, { "Key": "data_prep_checklist", "Label": "Data-preparation checklist (select items you will perform)", "FieldType": "checkbox", "Options": [ {"Value": "missing_values", "Label": "Assess and handle missing values"}, {"Value": "outliers", "Label": "Detect and document outliers"}, {"Value": "aggregation", "Label": "Verify time aggregation (daily / weekly / monthly)"}, {"Value": "calendar_events", "Label": "Add calendar and promotion flags"}, {"Value": "price_promotions", "Label": "Adjust for price or promotion effects"}, {"Value": "store_changes", "Label": "Account for assortment or store changes"}, {"Value": "data_leakage", "Label": "Check for target leakage in features"} ], "HelpText": "These are common checks—choose those you will apply and record how." }, { "Key": "data_prep_notes", "Label": "Data-prep notes and key transformations", "FieldType": "textarea", "HelpText": "Record important cleaning steps, imputations, aggregations, or feature engineering decisions." }, { "Key": "baseline_method", "Label": "Baseline / naive forecast method", "FieldType": "radio", "Options": [ {"Value": "last_period", "Label": "Last period (naive)"}, {"Value": "seasonal_naive", "Label": "Seasonal naive"}, {"Value": "moving_avg", "Label": "Moving average"}, {"Value": "simple_exp_smooth", "Label": "Simple exponential smoothing"} ], "Required": true, "HelpText": "Start with a simple baseline—it's essential for meaningful evaluation." }, { "Key": "seasonal_pattern", "Label": "Observed seasonal pattern", "FieldType": "select", "Options": [ {"Value": "none", "Label": "No clear seasonality"}, {"Value": "additive", "Label": "Additive seasonality"}, {"Value": "multiplicative", "Label": "Multiplicative seasonality"}, {"Value": "uncertain", "Label": "Uncertain / needs decomposition"} ], "HelpText": "Use decomposition or plots to decide; record the pattern you observe." }, { "Key": "chosen_error_metrics", "Label": "Error metrics to evaluate (select all)", "FieldType": "checkbox", "Options": [ {"Value": "mape", "Label": "MAPE"}, {"Value": "rmse", "Label": "RMSE"}, {"Value": "mae", "Label": "MAE"}, {"Value": "mase", "Label": "MASE"}, {"Value": "crps", "Label": "CRPS (probabilistic)"} ], "HelpText": "Pick metrics appropriate to your business context. Avoid MAPE alone when volumes can be near zero." }, { "Key": "backtesting_strategy", "Label": "Backtesting strategy", "FieldType": "select", "Options": [ {"Value": "rolling_origin", "Label": "Rolling origin (walk-forward)"}, {"Value": "fixed_origin", "Label": "Fixed-origin holdout"}, {"Value": "temporal_cv", "Label": "Time series cross-validation"} ], "Required": true, "HelpText": "Choose how you'll simulate production forecasting: rolling tests usually mirror operations better." }, { "Key": "backtest_periods", "Label": "Number of backtest folds / windows", "FieldType": "number", "HelpText": "How many windows or folds you will use for backtesting (e.g., 3-12)." }, { "Key": "backtest_notes", "Label": "Backtesting notes (data leakage, lookahead checks, stability concerns)", "FieldType": "textarea", "HelpText": "Describe how you'll avoid leakage and how you'll measure stability across windows." }, { "Key": "model_choice_and_rationale", "Label": "Selected model(s) and rationale", "FieldType": "textarea", "HelpText": "Record models tried (e.g., ETS, ARIMA, Prophet, XGBoost), why you prefer one, and trade-offs (explainability, latency, data needs)." }, { "Key": "scenario_name", "Label": "Scenario name", "FieldType": "text", "HelpText": "Name the scenario (e.g., Base, Upside, Downside)." }, { "Key": "scenario_description", "Label": "Scenario description and key drivers", "FieldType": "textarea", "HelpText": "Describe the scenario, key assumptions, and drivers (demand shock, promotion plan, supply disruption)." }, { "Key": "scenario_likelihood", "Label": "Scenario likelihood (1 - unlikely to 5 - very likely)", "FieldType": "scale", "HelpText": "Express your subjective probability or use a calibrated quantitative estimate." }, { "Key": "decision_linkages", "Label": "How this forecast will be used (link decisions)", "FieldType": "textarea", "HelpText": "Be specific: e.g., reorder points, safety stock, planned hires, budget revisions, promotional commitments." }, { "Key": "actions_if_high", "Label": "Planned actions if forecasted demand is higher than expected", "FieldType": "textarea", "HelpText": "Operational steps to increase capacity, expedite orders, or adjust staffing." }, { "Key": "actions_if_low", "Label": "Planned actions if forecasted demand is lower than expected", "FieldType": "textarea", "HelpText": "Actions to reduce inventory risk, adjust staffing, or scale back purchases." }, { "Key": "monitoring_plan", "Label": "Monitoring plan: KPIs and cadence", "FieldType": "textarea", "HelpText": "Which metrics you will track (forecast bias, service level, inventory days) and how often you'll review them." }, { "Key": "final_confidence", "Label": "Overall confidence in this forecast (1-low to 5-high)", "FieldType": "scale", "HelpText": "A short, honest rating to help decision-makers weigh uncertain forecasts." }, { "Key": "share_permission", "Label": "Share this workbook with the team", "FieldType": "yesno", "HelpText": "Choose whether this saved run should be visible to your team for review and follow-up." }, { "Key": "follow_up_owner", "Label": "Follow-up owner (person responsible for actions)", "FieldType": "text", "HelpText": "Name or role responsible for tracking the monitoring plan and executing actions." }, { "Key": "follow_up_date", "Label": "Next review date", "FieldType": "text", "HelpText": "Date for the next review (YYYY-MM-DD). Use your cadence." } ] }

Discussion

Comments and conversation will live here.