A user does an import (was Re: New transaction matcher)

Chris Lyttle chris@wilddev.net
26 Nov 2002 04:40:44 -0800


I've written this little blurb in the hopes that it will help the
discussion about the import process. Comments are welcome :)

User assumptions:
1) I know 90% of my transactions aren't in the register cause I'm lazy
2) I know some will match previous transactions, but I just want to
quickly make sure the match is correct
3) As I know nothing about file formats/protocols, etc I want it to be
obvious what to do, when to do it and where to go next.(no
'discovering')
4) I know my bank, and have a vague idea about what checks I've written,
etc
5) My primary task here is to get as easily as possible, what is on the
bank webpage about my account into GnuCash.
6) I expect the software to remember if I have matched a downloaded
transaction to an old one, so if for eg, my phone automatic payment from
my account say's VERIZ123 all the time I want it to remember last time
so I dont have to match it again.

Now lets take a user trying out importing a bank download

I've downloaded my statement, as I looked at the help and it said to do
this (hopefully) or I noticed a download button on my bank website

I open GnuCash, go to the import menu, I expect it will ask me where the
file is or hopefully remember I download to the same place and open
there to choose the file.

When the import pops up, the file is processed and is prompting me for
some sort of action cause it isn't sure what to do here. This is where
we all diverge/argue about where we go next.

My take;

The user will expect a list of what he has imported so he can quickly
look to see which ones he wants to change something on. This would list
as far as possible matches to existing tansactions. 

The first thing he does is to scan thru the list and look to see if the
information presented is incorrect in some way. As most are new, he will
spend the most time looking at matched ones. The only time he will click
on something is if one of the following is true;
a) One of the new transactions is in fact a dupe of an exisiting one and
he wants to change it
b) One of the dupes is wrong
c) He wants to check one of the transactions.

Some people (like me) will spend more time on this than others. Some
will prefer to just do a quick scan of the dupes and then just alter all
the new ones once they are in the register.

Once something is selected, it has to be visually obvious what to do
next. Most people I think would prefer a list of actions to select from.
If nothing else is there but the list some people _may_ double click,
others may just click OK in the hope something will happen.

My proposed list of actions to do with one of the 3 clicking reasons
above;

a) Its marked new but its a dupe, let me select the list of potential
dupes for this
b) The dupe is wrong, give me a list of dupes to choose from
c) I'm just checking, let me see more info on the dupe

Now I've finished this bit, now I want the ones that are dupes to go
away. If you're a lazy user you'll want the non dupe ones to go to a
default account, one click and you're done. If you're more particular
about wanting to make sure all the splits are assigned to the correct
account you'd want the ability to be able to change the transaction.
This could be as simple as assigning a split account to a new
transaction.

Now personally, I'd love for the ability to 'copy' an existing
transaction. That way I could use an existing transaction as a template,
use the date from the downloaded one and the amount and have the splits
and split amounts already assigned. I would use this to go through new
transactions and make copies of old ones that are the same. This would
save me a bunch of time editing the register.

Chris
-- 
RedHat Certified Engineer #807302549405490.
--------------------------------------------
	|^|
	| |   |^|
	| |^| | |  Life out here is raw 
	| | |^| |  But we will never stop
	| |_|_| |  We will never quit 
	| / __> |  cause we are Metallica
	|/ /    |
	\       /
	 |     |
--------------------------------------------