Your sample assumes that the 3 months of activity are consecutive and they are not always (for example product ABC). To fix your example to do what I need, it would be something like this:
load Product, if(isnull(monthstart(max(Saledate,3))),monthstart(min(Saledate)),monthstart(max(Saledate,3))) as RefDate
group by Product;
That being said, I am hoping to find a way to do this in the chart directly, so that I could make it dynamic.