I have now achieved what I needed with a table for personal variables.
A button modifies a user’s row in the state table with their current selection.
A named formula then returns the value in the row matching the current user, and I use this value for my filters.
Adding a new variable just requires a new column in my table.