How to track investments in Notion

By the end of this article, you will have:
  • Stock/Crypto prices updated automatically
  • Tracking of profits/loss on your investments

Tracking investments in Notion is quite simple as it provides useful tools such asFormulas.

You can create your own database of investments, to track every asset you purchase or own, and get information on how much your portfolio is worth, or how much you won/lost with a specific stock.
However, you would need to periodically update asset prices to keep that information up to date.

By using NotionInvest you get those updates made in the background automatically:

Asset
Unit Price
BTC
$21,234.53
ETH
$1,742.53
AAPL
$141.53

1. Create a database of asset prices

First, we need a Notion database with the price of each asset you own. For example, if you have 3 units of AAPL (Apple Inc. stock), we need to have that price in a database somewhere in Notion to calculate the value of our portfolio.

Follow our shorttutorial on creating the prices database, or go ahead and create it yourself if you already know how to do so.

After creating the database, you have two options:

  • Manually update all prices periodically
  • Or use NotionInvest to get prices automatically updated for you.
animation of waiting for the integration to sync new symbols

2. Create a second database for asset purchases

Now we create another database where we'll track every purchase we make. First, we add the properties that we'll need to enter manually:

image of description propertyimage of purchase date propertyimage of units propertyimage of price property

And then add a simple formula to get the invested amount (units * price).

image of the investment amount property
prop("Price") * prop("Units")

Our database should look like this by now:

image of the empty database after adding the main properties

3. Connect both databases with a relation

Databases can be connected by usingrelations, which allows to reference one or many items from the target database.
Let's add a relation to the Assets table we created at the beginning.

image of the asset property

And since we want to both see the current price and use it to calculate profit/loss, we need to also add a rollup property to load each asset's current price.
By using a rollup property, you can reference values in the target database. That means they require an existing relation.

Let's add one rollup to Assets.Price to get the price of the selected asset in our purchases database:

image of the rollup property to show the asset price

Now both database are connected and we're displaying prices from the assets source:

animation showing how changing the asset updates its price automatically

And since we've added a formula above to calculate the invested amount, it is already being updated when entering the purchased price and units:

animation showing that when changing the asset it automatically updates the investment

Great! Now we have both databases connected, and we can use asset prices in our formulas to calculate whatever we want!

4. Extra: Calculate profit/loss

Having the asset prices enables us to calculate how much our investments are worth today, and we can compare them with the invested amounts to get results.

image of the total formula property to show the result
(prop("Units") * toNumber(prop("Current Price"))) - prop("Invested")

By multiplying Units and Current Price we get how much the investment is worth today. Then when we subtract the Invested amount, we get the profit/loss.

And we can do the same to get the profit/loss in percentage:

image of the total formula property to show the result in percentage
round((toNumber(prop("Current Price")) / prop("Purchase Price") - 1) * 10000) / 10000

We divide the Current Price by the Purchase Price to get the ratio of how much it was increased/reduced, and then we multiply and divide by 1000 to keep two decimals.

animation showing that when changing the investment values it automatically calculates results

That's it! We now have a database of Assets that is automatically updated from the Market, and an Investments database that calculates results based on them.
Now we can properly track our finances!