Thanks for your reply.
I think you're right, and it's not the synthetic key (My fix with the concatenated key didn't solve it after all).
I'm still getting different results every few time I load the data, though the QVD's themselves don't change.
I'm not allowed to send the actual data, and I haven't been able to reproduce this with a test data set.
I think the issue might be related to my Set analysis somehow. I use a variable (In my load script) to only load data from the last year, based on the selection:
let vPriorYearEnd = '=MonthEnd(addmonths(YearStart(max(CHECK_IN_DATE)),-1))';
I then use this variable in my set analysis:
It seems that the calculation of vPriorYearEnd isn't working properly sometimes. If I only load my TARGETS, the data is always fine, but it seems that sometimes the system checks the max(CHECK_IN_DATE), based on the CHECKINS table, and not from the whole data set.
My biggest issue seems to be that it's inconsistent. I attached 2 screenshots of the same visualization. Each time was after I did a load (The load script hasn't changed, and the data files haven't changed either).
The synthetic key isn't your problem - whereby you should always avoid them even if they work identically to an own combined key. Your problem are missing key-data and you couldn't solve it with a table-association. One solution would be to concatenate both tables which is quite easy and performant and the other would be to create a link-table between both tables which contained all key-values. See for this: Concatenate vs Link Table