Dashboard Table using previous day values in calculation

Options

Hi,

I need to create a Dashboard that calculates oil usage for Engines. Below is the excel table with calculation I need to recreate in Domo. Basically need to take the tank level and oil added to day tank and engine from day before and subtract today's tank level to get daily usage.

Also sometimes there wont always be a previous day reading. There could be a day or 2 between so need to have logic that takes that into account. Could be values on 4/4, 4/5, then not til 4/7 so on 4/7 would need to use 4/5 values since that was last day measured.

Could someone help explain how could do this? Thanks!

Best Answer

  • Sean_Tully
    Sean_Tully Contributor
    edited May 13 Answer ✓
    Options

    I would probably do this in Magic ETL. You can use a window function tile to lead the next day's tank level, which would allow you to do the math in your screenshot.

    I think you can also use lead functions in Beast Modes but I haven't used them there as much.

Answers

  • Sean_Tully
    Sean_Tully Contributor
    edited May 13 Answer ✓
    Options

    I would probably do this in Magic ETL. You can use a window function tile to lead the next day's tank level, which would allow you to do the math in your screenshot.

    I think you can also use lead functions in Beast Modes but I haven't used them there as much.

  • david_cunningham
    Options

    @TMonty0319 here is how you could do this in a beast mode. Lag will default to the last available date.

    For example you can see that this dataset skips days, but the beast mode still shows the data from the last available date.

    (LAG(SUM(day_tank_value),1) over (order by date asc)
    + LAG(SUM(oil_added_tank),1) over (order by date asc)
    + LAG(SUM(oil_added_engine),1) over (order by date asc))
    -SUM(value)
    

    You could then use a beast mode like the above to calculate your desired value.

    David Cunningham

    ** Was this post helpful? Click Agree 😀, Like 👍️, or Awesome ❤️ below **
    ** Did this solve your problem? Accept it as a solution! ✔️**