## Review outcome **No P0 or P1 findings. Three P2 findings remain.** ### P2 findings 1. **Explicit date URLs are not always treated as custom** - `frontend/src/pages/HouseholdOverviewPage.vue:133-138, 227-232` - A recognized `preset` takes precedence over an explicit `date_from`/`date_to`. For example, `?preset=current_month&date_from=2026-01-01&date_to=2026-03-31` silently replaces the supplied dates with the current month. - Existing coverage only tests explicit dates without a `preset`, so this branch is missed. 2. **Inherited `category_id` and `financial_effect` filters are active but invisible and conflict with visible controls** - `frontend/src/pages/HouseholdTransactionsPage.vue:12-16, 60, 118, 137` - The page correctly parses and submits `category_id` and `financial_effect`, but shows “Alle Typen” and “Alle Kategorien.” Editing the visible category does not clear `category_id`; selecting a type does not clear `financial_effect`. - This can produce unintended conjunctive filters, e.g. `category_id=food&category=health` or `financial_effect=expense&type=income`, yielding misleading empty states. Only a full reset reliably removes them. 3. **Backend drill-down contract fields are omitted from TypeScript/UI** - Backend: `src/jarvis_finance/services/household_cockpit.py:543-546, 579-580, 284-307` - Frontend type/UI: `frontend/src/api/household.ts:43-57`; `frontend/src/pages/HouseholdOverviewPage.vue:36-41, 93-96` - The backend provides account-preserving `income_drilldown_url`, `expense_drilldown_url`, and merchant `drilldown_url`, but the TS contract omits these fields and the KPI cards/top-merchants render as static content. Category and “all transactions” drill-downs correctly preserve repeated `account_id`; these additional contract drill-downs are currently unreachable. ### Verified successfully - Request generation and abort protection prevent stale commits. - `comparison=none` hides delta text and omits the comparison chart dataset. - Account-filtered budget/forecast states are displayed as unavailable without progress/status claims. - Stable `budget_account_id` values flow through repeated `account_id` parameters for implemented category/all-transactions drill-downs. - `aria-pressed`, long-label wrapping, empty states, 44px targets, mobile drawer layout, and chart/table alternatives are present. - Transaction URL parsing handles repeated `account_id`, `category_id`, and `financial_effect`. ### Commands run - Focused frontend tests: **53 passed** - Frontend typecheck: **passed** - Production build: **passed** - Cockpit backend tests: **14 passed** - `git diff --check`: **passed** **Files modified:** none. Build output was generated only in the ignored `frontend/dist` directory.