What do you think of this idea: developing billing plans as functional code (sets of functions), managing them in Git (changes, versions, effective dates) as any source code, treating stored account data as immutable results of transactions (making account data available for any given moment)?