Billing involves the definition of the billing rules and the execution of the business run.
Billing rules are a separate business entity in the system and dictate how the system should behave in terms of generating the subscriber bill (financial transaction of type invoice). The following diagram describes the logical concepts behind the billing rules.

Billing rules dictate whether a financial transaction will be created on new subscription, whether a prorate calculation will be applied, whether a credit note will be generated for the pre billed period during a downgrade etc. Rule criteria that dictate whether a billing rules applies are customer classification, the package and the bouquet.
Billing rules are attached to a billing run schema and a schema may or may not be linked to a subscription. There is always a default schema that applies to subscriptions with no assigned schema.
This layering allows for very a dynamic and powerful way of defining in a concise way how you want to have the ad hoc and billing run to generate financial transactions.
The actual billing run is graphically defined and can introduce a number of additional system steps such as creating a log file, preparing the invoice images for the print out, etc.
The following screen shows how a billing run is defined.
The billing run can either be initiated by a user driven screen or can be scheduled to run on a regular basis, i.e daily.