If I understand correctly, it is about analyzing planning and factual recruitment employee. It is difficult to express an opinion without knowing the goals and objectives of the analysis, but nevertheless I would do the following.
1) When loading tables 'Forecast' and 'Expenses', I would combine them into one by adding a flag field (for example, the value of field 0 if the entry is from table 'Forecast' and the value of field 1, if the entry is from table 'Expenses'). This will get rid of part of the synthetic key: [Level 0]-[Level 7].
2) It probably does not make sense to generate the field [Supplier] when loading tables 'Employee' and 'Forecast' . These data can be taken from the table 'Expenses' in the analysis. This will get rid of part of the synthetic key: [Supplier].
3) As I understood from the data, the qualification code is field GROUP_CD. Here everything depends on the analysis tasks. Here, either the [Date] and [GROUP_CD] fields are may be combined into a manual synthetic key, or leave the [GROUP_CD] field as is, but generate canonical dates from fields [Date] of tables 'Expenses', 'Employee' and 'Forecast'. About the canonical dates you can read here Canonical Date
These considerations are only based on the analysis of your code.