Every so often I hear about a company that wants to bill all their subscribers on the first of the month. Sure, a lot of companies bill on the first of the month. This has its roots in the old school manual invoicing days of yore. In the digital age, there's almost no reason to invoice on the first of every month.
Ask an accountant if they like to see a steady stream of revenue coming in every single day, or if they prefer giant monthly lump sums. The answer is that a constant revenue stream is much better for cash flow. From the user's perspective, they would rather see round numbers like $99 on their credit card statement instead of prorated charges like $54.16 that look unfamiliar.
What happens if the user decides to cancel in the first month of service? If you prorate your monthly dues and the user decides not to renew before the month is up, you've lost some additional revenue that the subscriber already agreed to pay because you did not charge for the full term.
From the developer's perspective, it's also much easier to deal with whole subscription terms than it is to worry about the shortened, pro-rated term lengths. At Recurly, we are very big fans of reducing the complexity for programmers -- they should be focused on developing your service, not on edge cases of subscription billing.
But what about services doing usage-based, or metered, billing? The usage counter would traditionally be reset at the first of every month, hence the need to prorate to first month. Instead, what if the usage counter was simply reset when the subscription renewed? Bingo, problem solved.
So make your accountants, developers, and subscribers happy... keep it simple and forget about billing everyone on the first of the month.