Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

We've captured the moments from FabCon & SQLCon that everyone is talking about, and we are bringing them to the community, live and on-demand. Starts on April 14th. Register now

Reply
Anonymous
Not applicable

Design question

Hello!

I am working on a developing a set of financial reports. Currently everything is being done in Excel. I am trying to fit that data into model. Now I have Project wise Budget, Actual and Forecast values for each month. What will be optimized design?

1. Have all values in one fact table with a flag for identifying Budget, Actual and Forecast values.

2. Have 3 different tables each for Budget, Actual and Forecast values and connect them with dimesion tables. 

 

Regards

Priya

1 ACCEPTED SOLUTION
Anonymous
Not applicable

@Anonymous  if every record is at the same granularity, then yes, Option 1 should lead to a more optimized model.  Tall and narrow fact columns tend to compress better.  Just be sure to create your measures properly:

 

$ Budget = 
CALCULATE(
	SUM(Fact_Table[Amount])
	,Fact_Table[Flag] = "Budget"
)

You don't want to add up Budget, Forecast, and Actual values in the same measure!

View solution in original post

3 REPLIES 3
Anonymous
Not applicable

I would lean towards option 2.  The only way that Option 1 will work is if you have the exact same granularity across all three tables.

 

I'm guessing you have "Actual" transactions daily for specific accounts.  Do you have daily "Budget" and "Forecast" amounts?  It's probably only monthly values, and maybe only at a higher parent account level.

 

SQLBI wrote a great article on Budget Patterns.  I recommend reading it and then creating your data model based on your findings.

Anonymous
Not applicable

Hi @Anonymous 

Thank you so much for the reply! I am not reading data directly from the source system. I will receive monthly files for Budget, Actual and Forecast. So yes, they will have same granularity. In that case option 1 is better since I will be able to avoid joins? It will be a long and thin table if option 1 is chosen.

 

Regards

Priya

 

Anonymous
Not applicable

@Anonymous  if every record is at the same granularity, then yes, Option 1 should lead to a more optimized model.  Tall and narrow fact columns tend to compress better.  Just be sure to create your measures properly:

 

$ Budget = 
CALCULATE(
	SUM(Fact_Table[Amount])
	,Fact_Table[Flag] = "Budget"
)

You don't want to add up Budget, Forecast, and Actual values in the same measure!

Helpful resources

Announcements
New to Fabric survey Carousel

New to Fabric Survey

If you have recently started exploring Fabric, we'd love to hear how it's going. Your feedback can help with product improvements.

Power BI DataViz World Championships carousel

Power BI DataViz World Championships - June 2026

A new Power BI DataViz World Championship is coming this June! Don't miss out on submitting your entry.

Join our Fabric User Panel

Join our Fabric User Panel

Share feedback directly with Fabric product managers, participate in targeted research studies and influence the Fabric roadmap.

March Power BI Update Carousel

Power BI Community Update - March 2026

Check out the March 2026 Power BI update to learn about new features.