PRD-002: Financial Tracking
| Field | Value |
| ID | PRD-002 |
| Title | Financial Tracking |
| Status | Draft |
| Owner | Loryth Team |
| Created | 2026-02-18 |
1. Problem Statement
Personal finance tools fall into two extremes: oversimplified apps that only track expenses, and complex enterprise-grade tools that overwhelm non-financial users. Both categories typically require cloud accounts, harvest user data, and lock financial history behind paywalls or proprietary exports. Privacy-conscious users who want to track accounts, budgets, and savings goals in one place — on their own infrastructure — have few options.
Loryth's wallet service provides multi-currency account management, transaction tracking with hierarchical categories, budgets, and savings goals — all self-hosted and integrated with other Loryth services.
2. Target Personas
| Persona | Priority | Relevance |
| Self-Hosting Tinkerer | Primary | Tracks all finances locally, uses multi-currency, wants API automation |
| Mindful Planner | Primary | Simple budgeting and expense awareness without anxiety |
| Household Coordinator | Primary | Shared family budgets, real-time spending visibility |
3. User Stories
4. Functional Requirements
| ID | Requirement | Priority |
| FR-1 | CRUD operations for accounts with name, type, and currency (MonetaryAmount composite) | Must |
| FR-2 | Create INCOME, EXPENSE, and TRANSFER transactions with category and description | Must |
| FR-3 | Automatic balance updates on transaction creation via domain events | Must |
| FR-4 | Hierarchical category management with parent-child relationships | Should |
| FR-5 | Monthly budget creation per category with progress tracking | Must |
| FR-6 | Savings goals with target amount, deadline, and balance tracking | Should |
| FR-7 | Currency validation preventing operations across incompatible currencies | Should |
| FR-8 | Transfer transactions that debit one account and credit another atomically | Must |
| FR-9 | Spending reports by category and time period with trend comparison | Should |
| FR-10 | Budget threshold notifications at configurable percentages (e.g., 80%) | Should |
5. Non-Functional Requirements
- MonetaryAmount arithmetic must prevent floating-point precision errors
- Transaction creation and balance updates must be atomic within a single database transaction
- Account dashboard must load in under 500ms with up to 10,000 transactions
6. Acceptance Criteria
7. Out of Scope
- Bank account synchronization or automatic transaction import
- Investment tracking, stock portfolios, or cryptocurrency
- Tax calculation or reporting
- Shared expense splitting (e.g., Splitwise-style)
- Exchange rate management or automatic currency conversion
8. Traceability
9. Open Questions
- Should the wallet support recurring transactions (e.g., monthly rent)?
- How should budget rollovers work — carry unused budget to next month or reset?
- Should savings goal contributions be modeled as transfers or a separate concept?
10. Changelog
| Date | Change |
| 2026-02-18 | Initial version |