Strategies for reducing BI query cost without making dashboards feel stale?

We have a set of popular dashboards backed by complex views. Shorter refresh intervals improve trust, but repeated scans are expensive and some dimensions change only a few times per day. What combination of materialized views, result caching, incremental tables, and dashboard refresh policies has worked well without surprising analysts?