[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Proposed changes to make it easier to ship after billing

On Mon, May 27, 2013 at 8:32 AM, John Hasler <..hidden..> wrote:
Chris writes:
> So if I pay $80 for a year of hosting on October 1, you would
> materialize $20 in income on that year, and $60 the next year. Most of
> the time this is not really material but there are cases when it could
> be, since recognizing all income at the beginning of the contract can
> inflate earnings when clients are gained and inflate losses when
> customers cancelled.

The customer should credit cash $80 and debit prepaid expenses (an asset
account) $80.  He should then transfer $6.67 from prepaid expenses to
expense each month.  The hosting company should debit cash $80 and
credit prepaid income (a liability account) $80.  It should then
transfer $6.67 from prepaid income to income each month.

In practice such a small transaction is likely to be treated as
completed immediately, but if the amount were $800,000 you'd want to do
it right.

However such an approach restricts you to accurate accounting information on a monthly basis.  Arbitrary date ranges (revenue vs expenses of the third week of January) won't work very well.  What we'd like to do eventually is essentially have the transfer taking place continually over the period of time, on an actual days basis, as a reporting matter.  After the transaction's completion date, we just treat it as having been completed.  Before it's start date, we treat it as not existing yet.  In between we treat it as partially complete and adjust on an actual days basis.  In this view you'd have $80 going into unearned income at first, and then an $80 going into income *continuously* over the next year, assuming the customer can't cancel and get some money back.  Then you could run reports on any range of dates and the adjustments would show properly.  Now, if they could cancel at the end of each month, you could break it down into 12 month-long transactions and this would still just work.