Count hand-valued assets into the wealth figure
A wealth figure that ignores the house is not a wealth figure. Assets without a market feed - a house, a car, a private loan - are now added by hand on the Wealth page with a stated value, a currency and the day the estimate was made; a negative value records a liability. They are registry entities in assets.finance like everything else, join the per-currency totals immediately, and a currency held only in an asset earns its own line.
This commit is contained in:
@@ -220,6 +220,8 @@ One ISIN lists on several exchanges in different currencies, and the wrong listi
|
||||
|
||||
**Verify it yourself.** **Wealth** shows each account's cash, its positions as exact share counts, each holding's quote, value and result, and named checks — row arithmetic, cash never negative, holdings never negative, holdings priced. Compare the cash balance and the positions against your broker's own screen. The figures come from the journal, not from the DuckDB index, so they do not depend on the cache that the same journal derives. A negative holding means the imported history is partial: a position was closed that was never opened.
|
||||
|
||||
**Other assets.** Possessions with no market feed — a house, a car, a private loan — are added by hand on the **Wealth** page with a stated value, a currency and the day the estimate was made, and they join the total immediately. A negative value records a liability such as a mortgage. Each asset is a plaintext block in `assets.finance` like every other registry entity, so a backup carries it and a text editor can correct it. The value is never guessed or aged: it stays what you stated, dated, until you re-edit it.
|
||||
|
||||
Deliberately **not** included: intraday prices, net worth over time, FIFO lot accounting, realised gains, `Vorabpauschale`, and currency conversion. A position's *invested* figure is cash in less cash out, not a cost basis, and *result* is value plus everything returned less everything put in — the outcome to date, not a taxable gain.
|
||||
|
||||
## Deployment options
|
||||
@@ -423,6 +425,8 @@ Bank synchronization and recognized N26, ING, and Kontist CSV imports do **not**
|
||||
|
||||
AI classification sends only identifier-redacted text: the transaction's own IDs, account identifiers and labels, payment references, labeled or IBAN-attached BICs, and configured private names are removed, while merchant and counterparty text remains available for recognition. Classification responses carry `high`, `medium`, or `low` confidence. Imports never auto-apply a low-confidence category — the row stays on the kind-appropriate unclassified category with the merchant link and confidence recorded — while **Analyse** previews show the low-confidence suggestion unselected for review, and **Transactions → Needs review** lists both.
|
||||
|
||||
Classification choices retain their names, paths, hints, and aliases, but use short request-local references such as `c1`, `m1`, and `t1` instead of long database IDs. Merchant defaults and applicable classification history use the same references. Every eligible category, merchant, and tag remains available; responses are mapped back to canonical IDs and validated locally.
|
||||
|
||||
From **Categories**, **Propose taxonomy** samples up to 300 redacted transactions, grouped so recurring counterparties are represented without sending raw identifiers. The proposal can suggest categories, tags, and merchants with hints and evidence. Approve each item individually; applying it also creates any approved category parents required by the hierarchy. Existing registry entries and transaction facts are never overwritten.
|
||||
|
||||
Every AI classification requests `provider.data_collection = "deny"`, `provider.zdr = true`, and `provider.require_parameters = true`. Unsupported private routing fails rather than falling back to a less restrictive provider. Amount, date, and currency are always included; identifier-only redaction removes account and transaction identifiers, payment references, and configured private names but does not remove merchant or counterparty text. Keep OpenRouter account prompt logging disabled as well.
|
||||
|
||||
Reference in New Issue
Block a user