Dear all
We need your input.
I've been giving some thought to the process of invoicing, and I believe that I have come up with a relatively simple logic of how it should work.
Introduction
The general principle is that invoicing works exactly like a bank statement that you get every month. It shows debits, and credits, with a value carried over from the last statement.
A2Billing invoicing could work in exactly the same way, using the same idea - a post-paid customer has an overdraft limit, while a pre-paid customer does not.
There are two approaches to invoicing in accounting.
1. Send an invoice, and when it is paid, mark it as paid. 2. Send an invoice every month, with the balance carried forward from previous invoices. Thus the latest invoice replaces all previous invoices.
In my opinion, Option 1 is suitable for selling phones, or consultancy, e.g. one off items, but option 2 is more suitable for telecoms billing, as we expect to send every customer an invoice every month, so all we are interested in is their outstanding balance.
The process
Each customer has a balance available to them – this is a net value – excluding taxes, and a credit limit, which is also a net value.
The amount of balance available will either be the value of money given to you by the customer, or it will be the credit limit you have given the customer, plus any money they have given you.
e.g. • Postpay customer balance 0, credit limit, 100, gives an available balance of 100 • Pre-pay customer balance 50, credit limit 0, gives an available balance of 50 • Customer with balance 25 and credit limit of 75, gives available balance of 100
As charges are made during the month, e.g. DID charges, lines added to the invoice, Subscriptions, Recurring charges, they are added to a “Preview invoice” and at the same time, the available balance is reduced.
On invoice day - which is set in the customer page. The invoice is prepared, and closed down - it is no longer a preview invoice, it is the invoice / statement for that month - and no items can be added on to that that invoice. It is now fixed as a permanent record for that month's usage in terms of payments, charges and calls made, and of course TAX.
The balance from that invoice is recorded, and a new preview invoice prepared, with the first line being the balance carried forward from the previous month.
The Balance carried forward comes from the total net charges, less the total net payments in the previous month.
Then the whole process starts again.
A record of the time and date that the new preview invoice is created is kept, so that only items after this date and time are recorded on the new invoice.
The key to this is that anything that changes the customer's balance must be written to the customer's preview invoice, or the system falls down, and you do not have an audit trail.
Advantages
I believe that this approach will have the following advantages:-
1. A unified approach to all charges of whatever nature that are applied to a customer's account, making it easy to understand.
2. Most people are familiar with a bank statement, so the concept will be familiar to most customers, as our system would work in the same way.
3. Remove complexity of paying money against invoices. Simply an outstanding balance maintained.
4. Flexibility in whether a customer is pre-pay or post-pay, simply by changing the credit limit of the customer - e.g. 0 credit limit of pre-pay, and a value for post-pay.
5. No requirement to set payments against individual invoices, with the complexity and administration that this requires.
6. A complete audit trail for every customer.
7. Simplification of the process of maintaining payments, a payment comes in, and it is inserted against the customer, customer’s available balance is updated and a payment line inserted on the preview invoice.
Finally, because all the core information is in one place - creating invoices, statements, or receipts in any format can be done from the same raw information from what we may call a transactions table, simply by running an appropriate query, and displaying the information as desired.
The Rules
1. Invoice items may not be edited in terms of amounts, as to change the amount would put it out of sync with the Outstanding balance.
2. Corrections can be made by adding a line (credit or debit) onto the invoice during the billing period, which is either negative or positive.
3. No changes can be made to the outstanding balance unless a line is written to the transactions table listing that transaction that changed the balance.
4. Services are disconnected when the customer exceeds his credit limit - e.g. he goes over his overdraft limit.
5. Effectively, each invoice sent out will replace the last invoice in terms of amount to pay, as it includes the balance carried forward.
6. Payments can be made either in excess of the invoice, or less than the invoice and the system will cope.
Nice to have
The preview invoice can be closed off at any time of the month by the admin, and a new preview invoice restarted with the current outstanding balance. This could be done on a customer by customer basis, or run by pressing a button, and invoicing a particular subset by filtering on customers first - a bulk update for instance. This would allow a customer to have their final bill, as the balance would be reset to zero. Alternatively, the customer could close off their own invoice and pay it.
In conclusion
The key to understanding this is to regard the system like bank statement. where the customer’s account is credited or debited, and all services are suspended when the customer has no balance available.
One disadvantage is that different types of service attract different levels of VAT, this will not be easy to include in the current version of A2Billing, as it is an accounts based system, but I am sure there are work arounds which can carry is through to the next version of A2Billing, where we can write this requirement in from the ground up.
Can you help
Please could you inspect the work flow above, and tell us if it is acceptable, and please pick holes in it, or ask any questions where it is not clear.
We do not want to be re-designing this again, and we are keen to get it right.
Initial indications show that there is a lot of work in doing this. We will come up with an estimate of how much work is involved after we get your comments.
Yours
Joe Roper
|