It's been rumoured that Rob Browning said:
> 
> [EMAIL PROTECTED] writes:
> 
> > prices are recorded in a transaction with a single, dangling entry.
> > This is allowed since prices 'have no value'.
> 
> OK, so that would solve the "stock split having no transfer-from"
> problem, as long as the engine knew to ignore them when force double
> entry was on...

(from now on lets call xaccSplit a 'je' (journal entry).)

Prices are recordable in a single 'je' because 
(zero shares) * (any price) == (zero dollars)
so additional 'je's are not needed to balance.  Prices are 'trivial'. 

> >  I think that if
> > we can make the register display properly when we debit & credit the
> > same account in the same transaction, then we'll also have the split
> > problem solved.
> 
> I see two potential problems with this.  First we'll need to make sure
> that the engine can tell that it's a stock split and not a
> sell/repurchase.  Otherwise we'll never be able to have reports that
> allow the user play with their tax calculations.

There should be no confusion.  A sell/repurchase occurs when some
money is transfered to a bank account (and that is a taxable event).
A stock split doesn't transfer any cash anywhere.  It is mearly a
transaction with two je's in it, where both je's are in the *same*
account.  It still has to balance, just like any other transaction:

(100 shares) * ($100)  - (200 shares) * ($50)  == (zero dollars)

there was no money actually moved to a bank acct. thus, no taxes.
And since it still balances, the books don't get messed up.

> Second, this seems a little messy.  What if you have bought and sold a
> stock 10 times over the past 5 years, and most of the sells were only
> fractional (say you needed some cash for something), and were never a
> significant amount of any one purchase, and now the stock splits.

As indicated earlier, the recording of a transaction is independent of
how one figures out running totals, or how one figues out cost-basis.

> Don't you now have to figure out what your total current number of
> shares by hand across all of those transactions to be able to enter
> the split transaction?  

Yes, and that total number of shares is shown in the second-from-right
hand column.  A user can either manually copy that number when manually
creating the stock-split, or we can have a little dialogue window that
automates this. 

> That seems much harder on the user than just
> entering
> 
>   ("2000-01-01" split mega-corp 2.0)

I understand that this proposal requires having the engine store 
je's which contain not two, but three numeric values:  amount, price,
multiplier.  If you look at the difficulties that multiple currencies
already offer, adding yet a third thing into the mix could be deadly.

Recall,
Amount == amount of item x
price == cost of x in units of y
and we already have some icky sematics for matching x's and y's
throughout the engine & trying to make them balance.  Putting a
multiplier in is just asking for more confusion, especially when it
seems that the existing engine infrastructure works just fine.
(Its only the register display that isn't/can't display correctly).

> Further, if you made some
> mistake in entering data before the split, whenever you make any
> changes, you'll be required to manually update *all* of the subsequent
> "stock split adjustment" transactions...

Ahh, now *that* is interesting.  However, this problem is not solved
with a multiplier.  Its rather solved with a different thing:  instead
of hard-coding an amount into a 'je', you are arguing that instead, the
amount should be a pointer to some computed quantity.  Suddenly, the 
'amount' field in a 'je' looks more like a spread-sheet cell, with some
arbitrarily complex formula in it .... well, you can follow that train
of thought for a while ... imagine updates, recalculations, directed
graphs without circular loops in them, etc.  Its interesting, but its
a different order of magnitude.

--linas


--
Gnucash Developer's List 
To unsubscribe send empty email to: [EMAIL PROTECTED]


Reply via email to