Hi Dan.

I've just repeated Allesandro's steps on 2016.2.1 and got the same results as he.

With the exception that screenshots for PTD and LYPTD showing usage of ISNULL function, whereas you should use just %OR(...) expressions that are written before screenshot.

Here is the MDX I've got:

WITH  MEMBER [DateOfSale].[PTD] AS '%OR(PERIODSTODATE([DateOfSale].[Actual].[$variable.Period], [DateOfSale].[Actual].[DaySold].&[NOW]))' 
MEMBER [DateOfSale].[LYPTD] AS '%OR(PERIODSTODATE([DateOfSale].[Actual].[$variable.Period], PARALLELPERIOD([DateOfSale].[Actual].[YearSold], 1, [DateOfSale].[Actual].[DaySold].&[NOW])))' 
SELECT NON EMPTY NONEMPTYCROSSJOIN([Measures].[%COUNT],
       {[DATEOFSALE].[PTD],[DATEOFSALE].[LYPTD]}) ON 0,
       NON EMPTY [Product].[P1].[Product Category].Members ON 1 
FROM [HOLEFOODS]

Alexander.