To make sure I'm understanding this right -- you've got a filter with a particular set of values, one of which you've set as the default value. When you open up the dashboard, you're seeing that the filter has its value set to the last value that the user selected, and not the default. Is that about right?
PerformancePoint filter values are saved to a database on a per-user, per-filter basis. This means that when you change a filter value in PPS, you can log back in later and still see that same value, even on a different machine. Default values are really only used before the user has had a chance to change the filter value -- so, this is basically the intended behavior.
- Define the function 'NotifyBrowserOfAsyncUpdate(elem)', which PPS will call after any PPS render request completes (i.e., when your filter renders).
- Within the function, check that elem.control exists and then check that elem.control.webPartTitle equals your filter's title.
- If it does, search elem (the filter web part's main container DIV) for the actual filter control and change the value. If you're using a dropdown, this is pretty simple - just remember to call the 'onchange' method on the select as well so that connected PPS objects refresh.
You'll only want to perform this 'force update' once, of course.
Hope this helps!