Tom Fiddaman wrote:
> At the risk of sounding like a broken record, what problem are we trying to
> solve with the detailed tracking?
Tom,
Im fond of that question, too, so I dont mind the broken record.
I didnt divulge the whole problem at first and, needless to say, that
causes problems. (I did divulge it to Ulli Koenig off-line, and he
did put together a model fragment that appears to be a good way to
start in an SD framework.)
Someone posed me this problem informally. For some reason, it hooked
me, and I got to wondering if there was a good way to solve it in an
SD paradigm. Moreover, while Ive never had an occasion when I had to
track something like this, I began to wonder if I might get a real
problem that shared similar characteristics.
Suppose you get granted Incentive Stock Options (under US law).
Typically, as I understand it, you are given N shares at a price of
X. After 12 months, you have the right to purchase N/4 shares at X;
after another 12, another N/4, and so on. After 10 years, your
rights to buy shares goes away.
The Problem: What policy do you use to buy shares? Do you buy them
as fast as you can? Do you spread purchases over the 10 years?
What is the impact of stock price evolution (i.e., whether its
stable or rapidly rising or ...) on the results of any particular
policy?
One complicating factor is US tax law. Upon exercising an option
(buying a share), you may owe Alternative Minimum Tax on the
difference between the price you pay and the option grant price X.
There is a threshold; if you have less than some amount ($35,000??)
in "Alternative Minimum Tax Income" in the year, you owe no such tax
(Im not a tax lawyer, so dont rely on any of this as certain).
When you sell a share, you owe income tax on the difference between
the sale price and the basis of the stock (the price you paid for
it). If youve held the stock at least a year _and_ its at least 2
years since the option was granted, its taxable at a lower, capital
gains rate.
Finally, you need the cash to exercise options. Assuming you dont
have the cash to pay for buying the stock, is it better to ignore
the tax savings and sell some of the stock "early" to get enough
cash to finance future purchases and the tax obligation, is a loan
better, or is a slower purchasing rate better? (Because of the tax
laws, it might be advantageous to sell in another order than FIFO.)
> Vensim 4.1 includes new QUEUE functions that solve half your problem -
> tracking attributes as a coflow with the queue elements. Unfortunately,
> theyre also FIFO, so unless you move they dont help. Maybe you could
> establish an offshore trading account?
I like your last suggestion (except its not me thats got the
options).
> Im sure its possible to build an explicit structure with arrays in your
> model. As you say, the efficiency penalty might be fairly severe, as youd
> have to pad the array with enough elements to handle the time resolution
> you want, or treat it like a stack with enough elements to handle the
> maximum number of blocks you expect to hold. Ugly.
Ulli pointed out that the SHIFT IF TRUE function and an array of
stocks (of stocks) might help, but theres still the messiness of
creating flows out of each element. When I see something too ugly, I
get worried I might be going about things the wrong way.
> A cleaner solution would be to create an external data structure to track
> holdings (e.g. write a Vensim external function .dll) with functions to
> handle buying, selling and choosing blocks. This would be easier than it
> sounds if you know C, but hides some structure from the model user.
>
> My preference would be to lump things into a couple well-mixed boxes,
> treating shares and basis $ as coflows, neglecting the details. In fact the
> problem isnt very SD-like - the emphasis is on detail and there isnt much
> in the way of dynamics. If I wanted to worry about the details, Id be a
> tax accountant, not an SD modeler
.
My current thoughts mirror yours. Despite some good ideas from Ulli,
Im thinking its more of an OR problem. SD toolsets might be a
convenient way to handle the bookkeeping, except, as you note, they
dont do this sort of bookkeeping well. If I were to solve it via
simulation, Im currently thinking Colored Petri Nets offer a much
better approach. Although Ive not yet done that simulation, I have
sketched out the model, and it appears a lot more natural in that
paradigm.
Thanks, all, for your thoughts along the way.
Bill
From: Bill Harris <
bill_harris@facilitatedsystems.com>
--
Bill Harris 3217 102nd Place SE
Facilitated Systems Everett, WA 98208 USA
http://facilitatedsystems.com/ phone: +1 425 337-5541