New issue 208: cost_to_str does not print total-cost-only CostSpecs https://bitbucket.org/blais/beancount/issues/208/cost_to_str-does-not-print-total-cost-only
Robert Sesek: I'm writing some scripts to convert my existing accounting spreadsheets into Beancount. One issue I ran into is when converting dividend reinvestments for funds, the transactions sometimes do not balance when using the reported unit price and number of shares. E.g., "Transaction does not balance: (0.01646 USD)" for this transaction: ``` 2017-12-27 * "VXUS" "Reinvest" Assets:Investments:Vanguard:RothIRA:VXUS 1.433 VXUS {56.62 USD} Income:Investments:Vanguard:RothIRA:VXUS:Div -81.12 USD ``` My solution is to instead have the unit-cost price be inferred from total cost and just attaching/ignoring the reported price, e.g. ``` 2017-12-27 * "VXUS" "Reinvest" Assets:Investments:Vanguard:RothIRA:VXUS 1.433 VXUS {# 81.12 USD} @ 56.62 USD Income:Investments:Vanguard:RothIRA:VXUS:Div -81.12 USD ``` However, when trying to generate that posting using the Beancount API: ```python asset = data.Posting('Assets:Investments:Vanguard:RothIRA:VXUS', Amount(D('1.433'), 'VXUS'), CostSpec(None, D('81.12'), 'USD', None, None, False), Amount(D('56.62'), 'USD'), None, None) # Deliberately missing the sweep account for simplicty. print_entry(data.Transaction(None, '2017-12-27', '*', 'VXUS', 'Reinvest', None, None, [asset])) ``` It gets rendered as: ``` 2017-12-27 * "VXUS" "Reinvest" Assets:Investments:Vanguard:RothIRA:VXUS 1.433 VXUS {} @ 56.62 USD ``` There is an issue in beancount.core.position.cost_to_str(), where it only prints the cost if the number_unit is present, ignoring number_total if it is not. -- 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 beancount+unsubscr...@googlegroups.com. To post to this group, send email to beancount@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/beancount/20180102212800.14999.68751%40celery-worker-109.ash1.bb-inf.net. For more options, visit https://groups.google.com/d/optout.