my thought is budget sales and costs should be in a single fact table something like
%itemkey, type, %lockey, %calkey, sales, costs,budget
TYpe identifying the ledger item as either a sale, cost orbudget value.
LInk to your calendar and location dimensions using the same key and Your model should work better.
HOpe this helps
Try like this
load * inline
[loc.key, sales, costs, cal.key
[location]: load loc.key, loc.city as LocationCity, loc.name inline
[loc.key, loc.city, loc.name
[Calendar]:load * inline
[ cal.key, date, year, month, yearandmonth];
budget_amount, loc.city, yearandmonth, loc.city as budgetCity inline
budget_amount, loc.city, yearandmonth