Here's how I get around this myself now:
1. DIsable booking by using "NONE" on the account:


2016-01-01 open Assets:Inv    "NONE"
2016-01-01 open Assets:Bank
2016-01-01 open Income:CapGains

2016-01-06 * "buy"
  Assets:Inv  3 XYZ {9 USD}
  Assets:Bank

2016-01-06 * "buy"
  Assets:Inv  3 XYZ {10 USD}
  Assets:Bank

2016-01-06 * "buy"
  Assets:Inv  4 XYZ {11 USD}
  Assets:Bank

;; 2016-01-07 * "sell"
;;   Assets:Inv  -10 XYZ {USD} @ 8 USD
;;   Assets:Bank 80 USD
;;   Income:CapGains


Don't include your reducing transaction.
Compute average cost manually:"

bean-query avgcost.beancount "select account, sum(number),
sum(cost(position)) where account = 'Assets:Inv' group by 1"
 account   su sum_cos
---------- -- -------
Assets:Inv 10 101 USD

So I've got 10 units of XYZ at 101 USD total cost

Insert your transaction:

2016-01-07 * "sell"
  Assets:Inv  -10 XYZ {10.1 USD} @ 8 USD
  Assets:Bank 80 USD
  Income:CapGains

which expands to


bean-doctor linked avgcost.beancount 20
/home/blais/r/q/beancount-data/user/redstreet0/avgcost.beancount:17:

   2016-01-07 * "sell"
     Assets:Inv        -10 XYZ {10.1 USD, 2016-01-07} @ 8 USD
     Assets:Bank        80 USD
     Income:CapGains  21.0 USD


Alternatively if you know you capital gains somehow, in your specific
case because you're selling the entire position (all of the 10 units)
Beancount is able to match it against the full set of positions and
reduce that, so this would run without errors:

2016-01-07 * "sell"
  Assets:Inv  -10 XYZ {} @ 8 USD
  Assets:Bank 80 USD
  Income:CapGains  21 USD

Unfortunately it's currently not able to do that if you don't supply the gains:

2016-01-07 * "sell"
  Assets:Inv  -10 XYZ {} @ 8 USD
  Assets:Bank 80 USD
  Income:CapGains





On Fri, Nov 29, 2019 at 3:37 AM Red S <[email protected]> wrote:
>
> Thanks, but that was the scenario I'm hoping to avoid. It involves way too 
> many manual entries (for my case), or a bunch of scripting or plugins that 
> will become obsolete once average cost booking is implemented.
>
> I guess I could use FIFO instead. My Income:Capital-Gains numbers may be off, 
> but that shouldn't matter much.
>
> Do others have this issue at all?
>
> Thanks!
>
> On Tuesday, November 26, 2019 at 10:14:34 AM UTC-8, Martin Michlmayr wrote:
>>
>> * Red S <[email protected]> [2019-11-25 02:18]:
>> > 2016-01-07 * "sell"
>> >   Assets:Inv  -10 XYZ @ 8 USD
>> >   Assets:Bank 80 USD
>> >   Income:CapGains
>>
>> do it manually:
>>
>> 2016-01-07 * "sell"
>>   Assets:Inv  -3 XYZ { 9 USD} @ 8 USD
>>   Assets:Inv  -3 XYZ {10 USD} @ 8 USD
>>   Assets:Inv  -4 XYZ {11 USD} @ 8 USD
>>   Assets:Bank 80 USD
>>   Income:CapGains
>>
>> or calculate average cost first manually:
>>
>> 2016-01-07 * "Calculate average cost"
>>   Assets:Inv  10 XYZ {10.1 USD}
>>   Assets:Inv  -3 XYZ { 9 USD}
>>   Assets:Inv  -3 XYZ {10 USD}
>>   Assets:Inv  -4 XYZ {11 USD}
>>
>> 2016-01-07 * "sell"
>>   Assets:Inv  -10 XYZ {10.1 USD} @ 8 USD
>>   Assets:Bank 80 USD
>>   Income:CapGains
>>
>>
>>
>> > So I really have zero units of XYZ. However, because of the way these are
>> > booked, bean-price includes XYZ in its output. Given I have several such
>> > cases, what is the best way to handle this? I can think of these:
>> > - wait until average cost booking is available (will it solve this 
>> > problem?)
>> > - book the purchases above as prices instead of commodities held at cost
>> > (will I lose the average cost of the commodity? How will I know the cost
>> > basis to book profit and loss?)
>> > - hack a way to get a list of commodities whose lots aggregate to zero, and
>> > remove those from what bean-price lists?
>> > - something else?
>> >
>> > Thank you.
>> >
>> > --
>> > You received this message because you are subscribed to the Google Groups 
>> > "Beancount" group.
>> > To unsubscribe from this group and stop receiving emails from it, send an 
>> > email to [email protected].
>> > To view this discussion on the web visit 
>> > https://groups.google.com/d/msgid/beancount/5e4d37c1-016d-499b-a988-a2cf0e7138eb%40googlegroups.com.
>>
>>
>> --
>> Martin Michlmayr
>> https://www.cyrius.com/
>
> --
> You received this message because you are subscribed to the Google Groups 
> "Beancount" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to [email protected].
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/beancount/9e714aa2-b9a3-4925-afaf-555646fb734f%40googlegroups.com.

-- 
You received this message because you are subscribed to the Google Groups 
"Beancount" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/beancount/CAK21%2BhMrLYPfOB2DRj23Z2wWjO%3DwxnbX0SjdXEGYravi%2B7amWA%40mail.gmail.com.

Reply via email to