There are standard accounting rules for reporting publicly traded company`s income. Once you start a particular method -- example, report advances as income in the Q the advance is received -- you must stick to those same rules.
For most small companies, they do not report income until the income is in the bank. It is easier that way since they do not have to go back and ``restate`` earnings should something fall through -- a Wall Street no-no. Large cap companies will use different accounting systems, but they must stay consistent -- this was one of many ENRON issues.
I hope that helps.
John