Budget/Forecast Versioning and Data
Posted: Thu Oct 24, 2019 3:57 pm
We’ve got a large reporting cube where we keep Actuals (from Oracle), budget and forecasts. We have multiple versions of the forecast, that must be kept, that are created quarterly and sometimes monthly. The configuration for these forecasts is such that for months that have Actual, Forecast equals Actual. In order to maintain this setup there are typically two options, 1) load Actual into each of the forecast versions for the appropriate months or 2) have a rule that forces Forecast to equal Actual for those months. Option 1 does not require any rules but you are duplicating a lot of data. Option 2 (which we currently do) is easy but it requires a bunch of feeders.
I am looking for a way to reduce the memory footprint. Option 1 is a killer, I don’t want to do that. Option 2 requires a bunch of feeders, which is not optimal. I was considering doing this with a combination of consolidations and rules. Here’s the scenario: Each of these forecast versions is a consolidation in the Version dimension, containing the Actual element and Forecast data (where the only months populated are future months). This works fine when first created but it stops working once you start getting Actuals loaded for any of the future months. My idea here is to create elements in the Version dimension that look like this:
C 1st Quarter Forecast
Actuals (weight of 1)
1st Quarter Forecast Inputs (weight of 1)
Actuals – April (weight of -1)
Actuals - May (weight of -1)
……
Actuals – December (weight of -1)
C 2nd Quarter Forecast
Actuals (weight of 1)
2nd Quarter Forecast Inputs (weight of 1)
Actuals – July (weight of -1)
Actuals – August (weight of -1)
……
Actuals – December (weight of -1)
Actuals – April thru Actuals – December would be populated via a rule, but here is the kicker: I don’t need to feed it since I could care less about zero suppression. Can anyone think of a reason I should not do this? Or, does anyone have a different design they use to minimize data duplication?
I am looking for a way to reduce the memory footprint. Option 1 is a killer, I don’t want to do that. Option 2 requires a bunch of feeders, which is not optimal. I was considering doing this with a combination of consolidations and rules. Here’s the scenario: Each of these forecast versions is a consolidation in the Version dimension, containing the Actual element and Forecast data (where the only months populated are future months). This works fine when first created but it stops working once you start getting Actuals loaded for any of the future months. My idea here is to create elements in the Version dimension that look like this:
C 1st Quarter Forecast
Actuals (weight of 1)
1st Quarter Forecast Inputs (weight of 1)
Actuals – April (weight of -1)
Actuals - May (weight of -1)
……
Actuals – December (weight of -1)
C 2nd Quarter Forecast
Actuals (weight of 1)
2nd Quarter Forecast Inputs (weight of 1)
Actuals – July (weight of -1)
Actuals – August (weight of -1)
……
Actuals – December (weight of -1)
Actuals – April thru Actuals – December would be populated via a rule, but here is the kicker: I don’t need to feed it since I could care less about zero suppression. Can anyone think of a reason I should not do this? Or, does anyone have a different design they use to minimize data duplication?