I think period should be a third parameter:
sideProject.generate(8500,'USD','monthly');
sideProject.generate(8500,'USD','monthly');
revenue { amount: 8500, currency: 'USD' }
periodic_revenue { interval: 'month', amount: revenue }
Then you can act on revenue amounts around the place, and only have to think/handle interval's if/when it's appropriate.