On Wed, Aug 9, 2023 at 5:48 AM Martin Blais <[email protected]> wrote:
> The original goal of bean-price is > > - load the ledger and figure out which price entries are missing, say, at > transaction times and at regular intervals while positions are held > - fetch/scrape rates from some external sites > - print out the missing Price directives in Beancount format so you can > insert them into your file. > That's all. > OK, that's what I thought. It doesn't seem to be doing this for me, not sure if there's a bug or if my test cases (e.g. earlier this thread) don't match the patterns it looks for. Although I'm strongly biased against forking/duplicating code, this may be a case where I'm better off managing price fetching myself...I'll dig inside the library to see if I can at least reuse the fetching infra, even if I drive it with my own triggers. In v3/master, moved it to its own repo so I could focus on just the core. I > admit it needs a bit more love. > No problem. Don't construe any of my questions as complaints. :) I'm just trying to understand the state of the world so I can plan in ways that meet my own goals and hopefully also advance the Beancount platform at the same time. > > > > On Wed, Aug 9, 2023, 13:11 Eric Altendorf <[email protected]> wrote: > >> Here's another example: >> >> 2020-06-02 * "Mining reward of 0.05 BTC" >> Assets:Ledger:BTC 0.05 BTC >> Income:Mining:USD >> >> $ bean-price -vn price-fetch-test.beancount >> INFO : Using price cache at "/tmp/bean-price.cache" (with indefinite >> expiration) >> INFO : Processing at date: 2023-08-08 >> INFO : Loading "price-fetch-test.beancount" >> BTC /USD @ latest [ >> beanprice.sources.yahoo(BTC-USD) ] >> >> None of the transactions I enter seem to cause bean-price to fetch >> anything but @latest. >> >> Is there some annotation I need to be putting on my transactions to say >> "hey, price is needed here" ? >> >> >> >> On Tue, Aug 8, 2023 at 9:07 PM Eric Altendorf <[email protected]> >> wrote: >> >>> Thanks, William. >>> >>> On Tue, Aug 8, 2023 at 4:04 PM William Bean <[email protected]> wrote: >>> >>>> Hey Eric, >>>> >>>> Check out the repo for this that is located here: >>>> https://github.com/beancount/beanprice >>>> >>>> There is a little documentation there that you can take a look at, but >>>> basically you'll want to use: >>>> >>> >>> I have read that too. >>> >>> >>>> bean-price --update ledger.beancount >>>> >>>> That will fetch all historical prices (as needed by your ledger) up to >>>> the current day. >>>> >>> >>> Thanks for confirming that it is supposed to fetch historical prices. >>> >>> Do you know what beancount considers "needed by the ledger"? I can't >>> seem to make sense of it; as I reported in my original post, it's not >>> fetching the prices that it seems to *me* the ledger would need. >>> >>> I'm assuming bean-price is designed for a different use case than mine >>> and offers different behavior, but I can't quite figure out what that use >>> case or behavior is, and without understanding that I can't figure out >>> whether I can adapt bean-price for my case... >>> >>> >>> >>> >>>> >>>> On Monday, August 7, 2023 at 7:39:31 PM UTC-4 [email protected] >>>> wrote: >>>> >>>>> Let me ask a more basic question. What is bean-price actually >>>>> supposed to do? >>>>> >>>>> Re-reading >>>>> https://beancount.github.io/docs/fetching_prices_in_beancount.html , >>>>> I'm piecing together that perhaps the only thing bean-price does is >>>>> value your assets as of a certain date. Is that true? TBH it's not clear >>>>> from the docs. >>>>> >>>>> There are other uses for prices, e.g., establishing cost basis for a >>>>> purchase, or establishing the value of the transfer of an asset at a >>>>> particular point in time be that for income or expenses. Are there >>>>> existing plugins that can look up historical prices and annotate >>>>> transactions with them where they're missing? >>>>> >>>>> On Tue, Aug 1, 2023 at 5:54 PM Eric Altendorf <[email protected]> >>>>> wrote: >>>>> >>>>>> I'm having trouble understanding how automatic price fetching works, >>>>>> and I think it's being additionally complicated by questions of price >>>>>> imputation and maybe PnL accounts. Let's start with the simplest case. >>>>>> Consider (commodity declarations omitted for brevity): >>>>>> >>>>>> 2020-01-01 * "Buy BTC (from USD)" >>>>>> Assets:Coinbase:BTC 0.50000000 BTC >>>>>> Assets:Coinbase:USD -4750.00000000 USD >>>>>> >>>>>> I would have expected bean-price to fetch a price for BTC for >>>>>> 2020-01-01, but instead it fails, saying the transaction doesn't balance. >>>>>> Now, if I supply a price >>>>>> >>>>>> 2020-01-01 * "Buy BTC (from USD)" >>>>>> Assets:Coinbase:BTC 0.50000000 BTC @ 9500.0 USD >>>>>> Assets:Coinbase:USD -4750.00000000 USD >>>>>> >>>>>> or supply a price spec with no number: >>>>>> >>>>>> 2020-01-01 * "Buy BTC (from USD)" >>>>>> Assets:Coinbase:BTC 0.50000000 BTC @ USD >>>>>> Assets:Coinbase:USDT -4750.00000000 USD >>>>>> >>>>>> then there is no error, but bean-price fetches *today's* price. >>>>>> >>>>>> Now let's consider a more complex example: >>>>>> >>>>>> 2020-02-01 * "Buy BTC (from USDT)" >>>>>> Assets:Coinbase:BTC 0.50000000 BTC >>>>>> Assets:Coinbase:USDT -4750.00000000 USDT >>>>>> Income:PnL >>>>>> >>>>>> Here, I'd like to fetch the USD prices of both BTC and USDT, which >>>>>> would allow PnL to be computed, but bean-price fetches nothing. Now, if >>>>>> I >>>>>> put "@ USD" at the end of the BTC posting (as above), instead of getting >>>>>> the price on 2020-01-01 (as I desire), or the price today (as in the >>>>>> earlier example), I get "Too many missing numbers for currency group >>>>>> 'USD'". >>>>>> >>>>>> I can't quite figure out what bean-price is doing, or square it >>>>>> against the documentation >>>>>> <https://docs.google.com/document/d/1thYRAMell_QT1Da1F_laprSs6BlROZjyK_h3V8qHW9c/edit>. >>>>>> Any tips to get me unblocked? >>>>>> >>>>>> thanks, >>>>>> eric >>>>>> >>>>> -- >>>> 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/ede58116-e234-4ffb-8d69-4188304af919n%40googlegroups.com >>>> <https://groups.google.com/d/msgid/beancount/ede58116-e234-4ffb-8d69-4188304af919n%40googlegroups.com?utm_medium=email&utm_source=footer> >>>> . >>>> >>> -- >> 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/CAFXPr0v-PtEhQP5q511k9xpkV_L8cpiVQBsyYhzGK%2BLaTd-oZQ%40mail.gmail.com >> <https://groups.google.com/d/msgid/beancount/CAFXPr0v-PtEhQP5q511k9xpkV_L8cpiVQBsyYhzGK%2BLaTd-oZQ%40mail.gmail.com?utm_medium=email&utm_source=footer> >> . >> > -- > 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%2BhPgjxmwB-3p%2BxhVKyAXbU8dOxhc59-P9E8b4%3DuZeXv67w%40mail.gmail.com > <https://groups.google.com/d/msgid/beancount/CAK21%2BhPgjxmwB-3p%2BxhVKyAXbU8dOxhc59-P9E8b4%3DuZeXv67w%40mail.gmail.com?utm_medium=email&utm_source=footer> > . > -- 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/CAFXPr0tGDUdsznC-9HXEwXUBqUbW3MvKX1G5GzDFU1M6EvEccw%40mail.gmail.com.
