cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
mpeabody
Regular Visitor

Dax calculation for sales attained within fiscal period

Hello! I am needing a DAX formula that will calculate the percentage of goal attained for any given day within a period. For example, if we are 65% through the period and our goal for the period is 15M and we are currently at 10M in sales, how do I calculate the percentage of goal attained for that 65% of the period. At 10M in sales have we achieved 100% in relation to our overall goal of 15M being 65% through the period? 

Thank you!

1 ACCEPTED SOLUTION
Whitewater100
Super User
Super User

Hi:

Usually you will have a forecast or goal table.(phyiscal or virtual) It also depends on the grain of your forecast. Do you have an annual number that needs to be spread over each day, or perhaps a month goal and you would then spilt that up over the days in each month you are forecasting for.

Assumingyour sales comes in by day in a different table you can do a simple sum of sales and a sum of forecast and working in conjunction with a date table, the to date comparisons are not hard to do.

 

If you have a table with each month and a total budget for each month, as a separate table e.g.

Month   Forecast Amt

Jan             200

Feb            300

etc.

 

You can use this allocation DAX to break your monthly forecasts into daily amounts. Then you just sum then or do a YTD for both actual values vs. budgeted vales.

Here is a way to allocate a monthly budget to each day. *Note. You have a separate Dates table with all the dates, marked as a date table and connected to your fact table with sales in it. Dates[Date] (one side) is usually connected in a relationship to SalesTable[OrderDate] (many side) as one example.

Here's one allocation measure for spreading out the monthly budget. I hope this helps!

Budget Allocated =

SUMX (

    -- Summarize Dates by Year/Month & Days in Month

    SUMMARIZE (

        Dates,

        Dates[Year Month],

        Dates[Days In Month]

    ),

    -- For each Year/Month get # days in current filter context for that Year/Month

    VAR DayCount =

        CALCULATE ( COUNTROWS ( Dates ) )

    -- Budget value for the entire month

    VAR BudgetValueMonth =

        CALCULATE (

            SUM ( Budget[Budget Value] ),

            ALLEXCEPT ( Dates, Dates[Year Month] )

        )

    -- Budget value allocated to required number of days (DayCount)

    VAR BudgetValueAllocated =

        BudgetValueMonth * DayCount / Dates[Days In Month]

    RETURN

        BudgetValueAllocated

)

View solution in original post

2 REPLIES 2
Whitewater100
Super User
Super User

Hi:

To answer your question on % of goal.

1. Total Sales = SUM(SalesTable[Sales Amt])

2. Total Budget = SUM(Budget[Budget Amt])

3. % of Goal = DIVIDE([Total Sales], [Total Budget])  Foramt as %.

Whitewater100
Super User
Super User

Hi:

Usually you will have a forecast or goal table.(phyiscal or virtual) It also depends on the grain of your forecast. Do you have an annual number that needs to be spread over each day, or perhaps a month goal and you would then spilt that up over the days in each month you are forecasting for.

Assumingyour sales comes in by day in a different table you can do a simple sum of sales and a sum of forecast and working in conjunction with a date table, the to date comparisons are not hard to do.

 

If you have a table with each month and a total budget for each month, as a separate table e.g.

Month   Forecast Amt

Jan             200

Feb            300

etc.

 

You can use this allocation DAX to break your monthly forecasts into daily amounts. Then you just sum then or do a YTD for both actual values vs. budgeted vales.

Here is a way to allocate a monthly budget to each day. *Note. You have a separate Dates table with all the dates, marked as a date table and connected to your fact table with sales in it. Dates[Date] (one side) is usually connected in a relationship to SalesTable[OrderDate] (many side) as one example.

Here's one allocation measure for spreading out the monthly budget. I hope this helps!

Budget Allocated =

SUMX (

    -- Summarize Dates by Year/Month & Days in Month

    SUMMARIZE (

        Dates,

        Dates[Year Month],

        Dates[Days In Month]

    ),

    -- For each Year/Month get # days in current filter context for that Year/Month

    VAR DayCount =

        CALCULATE ( COUNTROWS ( Dates ) )

    -- Budget value for the entire month

    VAR BudgetValueMonth =

        CALCULATE (

            SUM ( Budget[Budget Value] ),

            ALLEXCEPT ( Dates, Dates[Year Month] )

        )

    -- Budget value allocated to required number of days (DayCount)

    VAR BudgetValueAllocated =

        BudgetValueMonth * DayCount / Dates[Days In Month]

    RETURN

        BudgetValueAllocated

)

Helpful resources

Announcements
Carousel_PBI_Wave1

2023 Release Wave 1 Plans

Power BI release plans for 2023 release wave 1 describes all new features releasing from April 2023 through September 2023.

Power BI Summit Carousel 2

Global Power BI Training

Make sure you register today for the Power BI Summit 2023. Don't miss all of the great sessions and speakers!

Thank you 2022 Review

2022 Monthly Feature Releases

We had a great 2022 with a ton of feature releases to help you drive a data culture.

Top Solution Authors
Top Kudoed Authors