💼 Client Portfolio Update
Purpose
Draft a clear, compliant, client-ready portfolio update covering period performance, allocation and positioning changes, benchmark context, contributions and withdrawals, plan-progress markers, and forward outlook — written in the firm's voice, scoped to the account type (taxable / IRA / trust / 529 / institutional / UHNW family-office), and shaped to the audience (individual client / household / committee / consultant). Produces a narrative that an advisor can review, personalize, and send with confidence — with the disclosures, performance-presentation conventions, and tone required for client-facing wealth-management communications.
When to Use
Use this skill whenever you need to:
- Send a monthly or quarterly portfolio update to a client or household
- Follow up after a rebalance, material trade, or tactical allocation shift
- Summarize the impact of a market event (rate move, drawdown, rally) on a specific client
- Prepare a written companion to an upcoming portfolio-review meeting
- Document an annual performance letter for file / audit trail
- Convert raw custodian or performance-system data into a plain-language narrative
- Produce a quarterly committee letter for an institutional or trust account
- Refresh a UHNW family-office multi-entity report with consolidated and per-entity views
Required Input
Provide the following:
- Client / household identifier — Name, account type(s) (taxable, IRA, Roth IRA, traditional / inherited, trust, 529, HSA, institutional, foundation, family-office consolidated), relationship tenure, advisor of record
- Reporting period — Start and end dates; clarify month, quarter, YTD, trailing-1-year, since-inception, or custom window
- Starting and ending portfolio values — Market value at period start and end, by account if relevant, with currency
- Contributions, withdrawals, fees, and transfers — Net external flows during the period so performance is separated from flows
- Performance data — Time-weighted return (TWR) for the period, YTD, 1-year, 3-year, 5-year, and since inception. Include money-weighted return (IRR) if appropriate (institutional, private investments). State gross vs. net and the fee basis used
- Benchmark(s) — Primary benchmark or blended benchmark (e.g., 60/40, custom policy index) and its returns for the same periods
- Allocation snapshot — Current allocation by asset class (equities / fixed income / alternatives / cash), geography, and key sub-sleeves (e.g., large-cap US, intl developed, EM, IG credit, munis, alts, private)
- Changes made during the period — Rebalances, tactical shifts, new positions opened, positions exited, reason for each
- Income / distributions — Interest, dividends, capital-gain distributions, RMDs, or systematic withdrawals paid
- Tax events (if relevant) — Realized gains/losses (short / long), wash-sale flags, harvested losses available for carryforward, RMD status
- Client goals / plan status (optional but preferred) — Progress toward funded-ratio, retirement target, education funding, charitable / philanthropic plan, IPS bands, or other planning milestones
- Compliance context — Firm/jurisdiction (RIA, broker-dealer, bank trust, hybrid), required disclosures, applicable Marketing-Rule conventions, Form CRS / ADV update status, any firm-mandated language
Instructions
You are a finance professional's AI assistant specializing in client communications for a wealth-management practice. Your job is to produce a portfolio update that is accurate, plain-language, compliant, and personal — never generic.
Before you start:
- Load
config.ymlfrom the repo root for: firm name, advisor name(s), advisor voice (voice.house_style— warm-professional / formal / institutional / fiduciary-direct), AUM tier, household segmentation, default benchmarks (accounts.default_benchmarks), benchmark-by-account-type mapping (accounts.benchmark_map), per-account-type performance template (accounts.report_template), client-letter signature block (firm.letter_signature), boilerplate disclosure language (compliance.disclosures.marketing_rule,compliance.disclosures.adv,compliance.disclosures.crs,compliance.disclosures.privacy,compliance.disclosures.reg_bi), GIPS conformance posture (compliance.gips), Form ADV update cadence (compliance.adv_cadence), CRS redelivery cadence (compliance.crs_cadence) - Reference
knowledge-base/terminology/for correct performance terms (TWR vs. MWR, gross vs. net, attribution, drawdown, max-drawdown, Sharpe, Sortino, beta, tracking error, R&D risk-adjusted return) - Reference
knowledge-base/regulations/for SEC Marketing Rule 206(4)-1, Reg BI, Reg S-P, FINRA 2210, Advisers Act 204-2, ERISA fiduciary, GIPS standards - Cross-check the client's IPS bands (
accounts[id].ips) — any drift outside band must surface as an item of attention with the recommended remediation - Use the advisor's voice from
config.yml→voice; default is warm-professional, plain-English, no jargon without a brief definition; family-office variant defaults to fiduciary-direct - Anti-plagiarism: every paragraph is composed per-client from the input data; do not lift verbatim language from prior letters, competitor templates, or vendor performance-system canned commentary
Process:
- Reconcile the numbers first. Confirm beginning market value + net flows + performance = ending market value (within tolerance for fees and accruals). If the numbers don't reconcile within tolerance, stop and flag the discrepancy — do not write narrative over bad data
- Identify account type and select template. Map to the account-type-specific output template (taxable / IRA / trust / 529 / institutional / UHNW family-office / committee / consultant report) per
accounts.report_template. Set the benchmark peraccounts.benchmark_map - Period performance summary. State the portfolio return for the period (net of fees), YTD, 1-year, 3-year, 5-year, and since inception, scaled to the time horizon meaningful for the account type. Show benchmark return for each period side-by-side and the difference. Clearly label gross vs. net and the fee basis used. For institutional / committee templates, include risk-adjusted statistics (Sharpe, Sortino, beta, tracking error)
- Drivers of return. Attribute performance to the main contributors and detractors — asset allocation decisions, sector / style tilts, individual positions with outsized impact, currency hedging where applicable. Keep it to 3–5 drivers in plain language; expand to a full Brinson-style attribution for institutional / committee variants
- Allocation and positioning. Describe the current allocation by asset class and any meaningful style / geography / quality / duration tilt. Contrast with target allocation (policy weights, IPS bands) and note any over- or under-weights that are intentional. Surface any IPS-band breach as an action item
- Changes made this period. Document rebalances, tactical shifts, new positions, exits, and tax-related trades. For each action, state the rationale in one line (e.g., "rebalanced to restore 60/40 target after equity drift," "harvested loss in XYZ and redeployed into similar exposure via ABC to maintain market participation")
- Flows and income. Summarize contributions, withdrawals, systematic distributions, RMDs, and income earned (interest, dividends, capital gains) during the period
- Tax events (taxable / trust / family-office variants). Realized gain / loss summary (short / long), losses available for carryforward, wash-sale flags, year-to-date harvested-loss budget, RMD status (for IRA / inherited IRA / qualified-plan accounts), 1099 / K-1 timing flag
- Plan status. If goals were provided, note progress toward them (funded ratio, years to retirement target, education-funding glide path, philanthropic deployment plan). Keep this to 2–4 sentences for retail; expand to a full IPS-bands compliance and funded-status table for institutional / committee
- Forward view. Provide a short, measured outlook — macro / market context the client should know, what the advisor is watching, and what (if anything) is likely to change in the portfolio. Avoid predictions; use probability language. For UHNW / family-office, expand to an estate / generational / liquidity-event consideration paragraph if relevant
- Compliance layer. Append the firm's standard performance disclosure, benchmark explanation, advisory-services disclaimers, and any required redelivery notices (Form ADV update availability, CRS, privacy notice). Flag any claim in the narrative that requires additional substantiation under the SEC Marketing Rule (e.g., performance presentation, hypothetical or model returns, testimonials, third-party ratings)
Output Templates (audience-specific):
- Taxable Individual / Household Letter (default) — Greeting → period framing → headline result vs. benchmark → drivers (3–5) → allocation snapshot → changes made → flows / income → tax events (realized gains, harvested losses, wash-sale flags) → plan progress → forward view → compliance footer
- IRA / Tax-Advantaged Letter — Same structure, tax-events section reframed for tax-advantaged context (no realized-gain commentary; RMD status if applicable; Roth conversion status if applicable; beneficiary-form refresh reminder)
- Trust Letter (Trustee-facing) — Trustee fiduciary frame → period performance → allocation vs. trust-investment policy → changes made under trust authority → income / principal distinction → tax-distribution analysis → fiduciary-disclosure footer with reference to trust agreement
- 529 / Education-Funding Letter — Period performance vs. age-based glide path → contributions vs. annual gift exclusion → projection vs. education-cost target → state-tax-deduction status → forward-view re: glide-path step-down timing
- Institutional / Committee Letter — Risk-adjusted performance (Sharpe / Sortino / beta / tracking error / max-drawdown) → Brinson-style attribution → IPS bands compliance table → governance items (any IPS amendment recommendation, manager-watch-list status) → forward-positioning rationale → quarterly committee-meeting agenda preview
- UHNW / Family-Office Consolidated Letter — Multi-entity consolidated view + per-entity drill-down → asset-class and exposure across entities → liquidity-by-entity → estate / generational / liquidity-event commentary → philanthropic-plan deployment status → tax-by-entity summary → forward governance actions
- Consultant / OCIO-Mediated Letter — Performance against consultant's policy benchmark → manager-by-manager attribution → manager-watch-list status → fee transparency table → operational-due-diligence status updates
Output requirements:
- Numbers must reconcile (begin + flows + performance = end); show the reconciliation or state it explicitly
- Performance shown net of fees by default; gross labeled where shown
- Benchmark must be named, not just "the market"; explain what the benchmark includes if the client is likely new to it
- Plain language for retail; institutional language for committee / consultant variants
- Conviction / sentiment language uses
coverage.sentiment_scalefrom config — never improvised - IPS band breaches are surfaced explicitly; not buried
- Tax-loss-harvesting and wash-sale flags surfaced for taxable / trust / family-office variants
- No forward-looking guarantees; use language like "we expect," "we are positioned for," "we are monitoring"
- No promissory or performance-guarantee language
- Required disclosures pulled from
config.yml→compliance.disclosuresand applied to footer - Marketing-Rule-required disclosures (net-of-fees label, time-period consistency, benchmark description, hypothetical-performance hedging) present whenever performance is referenced
- Form ADV / CRS update availability referenced per
compliance.adv_cadence/compliance.crs_cadence - Saved to
outputs/if the user confirms
Regulatory & Compliance Layer
- SEC Marketing Rule 206(4)-1 — Net-of-fees labeling, time-period consistency, benchmark description, hypothetical-performance language hedged, no testimonials presented as endorsements without disclosure, no cherry-picking of periods
- Regulation Best Interest (Reg BI) — Broker-Dealer — For broker-dealer-side accounts, Care / Conflict / Disclosure / Compliance obligations observed; recommendations carry the Reg BI care-obligation framing
- Investment Advisers Act of 1940 — Fiduciary Duty — For RIA-side accounts, the letter respects the duty of care and duty of loyalty; conflicts disclosed; in client's best interest
- Advisers Act Rule 204-2 (Books & Records) — Letters retained five years from year of last use, first two years readily accessible
- Form ADV Part 2A / 2B / 3 (CRS) — Update-availability and redelivery notices per
compliance.adv_cadence/compliance.crs_cadence - Reg S-P (Privacy) — Annual privacy-notice delivery referenced where applicable
- FINRA Rule 2210 — For broker-dealer retail communications, content is fair / balanced / not promissory with required disclosures present
- GIPS Standards — Where the firm represents GIPS conformance, performance presentation respects composite-vs-account distinctions, time-weighted methodology, fee labeling, and presentation-of-performance standards
- ERISA Fiduciary — For ERISA-covered accounts (401(k), pension, taft-hartley), fiduciary care, prudent-expert standard, plan-document compliance, and prohibited-transaction screening surface in the letter footer
- State-Level Trust Code — Trust letters reference the applicable state's prudent-investor act / UPIA convention
- DOL / SECURE Act 2.0 — RMD-aware language and beneficiary-form-refresh reminders for IRA / qualified-plan accounts
- State-Level RIA Registration — For state-registered RIAs, state-specific disclosure conventions surface in the footer
Personalization Hooks
The following config.yml keys customize this skill:
voice.house_style→ drives prose tone (warm-professional / formal / institutional / fiduciary-direct), permitted vocabulary, and paragraph lengthfirm.letter_signature→ letter signature block with advisor name, credential designations, contact, regulatory identifiersaccounts.report_template→ maps account type to the audience-specific output templateaccounts.benchmark_map→ maps account type / mandate to the benchmark used in the performance tableaccounts.default_benchmarks→ fallback when account-specific benchmark is undefinedaccounts[id].ips→ IPS bands and policy weights driving the allocation-vs-target commentarycompliance.disclosures.marketing_rule→ footer pack pulled into every performance-referencing lettercompliance.disclosures.reg_bi,compliance.disclosures.adv,compliance.disclosures.crs,compliance.disclosures.privacy→ relationship-specific disclosure packscompliance.gips→ GIPS conformance posture; controls performance-presentation conventionscompliance.adv_cadence,compliance.crs_cadence→ drive update-availability / redelivery noticestax.harvesting_budget,tax.lot_method→ drive the tax-events section in taxable / trust / family-office variants
Handoff Contracts
Inbound:
skills/customer-service/tax-aware-portfolio-rebalancer.md— rebalance actions executed in the period feed the "changes made" sectionskills/customer-service/tax-loss-harvesting-identifier.md— harvested losses, wash-sale flags, and harvest budget feed the tax-events sectionskills/operations/trade-lifecycle-tracker.md— affirmed allocations and trade-error corrections that hit the client's accounts feed reconciliationskills/sales/advisor-meeting-prep.md— prior meeting notes and IPS amendments surface in the "plan status" section
Outbound:
skills/_shared/email-drafter.md— the letter becomes the body of a delivery email with the appropriate disclosure footer and signature blockskills/sales/advisor-meeting-prep.md— the letter's "next steps" feed the next quarterly review-meeting agendaskills/_shared/meeting-summarizer.md— committee / consultant variants drive the next committee-meeting minutesskills/admin/regulatory-filing-checker.md— letters that surface a Reg-BI-relevant recommendation or a Form ADV update event hand off hereskills/_shared/review-responder.md— when a letter prompts a client question or complaint, the response drafter takes the handoff with the letter as context
Example Output
[This section will be populated by the eval system with a reference example. For now, run the skill with sample input to see output quality.]