Always depends on the situation for my customers networks. Are you currently doing 3Mbps per user, role, or AP-Group?
I personally like per role because it can be an easier decision to make based on your internet connection. For example, if you have a 100Mbps internet connection and you don't want to exceed 20Mbps for guests then your per role download contract could be 20Mbps. If there are only a few Guests users on they will have faster/better speeds.
I have seen tiered Guest bandwidth contracts become popular too. Using Clearpass authentication we can send back different roles for different Guest Users. For example - BYOD employee/student devices on Guest if they sign in with AD creds they get better speeds than someone that is an actual visitor. Giving more information in an incentive to get faster speeds.