Use Live Prices to add automatically refreshed valuation prices to a hosted Beancount.io ledger. Managed feeds supply dated price directives for supported crypto, stocks, funds, and foreign currencies. You keep recording purchases, sales, and transfers as usual.
Choose your price sources
- Open the price-source picker.
- Choose the currency in which you want to value your assets.
- Select your assets from the shortcuts or search by symbol, such as
BTCorAAPL. You can also paste a ledger excerpt to find its assets; the excerpt stays in your browser. - Check that each asset symbol matches the commodity in your ledger. The picker generates includes for listed pairs. An unlisted pair may support on-demand derivation, but the picker leaves it out until support is confirmed.
- Copy the generated includes. Sign in to Beancount.io to use your hosted ledger and inspect feeds that require authentication.
Choose the valuation currency for your books, not for the language of this page. Selecting a quote currency does not rename commodities or change your transactions.
Include the feeds in your hosted ledger
Paste the generated lines into main.bean, or another file your ledger already includes. Each line identifies one price source. For example, the hosted include for Bitcoin in US dollars is shown commented out below so this example remains safe to load with upstream Beancount:
; Hosted Beancount.io ledger: remove the leading semicolon to enable this feed.
; include "https://beancount.io/prices/BTC-USD"Remove the leading ; when adding the line to your hosted ledger. URL includes are a Beancount.io extension. Ordinary local includes still take filenames, as described in multi-file support.
Open your ledger as usual. Its loader resolves managed feeds into read-only price entries. It checks for new data when the ledger loads after the five-minute refresh window. Refreshing prices does not rewrite your source files or create ledger commits. Managed price entries do not count toward your ledger's entry limit.
Read prices and valuations
A feed contains dated prices and may include price-source, price-kind, observed-at, and provisional metadata. Inspect the observation time and price kind when judging a quote. The loader's refresh time is not the provider's observation time.
These are automatically refreshed valuation prices, not streaming trading quotes. A report needs a price for the relevant commodity pair on or before its valuation date. Today's price cannot fill a gap in an earlier report.
Prices make market valuation possible in tools and reports that use price directives. An account view showing cost will still show cost; connecting a feed does not switch that view to market value. See the query guide for the distinction between cost and market valuation.
A price refresh does not change quantities, purchase costs, cash flows, fees, or realized gains recorded in your ledger. It also does not fill in a transaction's @ price or {cost}. Record those from the transaction itself. Property appraisals, fictional example commodities, and assets without a supported feed still need your own dated prices.
Override a managed price
Write your own dated price directive in an editable ledger file when you need a particular valuation. For the same date and commodity pair, your price takes precedence over the managed feed. This also applies to the reciprocal pair and does not depend on include order.
A manual price is not a permanent lock: a managed quote on a later date can still be used for a later valuation. Managed entries themselves are read-only. Edit your own price directive, or remove the include to stop using that feed.
Use prices with local tools
| Where you load the ledger | How to supply prices |
|---|---|
| Hosted Beancount.io | Use the managed URL includes from the picker. |
A compatible bea CLI version | Follow the CLI's managed-price instructions for URL resolution and exporting local price files. |
| Upstream Beancount or Fava | Load local price files; these tools do not fetch URL includes themselves. |
For version-specific CLI behavior, use the bea managed-price guide. Compatible versions offer bea price status, bea price refresh, and bea price export --output audit. Use bea --offline balance for cache-only reads or bea --strict-prices check to reject stale or unavailable sources. See the CLI reference for details and the alternative local Beanprice workflow.
The CLI fetches without credentials and refuses redirects. A feed that redirects to the hosted login is not available to a fresh CLI fetch, even if you are signed in through your browser. Use a reachable supported feed or local dated prices instead. Older CLI versions may treat any URL include as an unmatched file glob.
Keep local dated price files when you need a reproducible offline report. A ledger commit alone does not capture the managed feed revision used by a past valuation. Preserve the prices used alongside the ledger and report.
For integrations with the price service, consult the Prices API reference. Its endpoints are separate from adding an include to a hosted ledger.
Troubleshoot a missing or unexpected valuation
| Symptom | What to check |
|---|---|
| The catalog does not load | Retry the picker. Do not guess an include URL from an unsupported symbol. |
| A selected asset is left out of the copied includes | Check support for that asset in your chosen quote currency and match the ledger's symbol. |
| Opening a feed redirects to login | Sign in to inspect it in the hosted workflow. The CLI does not send that session and refuses redirects. |
| Prices look old | Compare the observation time with the report date. A failed refresh can retain a previously validated cached feed; cached data may be stale. |
| No price is available | With no validated cached price, the books can still load, but the holding may lack a market valuation. Supply a suitable manual price if needed. |
| Your manual price appears ignored | Check the exact date and pair. A later managed quote can apply to a later report. |
| A local loader reports an unmatched include | Use a compatible bea version or replace the URL include with a local price file. |
| The account value has not changed | Check whether the view shows cost and whether the report has prices covering its valuation date. |
See the price syntax reference for manual directives and the working ledger examples for static, reproducible investment records.