# Beast Mode Calculation for Yesterday

I am trying to get a % Change of Revenue between Yesterday and Same day last year. My beast mode formula was:

```(SUM(CASE WHEN `Date` = CURDATE() - 1 THEN (`Revenue`) END)
-
SUM(CASE WHEN `Date` = SUBDATE(CURDATE()-1, INTERVAL 52 WEEK) THEN (`Revenue`) END))
/
SUM(CASE WHEN `Date` = SUBDATE(CURDATE()-1, INTERVAL 52 WEEK) THEN (`Revenue`) END)
```

But I was not getting an accurate result. So I checked to see if at least my Yesterday's revenue was correct

```SUM(CASE WHEN `Date` = CURDATE() - 1 THEN (`Revenue`) END)
```

But nothing displayed for my beast mode calculation.

Is there a false logic with my beast mode calculation?

• Coach

Whenever I typically need to do some period over period comparisons I actually restructure my data so that I have a report date and a "comparison date" (the actual date the metric was recorded on) and calculate it as necessary. This allows you to have custom defined periods (like 2 weeks ago and a week ago).

You'd essentially use the report date in your graph but then have beast modes to determine which type of period to display (last week, 2 weeks ago etc.) and centralizes this logic so you have one place to maintain it rather than across multiple cards and beast modes.

Regarding your actual beast mode -

Is your Date field a Date or a Timestamp?

Have you just put in CURDATE() - 1 to see what date it returns to make sure it's returning what you expect?

When I have issues with my beast mode utilize a table card and break down each element of the beast mode into their own beast mode to make sure each step is what I'm expecting. In your case `Date` in one column and CURDATE() - 1 as a separate beast mode and make sure they line up to what you're expecting.