Re: bank accounts, reports vs. logbook

2010-12-14 Thread John Wiegley
On Dec 14, 2010, at 12:30 PM, Simon Michael wrote:

 However, it might be nice if we can agree on a consistent usage, at least to 
 make
 documentation and learning easier. I believe John W. does it this way:
 
 ACTUAL=EFFECTIVE
 
 or in this case
 
 BANKDATE=MYDATE

The real distinction is this: Whichever date is to the left will
be reported by default.  If you want that to be the bank's reckoning,
then put that to the left.  If you want it to be your checkbook's
reckoning, then put that date to the left.

There is no inherent meaning, however.  I may just end up documenting
them as leftdate and rightdate, or something equally meaningless, to
leave the actual semantics up to the user.

John

Re: bank accounts, reports vs. logbook

2010-12-14 Thread Simon Michael

On 12/14/10 9:45 AM, Gabriel Kerneis wrote:

I use MYDATE=BANKDATE for several reasons:
- it looks more logical to append the bankdate (which I'll always learn
   *after* I write the transaction) rather than prepending it,
- it is also more logical to read the dates (left to right) from the
   earliest to the latest,


Personally, I agree with you on both of the above points.


- the actual date is (IMO) the date the transaction actually happens (ie.
   the real date); the effective date is the date it becomes effective on
   my bank account.


I think this is just one interpretation of many. What's real depends on
context and point of view, and also our words are slippery. The friday night
you purchase a movie ticket (that clears on monday) seems like the real
date, but the day your cheque is cashed (and perhaps bounces) is more real
as far as your bank and your account balance is concerned. As you look at other
kinds of real-world accounting transactions you find more ambiguities.

On 12/14/10 10:56 AM, John Wiegley wrote:
 The real distinction is this: Whichever date is to the left will
 be reported by default.

As I said. Good.

 There is no inherent meaning, however.  I may just end up documenting
 them as leftdate and rightdate, or something equally meaningless, to
 leave the actual semantics up to the user.

I think this would mean this exact confusion and discussion will recur 
endlessly.
Wouldn't it be better for ledger to be a little opinionated here, to give some
guidance ?

I'd be ok with it ratifying (describing, suggesting) your original convention,
which I've documented to the best of my ability at 
http://hledger.org/MANUAL.html#actual-effective-dates .
(You planned to draw from this at some point, so be aware that I rewrote it 
again
recently.)

But I think in my ideal world the best practice that we'd document is what
Gabriel and I, as left-to-right language speakers, intuited: the date that is
chronologically first - which is also usually the one you know about first - is
written first (on the left). Second, we would converge on and document some 
consistent
terminology to use when talking about these dates. Third, based on that we 
might or
might not choose to rename date-selecting options to something neutral, eg
--effective might become --second-date.

Comments ?



Re: bank accounts, reports vs. logbook

2010-12-14 Thread Brian Cottingham



I think this is just one interpretation of many. What's real depends on
context and point of view, and also our words are slippery. The friday 
night

you purchase a movie ticket (that clears on monday) seems like the real
date, but the day your cheque is cashed (and perhaps bounces) is more 
real
as far as your bank and your account balance is concerned. As you look 
at other

kinds of real-world accounting transactions you find more ambiguities.


This comes down to the difference between cash- and accrual-basis 
accounting. In cash-basis accounting you record transactions based on 
when money actually leaves or enters your account. In accrual-basis 
accounting, you record transactions based on when you commit to spending 
or earning money (e.g., the day you write the check, or the day your 
employer's payperiod ends).


If you're practicing accrual-basis accounting, it is logical to use the 
left date for the date you decided to spend money (since that's the date 
accrual-basis accounting cares about), and use the right date for the 
date the transaction clears.


If you're practicing cash-basis accounting, it is logical to use the 
left-date for the date the transaction clears (since that's when you 
consider the money actually spent), and the right date for the date 
you wrote the check (if you record that at all; I'm not sure that date 
is important in cash-basis accounting).


I prefer to use accrual-basis accounting, because it pairs very nicely 
and naturally with double-entry accounting, eliminating my need for 
virtual transactions while providing more information at the same time. 
See this thread[1] for info on how I use accrual-basis accounting in 
Ledger. Some people mix the two methods together, but choosing one to 
use as your primary accounting method can help clarify quantitatively 
which date should go where.


[1]: 
http://groups.google.com/group/ledger-cli/browse_thread/thread/cb92be9afa95b691/c03c8cfc2b711315


-Brian

P.S. - My understanding of accrual-basis accounting is limited, since 
most articles on the subject I've encountered expect practitioners to be 
businesses, and thus contain lots of scenarios, terms, and assumptions 
that are beyond be. If I'm incorrect, please let me know.


Re: bank accounts, reports vs. logbook

2010-12-14 Thread Simon Michael

That's a nice clarification, but I don't follow why the choice of accrual
or cash basis determines which side each date logically belongs on ?

For me it seems more logical to have a fixed ACCRUALDATE=CASHDATE ordering,
so that in the common case they are also ordered chronologically. You don't
want to change all your dates if you switch from cash to accrual accounting,
and as noted in that thread it's common to mix both in a journal.




Re: bank accounts, reports vs. logbook

2010-12-11 Thread Brian Cottingham
Multiplying all transactions by -1 will only tell you that /something/ 
doesn't match, but won't tell you what. I get the same information 
without the multiplication thing by looking at my ending bank statement 
balance compared with the ending balance Ledger reports. Finding out 
/where /a discrepancy is//requires comparing each transaction in Ledger 
and your bank statement, either by hand, or with an auxiliary program.


When I reconcile Ledger against my bank statement, I run ledger -wcBU 
reg checking. I search my bank statement for each transaction, and when 
I find the transaction I store it's posting date (the date the 
transaction finished going through the system and became real). In 
Ledger you do this by saying spending date=posting date.


By storing the posting date, I can run ledger -wBC --sort d --effective 
reg checking and see the transactions in roughly the order they will 
appear on my bank statement (my bank sorts by posting date). This makes 
it easy to compare a running balance: Starting at the beginning of the 
month, I make sure the balances on the statement and in Ledger match. I 
then run through each day of the month, and if the balances for any 
given day do not match, I know something's wrong, and about where that 
something is.


If I get to the end of the month and all balances match, I know I'm 
reconciled! I do this whole process closer to weekly (with my bank's 
online transaction log) than monthly, so it doesn't build up.


-Brian


On 12/11/2010 04:36 AM, Ɓukasz Stelmach wrote:

Hello.

I'd like to ask everyone a question about keeping records for bank
accounts. What is your way to keep track of your operations and check
them agains bank generated monthly reports?

I log every tranascation (cash or card) the day (week?) it happened. At
the end of a month a get a report from my bank. I convert the CSV to
ledger format and now I've got two (not including cash transactions)
lists comprising more or less (I'd like to see how much more or less)
the same events. What is the best way to compare/merge[*] them?

Is there a way to to make ledger multiply transactions from one file by
-1 to try to balance two files?

[*] card transactions have better description in the file I create
manuall, others, like banking expenses are only in the report.