Transactions and summaries
Once a token has an opening balance, its cost basis page shows two derived views: the transaction timeline and the period summaries built from it.
Both come from your postings. Nothing here is entered by hand. If a figure looks wrong, the cause is upstream in what was posted or how its category is configured.
Only reconciled postings count
A posting reaches the cost basis timeline once it belongs to a reconciliation. Postings made but not yet reconciled are absent entirely, so a token whose period has not been reconciled shows an empty timeline and no summaries, however much has been posted against it.
Period summaries
Grouped by the period on the opening balance, monthly or yearly.
| Column | What it is |
|---|---|
| Period | The month or year. |
| Pool | Quantity held at the close of the period. |
| Avg price | The pool's average cost per token. |
| Total cost | What the pool cost in total. |
| Sold | Quantity disposed of during the period. |
| Acq. cost sold | What that disposed quantity originally cost, determined by the cost basis type. |
| Proceeds | What the disposals brought in. |
| Realized PnL | Proceeds less acquisition cost of what was sold. |

The table sorts, searches by period, and exports to CSV.
The transaction timeline
Below the summaries, the chronological timeline the summaries are built from, split into two tabs with counts.
| Column | What it is |
|---|---|
| Date, Posting #, Transaction ID | Which posting the row came from. |
| Side | Buy, Sell, or Uncategorized. |
| Amount, Value | Quantity and its value in your entity currency. |
| Avg price | The running average price after this row. |
| Realized PnL | The gain or loss on this row. Sells only. |
| Category, Description | Carried from the posting. |
Search covers posting number, transaction ID, category, side, wallet and description, and the timeline exports to CSV.
Categorised and uncategorised
A row is categorised when its category has a cost basis side set, marking it a buy or a sell.
Everything else lands in the Uncategorised tab. Those rows are not treated as zero. They take no part in the calculation at all, so the pool, the average price and every realised gain are computed as though they never happened.
Check this tab before trusting the numbers
A populated Uncategorised tab is the most common reason cost basis figures look wrong. The fix is to set a cost basis side on the categories concerned, under categories; the timeline recomputes from the postings you already have.
Posting realised PnL
In accounting entities, a period with non-zero realised PnL offers Post realized PnL, which turns the calculated figure into a posting.
The dialog shows what it will create and what it needs:
| Field | Notes |
|---|---|
| Transaction ID | Generated and read-only, in the form REALIZED_PNL:<period>:<token id>. |
| Realized PnL | The figure from the summary. Read-only: this posts the calculation, it does not let you revise it. |
| Period end date | The posting's date: the last day of the period. Read-only. |
| From account and To account | The two QuickBooks accounts the posting moves between. Both required, and they must differ. |
| Category | Required. |
| VAT code | Optional. |
| Description | Prefilled as Realized PnL for <token> <period>, and editable. |
Once posted, the period's action changes to View postings, which opens All postings filtered to the entry that was created.
A period can only be posted once; the dialog refuses a second attempt rather than creating a duplicate.
What this needs
Posting realised PnL is available in accounting entities only, and needs write access. Portfolio entities show the summaries without the posting action. See portfolio or accounting.
Next
Categories is where a category is marked as a buy or a sell, which is what puts a transaction on this timeline in the first place.