I think you're on the right track but I'm not sure if this can be done in a single step.
At the least you'd need a filter on Master Date for the date period. Standard out-of-the-box one works fine. However don't display it.
Create a parameter like "Date Granularity" This will include a list of text values: day, month, year etc.
Create a date calculation which is dynamic based on "Date Granularity"
A case statement would give you a bit more control, but you can get away with what's in comments if "Date Granularity" exactly matches the first Datetrunc parameter.
On your Viz display "Display Master Date", not the "Master Date" from your query.
If we were in the movie "Stand By Me" I'd give you some skin. Rad.