Store billable rates in currency
You can use currency to store the billable rates for each type of person and event. By using the currency exchange rate table to hold these rates, it is easy to adjust the rates by month. A schedule line would contain the number of hours to use to create the revenue and the translation method would create the revenue amount on the same line. For reporting purposes, the local (untranslated) data would be the number of hours, while the periodic translated data would be the total revenue.
You could also expand this solution by using currency on an alternate dimension to store the rates with the job classifications in the Exchange Rate table for easy reporting.