After a recent stay at a Best Western property in Napa valley and chatting with staff; I found out best western corp as an immediate compensation policy (for severe issues) if you call the 800.WESTERN and talk to customer care rep.
The staff told me to call because they new the manager on duty wouldn't do anything. I had soiled linens and a dirty bathroom in my room and they refused to switch me rooms. I called to make my case after checking into the Hilton Garden down the road (didn't get a refund at the BW).
I spoke to the BW Customer Care rep (very nice btw), I gave her my info (BW Rewards Diamond and told her I'm also diamond through Hilton H Honors and Platinum at Priority Club etc) and made my case. She offered me a full refund in the form of travel card for future stay and points. She stated that this will be noted in my profile (I think they track how often you complain).
If you had a bad experience you can possible get compensation if the hotel doesn't offer you anything. Make sure you make your case at the hotel level first during your stay and this will help your cause.