Repository navigation
v1.0.1
Consistent Derived Transaction IDs
Transactions without a provider-supplied external ID now receive a deterministic ID using:
derived-{date}-{transaction_type}-{amount}
For example:
derived-2026-08-18-deposit-300000.00
- Applies to newly recorded transactions, account-history imports, and investment cash imports.
- Existing provider IDs are preserved unchanged.
- Amounts use the currency’s canonical decimal precision, ensuring values such as
300000,300000.0, and300000.00produce the same ID. - Blank, omitted, or
nullexternal IDs are accepted during import. - Duplicate and conflicting derived IDs use the existing import safeguards.
- Account-history and investment-history AI prompts now instruct LLMs to generate IDs using this exact format.
Accurate Progress for Linked Goals
Fixed goal progress showing zero when a linked balance account already contained funds.
- Linked balance goals now use the account’s current balance as their progress.
- Funds deposited before the goal was created or linked are included automatically.
- Position-tracked accounts continue to use their cash and investment valuation.
- Cross-currency goals continue to convert the linked balance using the configured exchange rate.
- Directly tracked goals continue to use their manually entered current amount.
- Planned contributions affect forecasts but only count as progress after being recorded in the linked account.
Existing linked goals recalculate automatically when viewed. No database migration or manual relinking is required.
Compatibility
- Existing transactions are not backfilled with derived IDs.
- No schema or database migration is required.
- Existing provider external IDs and position-account goal calculations are unchanged.
Created 1 todo