When we first built our MetraNet billing platform our customers (large enterprises and service providers) generally offered services that were clearly defined in terms of character and scope, with fairly stable setup charges, usage charges, and periodic recurring charges. Back then, with some exceptions, it was normal to issue regular periodic invoices that consolidated all of those charges. The invoice would then trigger an entry in the service provider’s Accounts Receivable (AR) ledger. That in turn, again with a few exceptions, would constitute the point at which Revenue Recognition would take place. The few exceptions (for example, an invoice for a payment in advance for a service set-up charge) would be handled by adding a matching journal entry in Deferred (or unearned) Revenue until such time as the services had been delivered. The adjustment could be handled automatically (triggered by a flag from order management or billing) or manually.