If it's really based on the current month rather than selections, and assuming you have some sort of master calendar, I'd have some table like this:
Oct 2016,Oct 2016
Nov 2016,Nov 2016
Dec 2016,Dec 2016
Dec 2015,Dec 2015
Month connects to your master calendar, Period is what you put in your chart to replace year and financial reporting lay-out. It will automatically create all the right sub-totals. Sort Period in load order, assuming you've loaded it in the order you want to see them.
If you want to be able to do this based on a selected month instead of the current month, then this expands into an AsOf table by adding one more field, AsOfMonth, which for the data above would be Dec 2016. Then you'd add similar data for all other AsOfMonths.
Thank you for your useful and lean answer. I created an infeed table linked to my master calendar:
and adapted dimension expression:
=if(left(Period,3)<> 'YTD', if(DateCalendar.Month >= month(today())-2 and DateCalendar.Month <= month(today()) and DateCalendar.Year = year(today()) or DateCalendar.Month = month(today()) and DateCalendar.Year = year(today())-1,Period),if(right(Period,4) = year(today()),Period))
My table now looks like this: