We provide a customisable SaaS solution, and have adopted the classic billing model of a monthly user subscription fee. However some of our clients also require us to make customisations to their instances from time to time.
Currently, if the customisation can be refactored into the main / shared codebase (thus allowing all of our clients to benefit from it), we do not bill for it. But the majority of customisations are client-specific, in which case we bill per hour (albeit at a significant discount to market-related hourly rates for software development).
I know of some companies that don't bill for their time at all, and others who bill for everything. What are your thoughts on the various strategies?