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.
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. On Wed, Aug 9, 2023, 13:11 Eric Altendorf <ericaltend...@gmail.com> 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 <ericaltend...@gmail.com> > wrote: > >> Thanks, William. >> >> On Tue, Aug 8, 2023 at 4:04 PM William Bean <wbea...@gmail.com> 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 erical...@gmail.com 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 <erical...@gmail.com> >>>> 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 beancount+unsubscr...@googlegroups.com. >>> 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 beancount+unsubscr...@googlegroups.com. > 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 beancount+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/beancount/CAK21%2BhPgjxmwB-3p%2BxhVKyAXbU8dOxhc59-P9E8b4%3DuZeXv67w%40mail.gmail.com.