Why aren't classes reporting for certain transactions on my report?
Every transaction (with the exception of journal entries) is separated into a header and a detail portion. When classes are assigned, they get attached to the detail portion of transactions. They do not get associated with the header accounts.
So, if the account being reported is a header type of account, the class data does not get saved with the header. Bank accounts, loan accounts, and all header type of accounts, cannot be linked to a class on the reports.
On a Check, the bank account is the header and the account selected in the table is the detail.
On an Invoice, A/R is the header and the income account linked to the product/service is the detail.
The type of transaction information pulled into a report depends on the type of report. For example:
Reports that are reporting income and expense account information, pull information from the detail of transactions.
Reports that are reporting asset, liability, and equity account information, pull information from the header portions of transactions.
An example where you would see both Balance Sheet and Profit and Loss account types reporting would be the Transaction Detail by Account report for all account types. When you review this report, you'll notice that only transactions with income and expense accounts show classes, unless the transactions were entered through a journal entry. If the transaction is entered through a journal entry, QuickBooks Online reports the class for asset, liability, and equity accounts. Seeing a class associated with this type of account is usually an exception since most QuickBooks users do not make journal entries for all transactions, but it is helpful to know why one might report and another might not.