Skip to main content

Investments

The Investments module lets you track the full lifecycle of any asset - savings accounts, stocks, crypto, or anything else - by recording every transaction against it and calculating your real return over time.

Every asset is built from a sequence of transactions. There are four transaction types, each serving a distinct purpose: BUY, SELL, INCOME, and COST. Most transactions support an optional Fees & Taxes field to capture associated costs. The ROI for each asset is then derived entirely from the sum of its transactions and the current value you set manually.

Transaction Types

BUY

Records the acquisition of an asset. Both the amount paid (in your fiat currency) and the units received are required.

Use BUY when you:

  • Purchase shares, crypto, or any other asset.
  • Open or top up a savings account (1 unit = 1 EUR).
  • Make a recurring investment - each deposit is its own BUY transaction (dollar-cost averaging).

Example: You buy 0.5 BTC for €25,000 → BUY with amount = 25000, units = 0.5.

SELL

Records the disposal of some or all of your holdings. Both the amount received (in your fiat currency) and the units sold are required.

Use SELL when you:

  • Sell shares or crypto and receive cash.
  • Withdraw from a savings account.
  • Partially liquidate a position.

Example: You sell 0.2 BTC and receive €14,000 → SELL with amount = 14,000, units = 0.2.

INCOME

Records a return generated by the asset itself: interest, dividends, staking rewards, and so on.

note

INCOME is fundamentally different from BUY. A BUY is money you put in. An INCOME is money the asset produced. This distinction matters for ROI: buys increase your cost basis, income does not.

INCOME requires either an amount or units, never both. Which one you fill depends on whether the income was paid out as cash or reinvested.

Cash income → fill Amount. The income left the asset and landed in your bank account.

  • Cash dividend deposited to your bank account.
  • Interest paid out in cash.
  • Staking rewards you sold immediately for EUR.

Reinvested income → fill Units. The income was automatically converted into more units of the same asset. You still hold it.

  • Interest automatically compounded into your savings balance.
  • Staking rewards credited as additional crypto.
  • Dividends reinvested via a DRIP (Dividend Reinvestment Plan).

INCOME with internal fees

When you record a reinvested INCOME (units > 0) and also fill in the Fees & Taxes field, a checkbox appears: "Deduct fees/taxes from units?"

This exists because some platforms don't charge fees in cash - they just withhold units directly from the income before crediting you.

If you check the box, a second field appears asking how many units were actually deducted. Enter the real number. This tells the system the fees were paid internally and the system will automatically deduct those units from your asset ownership.

If you leave it unchecked, the fees are treated as external - you paid them separately from your own funds, and they count as money that left your pocket.

tip

Non-FIAT assets require manual conversion. The Fees & Taxes field is always in fiat currency (e.g. EUR). If your asset is BTC or a stock, you'll need to calculate the equivalent cash amount for the units that are being deducted at the time of the transaction.

For example: if units deducted = 0.002 and BTC is at €60,000, you can fill the fees input with 120€ for a cash representation of the fee that as charged.

Example: You receive 0.01 BTC in staking rewards. Your exchange withholds 0.002 BTC as tax. You record INCOME with units = 0.01, fees & taxes = 120 EUR, check the deduction box, and enter 0.002. Net holdings: +0.008 BTC.


COST

Records a standalone cost or loss against an asset, outside of a buy or sell.

Fill Amount → an external cost you paid in fiat currency on behalf of this asset.

  • Annual custody or platform fees charged to your bank account.
  • Management fees billed separately.

Fill Units → units removed from your holdings without you receiving cash.

  • Units burned by a platform (token burn mechanism).
  • Units sold by a broker to cover a fee you never saw.
  • Tokens lost or slashed.
warning

COST with units does not record a EUR value. The impact on ROI is indirect: you simply have fewer units, so your portfolio value drops the next time you update the current value. If you need the EUR amount of a cost to show up in ROI, use the Amount field instead.

Example: Your platform burns 50 tokens as a fee → COST with units = 50. Your holdings drop by 50 tokens. The portfolio value reflects this the next time you update it.

Fees & Taxes

Most transaction types (BUY, SELL, INCOME) have an optional Fees & Taxes field. It's always a EUR amount representing costs associated with the transaction - brokerage commission, custody fees, taxes, and so on.

The system distinguishes between two kinds of fees, and this distinction directly affects your ROI:

External feesInternal fees
Paid howCash, from your own fundsDeducted as units from the asset
Cash left your pocket?YesNo
Counts as Money Out in ROI?YesNo
Where to recordFees & Taxes field (BUY, SELL, INCOME) or COST with amountINCOME checkbox + units deducted, or COST with units
info

For BUY and SELL, fees in the Fees & Taxes field are always external - there's no ambiguity. The internal vs. external distinction only comes into play for INCOME transactions with reinvested units (via the checkbox), and for COST transactions (via the choice of amount vs. units).

ROI Calculation

ROI is calculated per asset using simple return on investment. The question it answers: given everything you've put in and gotten back out, how much are you up or down right now?

The calculation is built on three buckets:

Money Out

Everything that left your pocket for this asset. This is your total cost basis - and the denominator for ROI %.

Money Out = BUY amounts + COST amounts + external Fees & Taxes
note

Only fees where no units were deducted count here. If fees were paid internally (deducted as units from the asset), they are excluded - no cash left your pocket for those.

Money In

Everything that came back to you as cash from this asset.

Money In = SELL amounts

Income

Cash the asset generated that you received outside the asset - not reinvested.

Income = INCOME amounts (only where amount > 0, i.e. cash received)

Reinvested income (units > 0) is not counted here. Those units are already reflected in the current value you set - counting them again would be double-counting.

Putting it together

ROI (€) = Current Value + Income − (Money Out − Money In)
ROI (%) = ROI (€) ÷ Money Out × 100
warning

Current Value is set manually by you. It represents the market value of your holdings right now. The system doesn't fetch live prices - update it whenever you want fresh ROI numbers.

If Money Out is zero (e.g., an inherited position with no recorded purchase), the ROI percentage is undefined and displayed accordingly.


Worked Examples

Savings account with compounding interest

You open a EUR savings account. Each month you earn interest, but tax is automatically deducted from each payment before it hits your balance - classic internal fees.

JAN 15  BUY         €10,000 | 10,000 units
FEB 15 INCOME 100 units | fees: €28 | deducted: 28 units → net +72
MAR 15 INCOME 100 units | fees: €28 | deducted: 28 units → net +72
...
DEC 31 Current value: €10,524

All fees were deducted internally, so none count as Money Out:

Money Out  = 10,000
Money In = 0
Income = 0 (all income reinvested as units)
ROI (€) = 10,524 + 0 − (10,000 − 0) = 524
ROI (%) = 524 ÷ 10,000 = 5.24%

BTC staking - external vs. internal tax

This pair of examples covers the same scenario with two different fee treatments, so you can see exactly how the choice affects ROI.

External tax - paid from your bank account

You buy BTC, earn staking rewards, and pay the tax on those rewards from your bank account separately.

JAN 15  BUY         €50,000 | 1 BTC | fees: €100
JUN 15 INCOME 0.01 BTC | fees: €120 | deducted: 0 (paid externally)
JUN 30 Current value: €60,600 (1.01 BTC × €60,000)

The €120 tax was paid externally → it counts as Money Out.

Money Out  = 50,000 + 100 (buy fees) + 120 (income tax) = 50,220
Money In = 0
Income = 0 (income reinvested as units)
ROI (€) = 60,600 + 0 − (50,220 − 0) = 10,380
ROI (%) = 10,380 ÷ 50,220 = 20.67%
Internal tax - withheld as BTC by the exchange

Same scenario, but this time the exchange withholds the tax directly from your staking reward as BTC before crediting you.

JAN 15  BUY         €50,000 | 1 BTC | fees: €100
JUN 15 INCOME 0.01 BTC | fees: €120 | deducted: 0.002 BTC
JUN 30 Current value: €60,480 (1.008 BTC × €60,000)

The €120 tax was deducted as 0.002 BTC → no cash left your pocket, so it does not count as Money Out. You simply ended up with fewer units.

Money Out  = 50,000 + 100 (buy fees) = 50,100
Money In = 0
Income = 0 (income reinvested as units)
ROI (€) = 60,480 + 0 − (50,100 − 0) = 10,380
ROI (%) = 10,380 ÷ 50,100 = 20.72%
tip

Both scenarios yield the same absolute profit (€10,380), but the ROI percentages differ: 20.67% vs 20.72%. The internal-fees scenario shows a slightly higher percentage because the cost basis is lower - the tax never counted as money you spent. Both numbers are correct; they just measure against a different denominator.


FAQ

You can find them here.