# Client Report Desk > A client performance report builder for financial advisors that runs in the browser - net-of-fee > and gross Modified Dietz returns per account and for the household, the benchmark comparison and > a chain-linked year to date, fees and income, the activity summary, the allocation against the > benchmark weights with drift flags, the largest holdings with approximate contributors and > detractors, and a tie-out of holdings against account values - followed by a paid lane that > writes the client-facing report narrative. Every number the narrative writes is checked against > the figures. https://client-report-desk.skillsafe.ai/ Client Report Desk is a web app on SkillSafe derived from the agent skill @anthropics/client-report (anthropics/financial-services-plugins, Apache-2.0). It runs on gpt-terra and is metered per report; the figures themselves are free and need no account. The source skill describes an 8-12 page PDF client report built from portfolio systems; this app takes the period's data as a paste and produces the figures plus a Markdown report draft for the advisor to review. ## Input One household's reporting period: the client name, a period label, start and end dates, the currency, the audience (retail or sophisticated), the benchmark's name and period return, and optionally the portfolio's and the benchmark's returns earlier in the year. Accounts (name | type | begin value | end value), cash flows (date | account | contribution, withdrawal, fee, dividend, interest, buy or sell | amount), holdings (security | asset class | shares | price | period return % | account), benchmark weights (asset class | weight %), and optional market notes and planning notes from the advisor. ## What the free figures compute - Modified Dietz return per account and for the combined household: gain divided by the begin value plus each contribution or withdrawal weighted by the share of the period it was invested. - Net of fees (fees taken from the account lower the return) and gross (fees added back); fee drag. - The benchmark comparison in percentage points and the outcome: outperformed, underperformed, in line (within 0.10 pp) or n/a; a chain-linked year to date. - Fees and income in money and as a share of average capital; contributions, withdrawals, trades. - Allocation by asset class against the benchmark weights, drift at 5.0 pp or more. - Holdings by value with weights; approximate gain = value - value / (1 + period return). - Tie-out: holdings vs account end values (1% tolerance), flows outside the period or on unknown accounts, implausible returns, large flows, weights that do not sum to 100%. - Report status: hold (any high flag), review first (any medium flag) or ready. ## The paid lane: report The model receives the figures as a JSON string and writes: the outcome and status (copied, never decided), headline, executive summary, performance, allocation and holdings reads, market commentary written ONLY from the advisor's notes (empty when there are none), activity read, planning notes, action items, one response per flag, compliance checks, disclosures and a summary, in plain words for retail clients. It never computes or invents a number, a market event or a goal. The page reconciles every number, date, currency, the outcome, the status, the flags, the commentary's source and retail jargon against the figures and shows each disagreement. ## Output One JSON object: lane, outcome, report_status, headline, executive_summary, performance_read, allocation_read, holdings_read, market_commentary {what_happened, portfolio_effect, outlook}, activity_read, planning_notes[], action_items[], flag_responses[{code, response}], compliance_checks[], disclosures[], summary. Exports: figures Markdown, performance CSV, holdings CSV, household JSON, and the full client report as Markdown (narrative plus tables) and JSON. ## Limits No time-weighted returns from daily valuations, no risk statistics, no tax lots, no market data. Returns are cumulative for the period, not annualised. A draft client communication for advisor review and compliance approval, not investment advice. ## Links - App: https://client-report-desk.skillsafe.ai/ - API tutorial: https://client-report-desk.skillsafe.ai/api.html - Source skill: https://skillsafe.ai/skill/@anthropics/client-report - Licence: https://client-report-desk.skillsafe.ai/LICENSE-ANTHROPICS-FINANCIAL-SERVICES.txt