Data Science

How to calculate expected gross profit percentage for the remaining working days in the month?

AM Asked by Amanda Roberts · 18-10-2024
0 upvotes 14,240 views 0 comments
The question

I am building a financial tracking dashboard and need a way to project our final month-end Gross Profit (GP) percentage. Specifically, I want to calculate the expected GP% by combining our actuals to date with a projection for the remaining working days based on our current daily run rate. How can I dynamically count the remaining business days (excluding weekends/holidays) and use that to forecast total month-end revenue and COGS to derive the expected margin?

 

3 answers

0
PA
Answered on 20-10-2024

To achieve this, you need a robust Date table with a Working Day flag. First, calculate your daily run rate for Revenue and COGS by dividing MTD actuals by the number of working days passed. Next, calculate the remaining working days using: COUNTROWS(FILTER('Date', 'Date'[Date] > TODAY() && 'Date'[Date] <= EOMONTH(TODAY(), 0) && 'Date'[IsWorkingDay] = 1)). You can then forecast the total month-end values: Projected Revenue = [Actual Revenue] + ([Daily Revenue Run Rate] * [Remaining Working Days]). Do the same for COGS, then your expected GP% is simply DIVIDE([Projected Revenue] - [Projected COGS], [Projected Revenue]). This ensures your forecast stays grounded in current performance while accounting for the specific number of billing days left in the calendar.

0
TH
Answered on 22-10-2024

That run-rate logic assumes the rest of the month will perform exactly like the first half. Is there a way to weight this calculation so that the "remaining days" forecast is based on a longer historical average, like the last 3 months, instead of just the current MTD performance which might be skewed by a single large mid-month deal

RI 26-10-2024

You're absolutely right to be cautious about skewing, Thomas. To fix this, you can swap the [Daily Run Rate] variable with a 3-month rolling average. Use AVERAGEX(DATESINPERIOD('Date'[Date], TODAY(), -3, MONTH), [Daily Sales]) to get a more stable baseline. When you multiply this "smoothed" rate by your remaining working days, your month-end projection becomes much more resilient to one-off spikes. It’s a standard practice in enterprise Data Science to use these moving averages for more reliable budgetary forecasting.

0
NA
Answered on 28-10-2024

Using the NETWORKDAYS function in DAX is the fastest way to get your day counts now. It handles the weekend logic automatically without needing a complex filter string.

AM 30-10-2024

Great suggestion, Patricia. I’ve started using NETWORKDAYS for all my pacing reports. I’d also add that you should include a "Holidays" table in that function’s parameters. If you have a bank holiday coming up, the projection will naturally adjust downwards because it knows there’s one less day to generate margin. This level of detail is what makes a dashboard actually useful for sales leadership during the final week of the quarter.

Share your thoughts

Your email address will not be published. Required fields are marked (*)

Professional Counselling Session

Still have questions?
Schedule a free counselling session

Our experts are ready to help you with any questions about courses, admissions, or career paths. Get personalized guidance from industry professionals.

Request a Call Back

Search Online

We Accept

We Accept

Follow Us

"PMI®", "PMBOK®", "PMP®", "CAPM®" and "PMI-ACP®" are registered marks of the Project Management Institute, Inc. | "CSM", "CST" are Registered Trade Marks of The Scrum Alliance, USA. | COBIT® is a trademark of ISACA® registered in the United States and other countries.

Book Free Session