A new project has an amount. It is always related to a client.

One client can have many projects. And he may pay in steps for a particular project.

In order to keep track of client payments, I've created a table namely client_ledger which contains information about date, time, amount, mode of payment & related project.

But then in one of the software screens, I have to reports pertaining to a client's debit & credit.

So there are 2 things that can be done :

  1. Either I can get the total amount of all projects of that client and his total payments & then can show how much balance is left to be paid.

  2. Or if I'd created an entry in the client_ledger table for DR, then as soon as a project is created, an entry is made in the table for DR and subsequent payments received will be CRed into the data-base. In this case, if a project's amount is modified/edited later, then either the original DR entry has to be modified, or a new CR entry followed by the new project amount's DR entry should be made.

Which of these processes should be followed ?

  • I'm not sure how this question could possibly have an answer. programmers.stackexchange.com/help/dont-ask – MetaFight Dec 12 '13 at 13:22
  • Keep it simple. #1 can be done now. #2 and always be done later if #1 isn't working out. – Reactgular Dec 12 '13 at 14:50
  • 1
    Would it be fair to recast this question as whether to implement single-entry or double-entry accounting? – neontapir Dec 12 '13 at 19:10

Talk to the accountant.

Whether or not you create a DR when a project gets created depends on when the revenue is recognised. It's simple for sale of goods, when the title has been transferred, revenue is recognised. But with a project, it's not clear that the money received is revenue because no work has been done yet at the start of the project.

If the client pay before project start, then it becomes Prepayment (liability). If they pay after project finished, it becomes Receivable (asset).

It's not wrong to recognised project value as revenue at the start of project, but if this is used as base for taxation, then they'll also be prepaying the tax, which is bad for cash flow. If the total project value is not recognised as revenue, then you might need to record the unrecognised part somewhere else, not in ledgers because they only record transaction that's already happened.

My guess is, if you go with number 2, then it should be recorded as Prepayment, which is a Liability not Income. Then as project milestones hit, the prepayment becomes revenue.

  • +1 -- While double entry bookkeeping is not compulsory, any audit on single entry bookkeeping, either by your account or some evil tax collecting authority, will take twice as long and raise twice as many awkward questions. – James Anderson Dec 13 '13 at 3:24

The answer depends entirely based on the purpose of the screen in question.

  • If the screen is meant to show a client's current due balance, then displaying aggregate totals is appropriate.
  • If the screen is meant to show a client's payment history, then including both credits and debits on the ledger and displaying all is appropriate.

If you do implement a the second option, I would encourage as clear accounting principle to enter the a debits for project estimation with a date the estimate is given, and then append additional positive or negate debits latter on as the estimate increases, decreases, or becomes final. (I would not, under ANY circumstance, change an accounting entry from what was a correctly entered figure for the time in question.)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.