Hi Cherry (@v-piga-msft), thanks for the answer but, pleas please PLEASE include an explanaition of the root cause so that we don't have to randomly stumble arround in the dark trying various permutations all the time.
I managed to work arround the problem by adding a column to my date table and then using a lookup in the fact table to access the variable weighting...
Dim Date =
ADDCOLUMNS(CALENDAR([From Date], [To Date]),
"Date Key", VALUE(FORMAT([Date], "YYYYMMDD")),
VAR m = MONTH([Date])
VAR y = YEAR([Date])
RETURN IF(m > 6, y + 1, y),
"DOW", FORMAT([Date], "dddd")
VAR endDate = [To Date]
VAR invLag = [invLag]
VAR prob = 0.8
VAR d = DATEDIFF([Date], endDate, DAY)
VAR x = IF(d > invLag, invLag, d)
prob - x * prob / invLag