Core Concepts
How Wealthfolio models every cash and asset movement in your portfolio.
Activities are the atomic events that drive portfolio state in Wealthfolio—every trade, cash movement, fee, or corporate action is recorded as an activity. Accurate performance, cash-flow, and tax reporting all start with choosing the right activity type.
1 · Activity Reference
Type | Typical Use Case | Cash Impact | Holdings Impact |
---|---|---|---|
BUY | Purchase of a security or other asset. | ↓ cash | ↑ quantity |
SELL | Disposal of a security or other asset. | ↑ cash | ↓ quantity |
DIVIDEND | Cash dividend paid into the account. | ↑ cash | — |
INTEREST | Interest earned on cash or fixed-income positions. | ↑ cash | — |
DEPOSIT | Incoming funds from outside Wealthfolio. | ↑ cash | — |
WITHDRAWAL | Outgoing funds to an external account. | ↓ cash | — |
ADD_HOLDING | Bring in a position without recording a trade (opening balance, gift received, option assignment). | Fee only | ↑ quantity |
REMOVE_HOLDING | Write-off, gift, or expire a position without recording a sale. | Fee only | ↓ quantity |
TRANSFER_IN | Move cash or assets into this account from another Wealthfolio account (cost basis preserved on assets). | ↑ cash or ↑ quantity | ↑ quantity (for assets) |
TRANSFER_OUT | Move cash or assets out of this account (cost basis exported on assets). | ↓ cash or ↓ quantity | ↓ quantity (for assets) |
FEE | Stand-alone brokerage or platform fee not tied to a trade. | ↓ cash | — |
TAX | Tax paid from the account (e.g., dividend withholding, realised CGT). | ↓ cash | — |
SPLIT | Stock split or reverse split. Adjusts units and per-share cost so total cost remains constant. | — | qty & unit cost adjusted |
Tip: Every cash leg automatically books to the synthetic symbol
$CASH-<CCY>
(e.g. $CASH-USD
). Balances are therefore visible alongside securities.
2 · Quick-Start Cheat-Sheet
Scenario | Recommended Activities | Why |
---|---|---|
Initial snapshot | ADD_HOLDING , DEPOSIT | Fast way to seed starting positions and cash |
Routine trading | BUY , SELL (plus DIVIDEND , INTEREST ) | Full P/L and cash reconciliation |
Inter-account moves | TRANSFER_IN , TRANSFER_OUT | Retains cost basis; avoids phantom gains/losses |
One-off charges | FEE , TAX | Keeps expense reporting explicit |
Gifts / write-offs | ADD_HOLDING , REMOVE_HOLDING | Sidesteps cash when no sale proceeds exist |
Corporate action | SPLIT | Normalises quantity/cost without affecting value |
3 · Workflow Styles
Simple (Holdings-Only)
- Use
ADD_HOLDING
/REMOVE_HOLDING
to line-up positions. - Adjust cash once with
DEPOSIT
/WITHDRAWAL
. - Good for: Quick onboarding, backfilling missing history or when only tracking portfolio value.
Full (Transaction-Level)
- Seed account with a
DEPOSIT
. - Record every
BUY
,SELL
,DIVIDEND
,INTEREST
. - Mirror transfers with
TRANSFER_IN
/TRANSFER_OUT
. - Log ad-hoc expenses via
FEE
andTAX
.
- Good for: Precise IRR, cash-flow, and tax analytics.
You can freely mix the two—e.g., back-fill long-held shares with ADD_HOLDING
, then
switch to BUY
/SELL
going forward.
4 · Audit Rules
- Activities must net-balance: negative cash requires prior deposits or sales.
- Quantities may be fractional; eight-decimal precision is accepted.
- Time-travel safety: activities can be inserted retroactively—Wealthfolio recalculates balances on-the-fly.
Next step: Import or create activities manually or via CSV uploader, then view the timeline in the Activities tab to verify that cash and positions reconcile as expected.
5 · Edge-Cases & Gotchas
Topic | What to Know | Why It Matters |
---|---|---|
Trade vs. Fee Bundling | BUY /SELL rows can include an inline fee or you can log a separate FEE . Never do both for the same trade. | Avoids double-counting expenses. |
Lot Selection | FIFO is the default. | Realised P/L and taxable gains depend on the lot picked. |
Multi-Currency Flow | FX conversion is done on trade-date | Keeps cross-currency ROI and cash matching your broker statement. |
Bulk Import Tips | CSV must be UTF-8, ISO-8601 dates (2025-03-15 ), decimals with . separator, and headers exactly as in the sample file. | Eliminates “column not found” errors on upload. |