Household plan card
The assistant's proposed batch of household data, reviewed and edited inline before an atomic accept, with settled and superseded states.
Your household picture
12 items to confirm
Goals
Retire at 60
Retirement · In about 18 years
For Eleanor Whitfield, Marcus Whitfield
£60,000/yr
People
Eleanor
Primary
Whitfield
Marcus
Partner
Whitfield
Companies
Whitfield Consulting Ltd
Ltd
09876543
Accounts
First Direct
Cash · current
Eleanor Whitfield, Marcus Whitfield
£18,400
Vanguard
Investment · stocks_and_shares
Eleanor Whitfield
£121,500
AJ Bell
UpdateInvestment · sipp
Eleanor Whitfield
£228,000
→
£243,000
Assets
Family home
Property
Eleanor Whitfield (50%), Marcus Whitfield (50%)
£850,000
Liabilities
Nationwide
Mortgage
Eleanor Whitfield, Marcus Whitfield
£420,000
Income
Eleanor Whitfield
Tax year 2025/26
Whitfield Consulting Ltd
Other income £4,200
Expenses
Household bills
Eleanor Whitfield · monthly
£2,400
School fees
Marcus Whitfield · annual
£18,000
Connect a bank for live balances and transactions.
<HouseholdPlanCarddata={plan}status={status}onAccept={(plan) => importHousehold(plan)}onDismiss={() => dismiss()}resolveName={(id) => names.get(id)}existing={{ accounts: existingAccounts }}/>Usage
import { HouseholdPlanCard, type HouseholdPlanData } from "@reva/ui";Renders the propose_household_data payload: people, companies, accounts, assets, liabilities, income, expenses and goals, wired together by proposal-local refs. The card owns the inline draft edits (Edit toggles every key figure into an input); the host owns persistence. onAccept receives the possibly edited plan, and the host reports progress back through accepting and error.
The lifecycle is controlled: pass status and anything but "open" renders the matching collapsed state. Rows that edit an existing entity carry an id; give the card existing maps and resolveName so those rows show the current values (the "current to new" figure) and existing owners read as real names.
The demo above wires accept and dismiss to local state, so try editing a figure and accepting.
Examples
Accepted
Saved 12 items to your household.
<HouseholdPlanCard data={plan} status="accepted" />Dismissed
Dismissed. Nothing was saved.
<HouseholdPlanCard data={plan} status="dismissed" />Superseded
A newer proposal in the same conversation replaced this one, so it collapses instead of leaving a second live confirmation.
Replaced by an updated picture below.
<HouseholdPlanCard data={plan} status="superseded" />