Creating a variance column

Hi there, I am new to Domo and I have a question that I believe has an easy solution, however, I cannot figure it out. I have a table created to display Cost per load over the past three months. The formula for CPL is SUM(carrier pay)/ SUM(Loads). I want to have a column that displays the previous months CPL - Current months CPL and call it variance. I assume it requires a case statement stating if order ship date = previous month then previous CPL. However, I dont know how to write that.

Any advice or tips would be extremely helpful.

Best Answer

  • MichelleH
    MichelleH Coach
    edited September 2023 Answer ✓

    @ColinHaze You can accomplish this using case statements inside your sums. The LAST_DAY function can be used to transform dates to the last day of the month so you can compare months.

    Current Month CPL

    sum(case 
      when LAST_DAY(`Date`) = LAST_DAY(CURRENT_DATE()) 
      then `carrier pay` 
    else 0 end)
    /
    sum(case 
      when LAST_DAY(`Date`) = LAST_DAY(CURRENT_DATE()) 
      then `Loads` 
      else 0 
    end)
    

    Prior Month CPL

    sum(case 
      when LAST_DAY(`Date`) = LAST_DAY(DATE_SUB(CURRENT_DATE(),interval 1 month)) 
      then `carrier pay` 
      else 0 
    end)
    / 
    sum(case 
      when LAST_DAY(`Date`) = LAST_DAY(DATE_SUB(CURRENT_DATE(),interval 1 month)) 
      then `Loads` 
      else 0 
    end)
    

    Variance

     — Prior Month
       (sum(case 
        when LAST_DAY(`Date`) = LAST_DAY(DATE_SUB(CURRENT_DATE(),interval 1 month)) 
        then `carrier pay` 
        else 0 
      end)
      / 
      sum(case 
        when LAST_DAY(`Date`) = LAST_DAY(DATE_SUB(CURRENT_DATE(),interval 1 month)) 
        then `Loads` 
        else 0 
      end))
      
    -        
    
    — Current Month
      (sum(case 
        when LAST_DAY(`Date`) = LAST_DAY(CURRENT_DATE()) 
        then `carrier pay` 
      else 0 end)
      /
      sum(case 
        when LAST_DAY(`Date`) = LAST_DAY(CURRENT_DATE()) 
        then `Loads` 
        else 0 
      end))
    

Answers

  • MichelleH
    MichelleH Coach
    edited September 2023 Answer ✓

    @ColinHaze You can accomplish this using case statements inside your sums. The LAST_DAY function can be used to transform dates to the last day of the month so you can compare months.

    Current Month CPL

    sum(case 
      when LAST_DAY(`Date`) = LAST_DAY(CURRENT_DATE()) 
      then `carrier pay` 
    else 0 end)
    /
    sum(case 
      when LAST_DAY(`Date`) = LAST_DAY(CURRENT_DATE()) 
      then `Loads` 
      else 0 
    end)
    

    Prior Month CPL

    sum(case 
      when LAST_DAY(`Date`) = LAST_DAY(DATE_SUB(CURRENT_DATE(),interval 1 month)) 
      then `carrier pay` 
      else 0 
    end)
    / 
    sum(case 
      when LAST_DAY(`Date`) = LAST_DAY(DATE_SUB(CURRENT_DATE(),interval 1 month)) 
      then `Loads` 
      else 0 
    end)
    

    Variance

     — Prior Month
       (sum(case 
        when LAST_DAY(`Date`) = LAST_DAY(DATE_SUB(CURRENT_DATE(),interval 1 month)) 
        then `carrier pay` 
        else 0 
      end)
      / 
      sum(case 
        when LAST_DAY(`Date`) = LAST_DAY(DATE_SUB(CURRENT_DATE(),interval 1 month)) 
        then `Loads` 
        else 0 
      end))
      
    -        
    
    — Current Month
      (sum(case 
        when LAST_DAY(`Date`) = LAST_DAY(CURRENT_DATE()) 
        then `carrier pay` 
      else 0 end)
      /
      sum(case 
        when LAST_DAY(`Date`) = LAST_DAY(CURRENT_DATE()) 
        then `Loads` 
        else 0 
      end))
    

  • @MichelleH Thank you for the fast response! This worked!