Dear @lubos, kindly consider the following proposal for Enhancing Customer / Supplier accounts functions.
Problem Summary
The current setup requires the setup of Customer/Supplier accounts such that each special account is a child of 1 and only 1 control account. Special accounts share the same dimension with regular and control accounts which is very limiting since we need to report together all transactions of each party together for practical, control and legal reasons and we need to maintain each type of transaction (i.e. sales, advances, purchases … etc.) separately for financial reporting purposes.
Example
If you take the case of a contractor who is engaged in an agreement with one or more customers who will also supply certain raw materials and services to the contractor under the same agreement. In addition to the above, the contractor must also present its customers with a security deposit and may or may not receive long term advance payments. These are different types of transactions with the same counter-party.
Most – if not all – accounting standards dictate that transactions of different nature be reported in separate accounts; e.g. sales in receivables, purchases in payable. security deposits in deposits and advances in unearned income.
However, for practical, legal and control purposes, all of these transactions much be summarized together in a single account in the name of the counter-party, especially if they were all under the same agreement.
This creates a dilemma since we need to maintain different types of transactions of a single entity together but separately at the same time.
Currently in Manager.io, one workaround is to simply combine all transactions in a single account and use journals to process purchase transactions from customers or sales transactions with supplier which is not good since you have to have an offline record just to keep up with reporting requirements and also lose all the controls on sales made to suppliers and purchases from customers since we will be using Journals for those.
Another alternative is to create for each customer / supplier:
- a Customer account.
- a Supplier account.
- a Deposit account; and
- an Unearned Revenue account
Multiply this with 40 customers and you get the nightmare of controlling, maintaining and reporting all of these accounts under this setup. As an example, in order to generate a Customer SOA, 4 reports must be drawn from each and every account and then later combined manually which increases the chances of human error and defeats the purpose of having an accounting system.
Proposed Solution
I suggest the following in order to enhance the customer/supplier situation:
- Separate the dimensions for accounts and Customers/Suppliers.
- Generalize customer/supplier accounts to be “Counter-parties,” maintained in the same dimension with IsCustomer and IsSupplier being attributes that require at least one of them to be true.
- Instead of customer dimension, customer list should be “Counter-parties WHERE IsCustomer = TRUE” and the same applies for Suppliers.
- For customers/suppliers, do not assign special account to a control account, instead, just have the ability of multiple control accounts to be comprised of customer.
Implications for Summary View
Drill down from control account to special account. Nothing will change.
Implications for Customer/Supplier View
Using this simple approach, the Customer view should summarize all transactions for all “Counter-parties WHERE IsCustomer = TRUE” and the same applies for Suppliers The balances can be split into receivable (Dr) or payable (Cr) columns for each of the views or have them (+)/(-) depending on context. Upon drilling down, you can have the breakdown by control account.
This will make counter-parties who are both suppliers and customers appear on both views – which should not be a problem – but I assume some may not fancy this, the solution can be to maintain an Index of Control Accounts that compose of Customers and use only those in the Customer View summary and vice versa for Suppliers. This way, even though counter-parties will appear in both Customer and Supplier Views BUT there would be no duplication since each will have a different set of transactions.
Of course there are cases where multiple accounts for the same entity can be used, such as the case of different agreements of the same counter-party, but the user should have the option to combine or segregate.
I would really appreciate if you give this idea some loving or at least some consideration. Thanks.