Forum Discussion

MJ_Holland's avatar
MJ_Holland
Regular Visitor
4 months ago
Solved

EBIT Financial Bridge - Dynamic Start and End

Hi,   I'm looking to create an EBIT Bridge Chart in Power BI without having to use any of the custom visuals - we're not able to add them to our PBIX files.    Something similar to this:   ...
  • MJ_Holland's avatar
    MJ_Holland
    4 months ago

    Hi v-veshwara-msft ,

     

    I've taken some of the above and come up with the following solution that works for what I need:

     

    I start by creating a table that contains a list of the dynamic start steps from my Base Comparison I need along with the various bridge steps from my Base Variance. I exclude the final dynamic step as the Total column will automatically calculated the Base Metric value I need between the Comparison and Variance:

    CT: EBIT Bridge = 
    VAR BaseCompList = VALUES ( 'P_Scenario Comparison'[Scenario Comparison] )
    RETURN
    GENERATE (
        BaseCompList,
        DATATABLE (
            "Step Order", INTEGER,
            "Step Name", STRING,
            {
                { 1, "Base Comparison" },
                { 2, "Total Revenue" },
                { 3, "Total Expenses" },
                { 4, "Depreciation & Amortisation" }
            }
        )
    )

    Then I create a calculated column that will be used in the Category well of the Waterfall chart and will show the dynamic label for the first step:

    Step Label = 
    IF (
        'CT: EBIT Bridge'[Step Order] = 1,
        'CT: EBIT Bridge'[Scenario Comparison],
        'CT: EBIT Bridge'[Step Name]
    )

    After that, I create the measure for my Y-Axis:

    EBIT Bridge Values = 
    VAR StepNo = SELECTEDVALUE ( 'CT: EBIT Bridge'[Step Order] )
    VAR SelectedScenario = SELECTEDVALUE ( 'P_Scenario Comparison'[Scenario Comparison] )
    VAR RowScenario = SELECTEDVALUE ( 'CT: EBIT Bridge'[Scenario Comparison] )
    RETURN
    SWITCH (
        TRUE (),
        // Step 1: only show value when the row scenario matches the slicer selection
        StepNo = 1 && RowScenario = SelectedScenario, [Financial Base Comparison],
        StepNo = 1 && RowScenario <> SelectedScenario, BLANK(),
        // Other steps (your existing logic)
        StepNo = 2, CALCULATE ( [Financial Base Variance], D_Account[Level 10 Account Group] = "Total Revenue" ),
        StepNo = 3, CALCULATE ( [Financial Base Variance], D_Account[Level 10 Account Group] = "Total Expenses" ),
        StepNo = 4, CALCULATE ( [Financial Base Variance], D_Account[Level 10 Account Group] = "Depreciation & Amortisation" ),
        BLANK()
    )

    This seems to do the trick. I may need to double check the value in my starting value as it may be double counting, but I need to check on that.

     

    The final piece would be to have a dynamic Mix and Max axis. But that's for another thread.