We have an established subject area with its own BMM, and I have a requirement to add a new table that is more
granular then the existing fact table.
Here is a simplified scenario based on our Budgeting subject area:
Dimension for Budget category: example: Office supplies
Dimension for Budget Item: Examples: Pencils, Pens, Paper
Fact table: Budget amount, which is summed, Examples: Pencils=$100, Pens=$50, Paper=$200
So, if I analyze Category and Budget Amount, here are the results:
(Report 1)
Office Supplies $350
If I include the Item, here are the results.
(Report 2)
Office Supplies Pencils $100
Pens $50
Paper $200
This is currently the highest granularity for the budget subject area, and you cant go more granular than the Budget Item.
We have a requirement to bring in the Expenditure file, which is more granular than the Budget file.
There can be anywhere from 0 to n expenditure records for every budget record
So, for example, lets look at the budget item =Pencils.
The expenditure file has two records: Red Pencils = $20, and black pencils = $80.
The budget file is joined to the expenditure file.
Now when run the same two reports, the amounts are not correct:
(Report 1)
Office Supplies $450
(Report 2)
Office Supplies Pencils $200
Pens $50
Paper $200
It's summing the Budget amount for Pencils ($100) two times, because there are two expenditure records.
Trying to tear apart and rebuild the business layer in order to try and make the Expenditure table the basis for the Fact table
would be a nightmare due to the complexity of the whole thing. Plus, I'm not sure if I can do that because Expenditure
records do not exist for every Budget item.
How can I add in the Expenditure file, while still having my budget amounts sum correctly?