Setting custom asset prices

You can customize the market price data in Capitally for any asset in your portfolio. This allows you to track any asset, whether publicly traded or not, and tweak the market data if it does not match your records.

A few ways to set custom asset prices

When Editing an Asset

  • Open the asset details and go to the Prices section.
  • Click the blue + in the prices table.
  • Enter the date and price.
  • You can add multiple custom prices by copying and pasting rows from a spreadsheet with two columns for date and price.

When Adding or Editing a Transaction

When editing a Buy, Sell or Balance transaction you have an option to specify the current market price. Just click the pencil ✏ icon next to the Market Price and save the transaction.

On an interest-priced asset that pencil edits the clean quote instead: the field reads Current Clean Price, or Clean Price on <date> when you are pricing an earlier day.

By Editing a Position

When viewing the Positions tab in Portfolio, you can double click on a row, or choose Edit position from the context menu. You can change both the Quantity and Market Price there, so it's great to quickly update your account balances and market prices of custom assets.

On an interest-priced asset the price input is labelled Clean price, and the switch that lets you type the total value instead is not offered: a total divided by quantity is a dirty price, and writing that back would corrupt the clean quote.

By Importing Prices from CSV

You can download or prepare a file with columns for Date and Market Price.

  1. Open that file with Import any data
  2. Ensure it loaded up properly
  3. Choose Asset price history when asked
  4. Choose the asset - either by selecting a column with its symbol or selecting a single asset. In the first option, a single file can contain market prices for multiple assets.
  5. Done!

Dates without a price

When a value is needed for a date that has no price, Capitally carries forward the most recent earlier price. Only when there is no earlier price at all does it show a warning instead of a value. This works the same way for market-priced and manually priced assets, so a position you value once a quarter still shows a value on every day in between.

You can change that per asset. With Approximate prices with a straight line enabled below the prices table (the Price Interpolation property when importing), Capitally draws a line between the two nearest prices instead of holding the last one. Interpolation usually suits real estate and hand-valued interest-bearing assets, where value moves continuously; holding the last price usually suits market-traded assets. With interpolation on, a property valued every few months is enough — the days in between are filled in.

Adding a Buy or Sell transaction also sets the market price for its date, which is a quick way to fill a gap that is producing a warning. A Transfer does not — it carries a cost basis, not a market price.

An interest-priced asset answers the same question with a cascade rather than a single rule, and Approximate prices with a straight line is not part of it — the toggle is not offered for these assets. The one consequence worth knowing here is that a date earlier than the first quote falls back to the bond's schedule price rather than warning you. Which price applies on a given date has the rest.

Why an updated value still shows a 0% return

Almost always because the original Buy was edited instead of a new price being added. Returns compare the current market price against the price recorded on your Buy transaction, so if you overwrite the purchase price with today's valuation the two match and the return is 0%. Leave the Buy at what you actually paid, and record today's value as a separate, dated price.

Any of the methods above does that: a new row in the asset's Prices tab, a double-click on the position with the date selector set to today, or an Account Balance transaction carrying the new market price. Once the purchase price and the current price differ, returns populate exactly as they do for a stock.

Keeping the prices up-to-date

There is no built-in filter that separates manually updated positions from automatically updated ones, and none that flags stale prices. Two habits cover it: tag the assets you maintain by hand, and sort by the date each one was last updated.

  • Adding a Tag to the asset (eg. Manual Updates)
  • Enabling the Last Manual Price Update column in the Assets tab and sorting it oldest first, so the most out-of-date rows come to the top
Screenshot of a finance app settings menu showing column and sorting options for Fees rate, Last Manual Price Update, and Last Transaction Date.

Now you can navigate to the Manual Updates tag, open the Positions tab and see the list of assets that need to be updated. You can then update both the price and balance by double-clicking the table rows.

You can bookmark that view to quickly open it in the future with the same settings.

Finding prices that should have moved and didn't

Set the date period to the last 1 week, enable the Active only toggle, then sort by the last update date. Active only hides positions that were empty or had no transactions during the selected period, so what remains is the set that should have moved recently — anything near the top of that list with an old update date has gone stale.