“I’d love to use Power BI dashboards in my demand reviews, but I don’t know where to start.”
I hear this all the time.
Most demand planners use Excel.
They see gorgeous Power BI screenshots on LinkedIn, but when they open Power BI Desktop… it feels intimidating.
So let’s remove the overwhelm.
In this newsletter, we’ll go step by step to build the 7 must-have dashboards for demand planners that I posted on LinkedIn:
#1 – Forecast Accuracy Tracker
# 2 – Demand Trend
# 3 – Forecast vs Actual
# 4 – Promo Impact
# 5 – Customer Accuracy
# 6 – Product Lifecycle
# 7 Exception Dashboard.
We’ll start small and practical. You don’t have to build everything in one weekend.
One step.
One dashboard at a time.
Step 1. Build a Clean Demand & Forecast Base
Before any dashboard, you need a reliable base.
Create two simple Excel files:
- SalesHistory.xlsx
- Date
- SKU
- Customer (or Region/Channel)
- Actual Sales
- Forecast.xlsx
- Date
- SKU
- Customer (or Region/Channel)
- Forecast Qty
Practical example
For a snacks company, you might have:
| Date | SKU | Customer | Actual Sales |
| Jan-2025 | BAR001 | Tesco | 10,200 |
| Feb-2025 | BAR001 | Tesco | 10,800 |
Keep formats clean. No merged cells, no subtotals, no extra headers.
Start Today
Create these two files for one region or one product family.
Tomorrow’s Win
You’ll have a clean, trusted base that feeds all 7 dashboards. No more rebuilding files for every meeting.
Step 2. Connect to Power BI and Build the Forecast Accuracy Tracker
This step gives you Dashboard #1 from the pdf file: Forecast Accuracy Tracker.
What to do
- Open Power BI Desktop.
- Go to Get Data → Excel → SalesHistory.xlsx → Load.
- Repeat for Forecast.xlsx.
- Click Transform Data to open Power Query.
- In Power Query:
- Remove duplicates
- Use First Row as Headers
- Ensure Date is set to type Date
- Merge the two queries on:
- SKU
- Date
- (+ Customer if you forecast at customer level)
- Add the following columns:
- Error = Forecast – Actual
- Abs Error = ABS(Error)
- MAPE % = DIVIDE(Abs Error, Actual)
(Using DIVIDE avoids errors when Actual = 0.)
This merged table becomes the foundation for MAPE, Bias, WMAPE, and all the accuracy visuals you’ll build later.
Practical example
If forecast = 9,000 and actual = 10,000, error = –1,000 and MAPE = 10%.
Now Power BI calculates this for every SKU, customer, and period automatically.
Start Today
Build one simple visual using your merged table:
A bar chart of MAPE % by SKU, with a line for Bias.
This keeps the first step small, clear, and immediately useful.
Tomorrow’s Win
You’ll stop debating “gut feel” and start showing hard, objective accuracy insights for every SKU, customer, and period and Power BI will update them automatically every time new data arrives.
Step 3. Create the Demand Trend Dashboard
Now we build Dashboard #2: Demand Trend Dashboard.
What to do
- Add a Calendar table (either via DAX or “New Table” with all dates).
- Relate Calendar[Date] to SalesHistory[Date].
- Create a line chart:
- Axis: Month (from Calendar)
- Values: Sum of Actual Sales
You can later add:
- Slicers for SKU, Region, Channel
- A separate line for Forecast to see trend alignment
Practical example
You notice that a core SKU peaked in July last year but is trending down this year. Instead of blaming “seasonality,” you bring the chart to the demand review and ask Sales what changed.
Start Today
Build a single trend line of total demand by month for the last 24–36 months.
Tomorrow’s Win
You’ll start spotting declines and spikes early, instead of discovering them after the quarter is over.
Step 4. Build the Forecast vs Actual Performance Tracker
Now we move to Dashboard #4: Promo Impact Analysis Board.
What to do
- Extend your dataset with a Promo table:
- Promo ID
- Start Date / End Date
- SKU
- Customer or Channel
- Tag each day or week in your demand table as Promo or Non-Promo by joining it with the promo date ranges.
- Calculate the key metrics:
- Baseline Sales — typically the average of recent non-promo periods or another baseline method used by your business
- Promo Sales — actual sales during the promo window
- Lift = Promo Sales – Baseline (or Lift % using DIVIDE(Promo Sales – Baseline, Baseline))
- Build a column chart that compares Baseline vs Promo Actual, and add a line for Lift — similar to the visual on page 5.
Practical example
You discover that Promo 2 generated high volume but almost zero lift over baseline.
That means it didn’t create incremental demand — it simply shifted volume from surrounding weeks.
Next time, you adjust your promo strategy instead of repeating a low-ROI event.
Start Today
Pick 3–5 recent promotions and tag them manually as promo periods.
Even a simple baseline method will reveal low vs high incremental performance.
Tomorrow’s Win
You’ll immediately see which promotions actually grow demand and which ones drainmargin without adding value.
Step 5. Add the Promo Impact Analysis Board
Now we move to Dashboard #4: Promo Impact Analysis Board.
7 Power BI Dashboards for Deman…
What to do
- Extend your dataset with a Promo table:
- Promo ID
- Start Date / End Date
- SKU
- Customer or Channel
- Tag each day or week as Promo / Non-Promo.
- Calculate:
- Baseline Sales (non-promo average)
- Promo Sales
- Lift = Promo Sales – Baseline (or in %)
Build a column chart with Baseline vs Promo Actual, plus a line for Lift , like the chart on page 5.
Practical example
You discover that Promo 2 generated big volume but almost zero lift over baseline. It simply shifted volume from other weeks. Next time, you adjust promo strategy instead of repeating a low-ROI event.
Start Today
Pick 3–5 recent promotions and tag them manually as promo periods.
Tomorrow’s Win
You’ll know which promotions are worth repeating and which drain margin without adding real demand.
Step 6. Build the Customer-Level Forecast Accuracy Monitor
This corresponds to Dashboard #5: Customer-Level Forecast Accuracy Monitor.
What to do
- In your merged table, group by Customer (or Key Account / Channel).
- Calculate:
- MAPE by Customer
- Bias by Customer
- Build a column + line combo chart:
- Columns: MAPE %
- Line: Bias %
Practical example
You see that Customer B consistently overorders (negative bias) and Customer E underorders (positive bias). You can proactively adjust your forecast and safety stock before they surprise you again.
Start Today
Limit the view to top 10 customers so it remains focused.
Tomorrow’s Win
You’ll be able to have data-driven conversations with Sales about which accounts need better collaboration.
Step 7. Add Product Lifecycle & Exception Dashboards
Finally, we cover Dashboards #6 and #7: Product Lifecycle Tracker and Exception Dashboard.
7A. Product Lifecycle Tracker
What to do
- Add a Lifecycle Stage column to your product master:
- New Launch
- Growth
- Mature
- Slow Mover
- Phase-Out
- Build a scatter or bubble chart (like page 7):
- Axis: Product
- Y: Lifecycle Stage (or a numeric code)
- Bubble size: Volume or Revenue
Practical example
You notice several “Phase-Out” SKUs still carrying high volume. That’s a red flag for obsolescence risk and misplaced focus.
Start Today
Manually assign lifecycle stage to 20–30 key SKUs.
Tomorrow’s Win
Your forecast reviews will match product reality, not just history.
7B. Exception Dashboard
This is your daily “Where do I focus?” view. The one that quickly highlights demand anomalies, low coverage, and data issues. This corresponds to Dashboard #7 in your PDF.
What to do
- Calculate for each SKU:
- Volume Deviation %
(Actual vs typical demand, usually vs rolling average or baseline) - Coverage Days
Coverage = DIVIDE(On-Hand, Daily Forecast or Daily Demand)
(Coverage requires a daily consumption rate, forecast or actual.) - Missing Inputs / Incomplete Data Flags
A simple Yes/No or 1/0 field indicating data-quality issues
- Volume Deviation %
- Build a scatter chart:
- X-axis: Volume Deviation %
- Y-axis: Coverage Days
- Label SKUs with an asterisk (*) if they have missing inputs or incomplete data
- Add color logic if desired:
- Low coverage (<7 days) = red
- High deviation (> ±30%) = orange
- Clean SKUs = blue/gray
Practical example
If SKU R12* shows a +40% spike in demand and coverage dropping below 5 days, it becomes an immediate S&OE priority.
The asterisk alerts you that the data feeding this SKU is also incomplete, meaning the issue is not only operational. It requires fixing your inputs before making decisions.
Start Today
Define simple exception rules such as:
- Deviation > +30% or < –30%
- Coverage < 7 days
- Missing Input Flag = Yes
Apply them to a small set of SKUs to build your first exception grid.
Tomorrow’s Win
You’ll begin each day with one clear chart that tells you exactly where to focus. No more digging across spreadsheets or reacting too late.
Conclusion
Power BI doesn’t have to be overwhelming.
You don’t need to become a full-time data engineer.
You don’t need to know how to code.
If you follow these steps:
- Build a clean base
- Connect and merge in Power BI
- Layer visual by visual
- Add promotions, customers, lifecycle, and exceptions
…you’ll replicate the 7 dashboards and transform how you run demand planning.
Start Today
Pick one step: either Forecast Accuracy or Demand Trend. Build just that.
Tomorrow’s Win
You’ll have your first live Power BI dashboard for demand planning and a clear path to the rest.



