You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Manual accounts (createManualAccount — type='other', subtype='manual') and CSV accounts only get a new balance_history row when the user edits the value by hand (updateAccountValue writes a row for today). Every net worth / health query (core/health.ts, getNetWorthHistory, getAccountsWithBalances) uses each account's latest balance row regardless of age, so a manual balance entered six months ago silently distorts net worth, runway, FIRE progress, and the Health page — with no indication anything is stale.
The Accounts screens (TUI + GUI) already show "synced " per account via last_synced (getLinkedAccounts computes MAX(date) from balance_history), but nothing warns when that date is old, and manual accounts will always go stale without user action.
Proposed solution
Staleness threshold for manually-maintained balances (manual + CSV accounts), e.g. default 30–60 days, configurable via the settings table.
Accounts screen: stale badge / warning color on the "synced " text for accounts past the threshold, with a quick path to the existing edit-value flow.
Health page: a small notice when any included (non-excluded) manual balance is stale, e.g. "2 manual balances are >60 days old — net worth may be inaccurate", so the numbers on that page carry a caveat.
Snooze: per-account "remind me later" that suppresses the warning until a date. Could be a stale_snooze_until column on accounts or a settings key per account id. Snoozing should be cheap — the point is a nudge, not nagging (same principle as Plaid sync health warnings #21: in-context, not modal).
MCP: list_accounts could include daysSinceUpdate / needsAttention so the agent can prompt too — dovetails with the flags proposed in Plaid sync health warnings #21.
Notes
Plaid sync health warnings #21 covers Plaid-linked accounts failing to sync (link errors, expired tokens). This issue is the complement: accounts that are designed to be updated by hand and have no sync to fail.
An alternative to snooze-per-account: let the user mark an account "slow-moving" (e.g. house value) with a longer threshold instead of repeatedly snoozing.
Problem
Manual accounts (
createManualAccount—type='other',subtype='manual') and CSV accounts only get a newbalance_historyrow when the user edits the value by hand (updateAccountValuewrites a row for today). Every net worth / health query (core/health.ts,getNetWorthHistory,getAccountsWithBalances) uses each account's latest balance row regardless of age, so a manual balance entered six months ago silently distorts net worth, runway, FIRE progress, and the Health page — with no indication anything is stale.The Accounts screens (TUI + GUI) already show "synced " per account via
last_synced(getLinkedAccountscomputesMAX(date)frombalance_history), but nothing warns when that date is old, and manual accounts will always go stale without user action.Proposed solution
settingstable.stale_snooze_untilcolumn onaccountsor a settings key per account id. Snoozing should be cheap — the point is a nudge, not nagging (same principle as Plaid sync health warnings #21: in-context, not modal).list_accountscould includedaysSinceUpdate/needsAttentionso the agent can prompt too — dovetails with the flags proposed in Plaid sync health warnings #21.Notes