The billing class can be seen as a very high level selection criteria that differentiates between different billing scenarios for different customers that do not have much in common.
As an example one would have different billing classes for residential customers and industry customers. Since the billing class is a criteria to separate very large groups of customers one would expect to have very few (less than 10, usually between 3 and 6) billing classes in a productive environment.
The database table for the billing class is named EAKLASSE and it's maintained in IMG via the path 'SAP Utilities' -> 'Contract Billing' -> 'Billing Master Data' -> 'Define Billing Classes'. This table doesn't contain any further attributes but client (MANDT) and billing class (AKLASSE).
The billing class is a part of nearly all other billing master data (exceptions are rate types and operands) and the consistency it's checked during creation and maintenance of this data (e.g. rate and schema must belong to the same billing class, if a rate shall be used in a schema).
Since the billing class is maintained in the historical data of the installation (as an obligatory field), it may change in time. It also may change within the billing period, so it's part of the billing line items (ERCHZ) and not of the billing header.
The check regarding consistence of billing class is also done in installation facts for prices and discounts (see SAP note 533719). This check caused many customer messages in the past. But this is not valid for settlement prices. These prices can not be determined properly during maintenance of the facts, because they are also defined by the price class that is maintained in the register or the device that is not known during facts maintenance. In former times also in billing there has be no check regarding the billing class of settlement prices, but this has been changed with SAP note 815463. With this note a modification has been installed to switch on or off the check on billing class for settlement prices. The standard is: below release ERP 6.00 the check isn't done and in release ERP 6.00 and higher the check is done but can be avoided by modification.
A major problem occurred in the past in deregulated scenarios for installations with division type gas. Since the billing class is also part of the gas procedure and the gas procedure is maintained on register (or device) level it was not possible to install the same gas device in two installations with different billing classes. For this the generic billing class 'XXXX' was invented that is only used in gas procedures and that's not maintained in EAKLASSE. During billing process this generic billing class will be overwritten by the actual billing class of the installation that will currently bill the device. Nevertheless the billing class in volume correction factor procedure and calorific value procedure must be coming from EAKLASSE. For this see SAP Note 546836.
The billing class is also a field in the rate. If a rate is created with a template the billing class from the template was driven to the new rate. This has been changed with SAP Note 667982 .