Evaluate · tools and controls

Performance attribution tool: the writer is never the checker

A performance attribution tool that drafts answers to “why did we lag?” must never be the thing that checks them. Performance Attribution Analysis separates the two: one agent drafts, another recomputes every figure from the official returns, pairs gross with net and proves the effects add to the total, and a person who did not draft signs.

Updated · 13 min read

A performance attribution tool that writes answers to "why did we lag?" has to be judged first on who checks its work. A drafting model that verifies its own output will confirm its own mistakes, so the check must be independent: every figure recomputed from the official, signed-off returns, before-fee figures paired with after-fee ones, the effects shown to add to the total, and a performance analyst who did not draft the answer approving it with a signature. Botminds' Performance Attribution Analysis is built that way. Its Narrator agent drafts, a separate Consistency agent checks and cannot approve, the portfolio manager reviews the reasons, and only a person on the client team can send. It reads the attribution your performance system already produces; it is not an attribution calculation engine. Two neighbouring decisions have guides of their own: piloting attribution software on last quarter's questions and the KPIs that show it pays.

The examples on this page are the solution's sample data: Quillfield Capital, its strategies, staff and consultants are fictional. Design goals are called targets.

From question to sent answer in Performance Attribution Analysis: one drafts, another checks, people decide

  1. Agent

    Narrator drafts

    Writes the answer for its audience, binding every sentence to the attribution cells and source passages it uses.

    Never: states a figure it cannot bind to a cell

  2. Agent

    Consistency agent recomputes

    Recomputes every figure from the official returns, pairs gross with net, checks the effects add to the total, and compares with the factsheet, earlier answers and the mandate's benchmark.

    Never: approves an answer

  3. Agent

    Disclosure agent tests

    Applies the holdings disclosure policy and the advertisement test; routes an answer for more than one recipient to Marketing Compliance.

    Never: overrides a block

  4. A person decides

    Portfolio manager reviews the reasons

    Confirms the reasons are his, in his words; edits wording if needed.

  5. A person decides

    Performance analyst approves and signs

    Approves with a reason code and an electronic signature; may not approve an answer she drafted or changed a number in.

  6. A person decides

    Client team sends

    Sends the signed answer; the CRM case and evidence are logged as Send is pressed.

The path of an answer in Performance Attribution Analysis, from the solution's design. Three agents, three people; no agent approves or sends, and no person approves their own work.

What a performance attribution tool should do, and what this one does not

The phrase covers two different products. An attribution engine calculates the effects from holdings, transactions, prices and benchmark data; it is part of the performance measurement system and produces the official grid. An answer tool takes that grid and the reasons behind it and produces the paragraph a consultant reads. Buyers who need the first should not buy the second, and vice versa.

Attribution engine or answer tool: two jobs, often confused

Attribution engine (calculation)Answer tool (explanation)
Produces

Attribution engine (calculation): The official attribution grid: allocation, selection, interaction, currency or carry, duration, curve, spread.

Answer tool (explanation): A cited answer to a specific question, for a specific reader, from that grid.

Inputs

Attribution engine (calculation): Holdings, transactions, prices, benchmark constituents, FX rates.

Answer tool (explanation): The official grid and period status, the PM's notes and minutes, trades, issuer filings, prior answers.

Main risk

Attribution engine (calculation): A wrong number: bad prices, missed trades, wrong benchmark data.

Answer tool (explanation): A wrong sentence: a reason nobody gave, a preliminary figure, gross without net.

Owner

Attribution engine (calculation): Performance measurement.

Answer tool (explanation): Performance, with the PM, the client team and compliance.

Performance Attribution Analysis

Attribution engine (calculation): Not this. It reads the grid from your system and never recalculates returns.

Answer tool (explanation): This: it drafts, checks and routes the answer; people approve and send.

Our comparison. The solution's Attribution reader reads official periods only and, by design, never recalculates returns; its checks recompute the figures quoted in an answer from those official returns.

The distinction also decides what to test. An attribution engine is tested by reconciling its effects to the official returns over many periods. An answer tool is tested by comparing its answers, sentence by sentence, with the grid and with what the portfolio manager actually said. A pilot that tests one by the other's standard will pass a tool that is wrong in the way that matters.

Why the writer can never be the checker

A language model that drafts an answer and then reviews it reads its own reasoning twice and tends to agree with it. Researchers who built an attribution agent on GPT-4 put the requirement bluntly: attribution "involves reasoning on structured/tabular data which implies that LLMs have to be able to generate 100% accurate results, hence requiring the use of hallucination controls and evaluation methods" (de Melo and Sheikh, arXiv 2403.10482, 2024, not peer reviewed). Among the future work they list is exactly the separation this page argues for: a step "that verifies the results and re-runs the agent."

One study's attribution agent: strong with examples, weak without them

60%

accuracy explaining the direction of allocation effects with no worked examples in the prompt

92–100%

accuracy on the same task with worked examples

100%

accuracy computing sector-level effects from weights and returns

de Melo and Sheikh, 'Can a GPT4-Powered AI Agent Be a Good Enough Performance Attribution Analyst?', arXiv 2403.10482 (2024), not peer reviewed: GPT-4 agent on twelve quarterly Brinson-Fachler reports for three sample equity funds. The 60% is the zero-shot accuracy of the sector-performance keyword in allocation explanations.Source: de Melo and Sheikh, arXiv 2403.10482

The 60% is the number to remember. The lowest score in that study's explanation tests was not arithmetic but the sentence explaining an allocation effect, which "requires the right combination of two keywords instead of just one": overweight or underweight, and a sector that beat or lagged the index. That is precisely the sentence a consultant reads. A tool that drafts it must be followed by a check that does not share the drafter's reasoning, which is why the solution's Consistency agent recomputes from the official returns rather than re-reading the draft.

How do you check an attribution answer? Seven tests before sign-off

Check an attribution answer against the official returns, not against the draft. In the solution, every answer passes seven checks before an analyst can sign it, and each catches a failure that would otherwise reach a client. In the sample answer to Hartwell Consulting about Global Equity's third quarter, all seven passed and 14 figures were checked with no differences.

The seven checks in Performance Attribution Analysis, and what each one catches

CheckCatchesIn the sample answer
Period finalA figure from a preliminary or open period that may still change.Q3 2026 official returns, final October 9.
Every figure ties to the official returnsA typed, stale or rounded-wrong number.14 figures checked, 0 differences, within 0.5bp.
Rows add to the totalAn effect dropped, double-counted or taken from a different convention.Allocation −39 + selection −94 + interaction −1 + currency −8 = −142bp.
Gross paired with netBefore-fee figures shown without after-fee ones.After-fee figures added: 1.65%, −161bp, equal prominence.
Same as publishedAn answer that contradicts the factsheet or commentary.Q3 factsheet and commentary (October 14) name the same drivers.
Same as earlier answersTwo consultants told two different stories.Two earlier Global Equity Q3 answers, consistent.
Benchmark matches the mandateAn answer measured against the wrong index.Client's investment management agreement, schedule B: Norvale Global All Cap Index (net).
Fictional sample data from the solution's checks screen. Holdings disclosure and the advertisement test are run separately by the Disclosure agent.

What each agent read, and the checks that ran before anyone could sign

Conversation with the agents and checks before sign-off for the Hartwell answer. Left: the Intake agent logged the question with confidence 0.99; the Attribution reader read ATT-GEQ-26Q3-v2, period Final, excess −142bp, largest effects rows 14, 12 and 21; the Context reader read 14 PM notes and found the reasons, confidence 0.94; the Narrator drafted six sentences, 142 words; the Consistency agent checked every figure, 7 of 7 passed, and added the after-fee figures. Right: seven checks passed, then disclosure: holdings disclosure allowed under a confidentiality agreement with a 15-day lag; advertisement test: one recipient plus one internal copy, a reply to an unsolicited request, not an advertisement.
Fictional sample data. Each agent's confidence is shown; the checks are versioned (Consistency agent v3.2, Disclosure agent v2.4) and can be re-run.

How is gross paired with net in an answer?

Whenever an answer shows a before-fee return or gap, it shows the after-fee figure beside it, over the same period and on the same basis. When the grid is calculated before fees, a draft built from it naturally quotes gross numbers; in the sample the Consistency agent added "1.65% after fees" and "161bp after" to a draft that had only 1.84% and 142bp. In an advertisement, the SEC Marketing Rule requires net performance "with at least equal prominence to" any gross performance shown (17 CFR 275.206(4)-1(d)(1)), and the solution's rule applies the pairing to every answer, advertisement or not.

The pairing is a check, not a sentence template. The after-fee figure has to come from the official net returns, not from subtracting an assumed fee, because actual fees differ by share class and by client. The conditions under which attribution itself may be shown gross are set out in the SEC Marketing Rule's gross and net test for attribution.

Can AI write performance commentary? What the research shows

It can draft it, and the SEC's examiners have noticed that firms are doing so. The Division of Examinations' fiscal 2027 priorities, published October 23, 2026, describe the industry's use of what the Division calls super intelligence, or SI: generative SI tools now help firms with research, drafting and client communications as well as portfolio management and compliance monitoring (SEC Division of Examinations, Fiscal Year 2027 Examination Priorities; the Division's words, with what else is known about adoption). Client communications are where performance commentary sits.

Drafting is not the hard part. The study above found its agent computed sector effects perfectly and explained them well when given worked examples; what remained open was whether a single explanation could be trusted without a check. For commentary that reaches clients, the answer is no, and the control has three parts: the draft can only use figures it can bind to an official cell, the reasons must be quoted from the portfolio manager rather than generated, and a separate check plus a human signature stand between the draft and the client.

The second part is the one generic tools miss. A model asked "why did Health Care selection cost 96bp?" will produce a fluent reason whether or not one is on file. In the solution, the Context reader quotes the portfolio manager's notes and, when its confidence in a reason is below a 0.85 floor, asks him in one or two sentences instead of answering. In the sample it did so for a Consumer Staples loss in another strategy at a confidence of 0.71, and the manager's reply was quoted and cited.

Who approves an answer before it goes to a consultant?

A performance analyst who did not draft the answer or change a number in it. In the solution, the agents draft, the portfolio manager reviews the reasons, and the analyst approves with a reason code, A1 (numbers agree with the official returns), A2 (wording edits, no figure changed) or A3 (an added disclosure), and an electronic signature recorded with the time and the answer version. Until she signs, the client team's Send button stays off.

Approval with a reason code and a signature tied to the answer version

Approve PQ-26Q3-0418 dialog: Global Equity Q3 2026 to James Whitcombe, Hartwell Consulting Group. Reason code options: A1 numbers agree with the official returns, no edits (selected); A2 approved with wording edits, no figure changed; A3 approved with an added disclosure. An optional note visible on the audit trail. A checked statement: I have checked the answer against the official returns and sign as Anika Sorensen, Performance Analyst, Equities; signature is recorded with time and version. Approve and sign button.
Fictional sample data. The reason code is required on every approval and rejection, so a reviewer can later see why an answer was let through.

The reason codes matter more than they look. An approval with no reason cannot be audited; an approval that says "numbers agree with the official returns" can be tested against the checks that ran and the version that was sent. And because no one may approve an answer they drafted or changed a number in, the person who signs is always someone who checked the numbers rather than wrote them.

What if a period is restated? Finding every answer that quoted it

A restatement turns every sent answer that quoted the old figure into a wrong answer in a client's file. In the sample, International Small Cap's second quarter was restated on October 2, after the spin-off of one holding from its parent was booked late, and the gap moved from −118bp to −137bp. The solution's Attribution reader found the three answers already sent that quoted −118bp, to three different recipients, and drafted corrections; the head of performance measurement approves them before anything goes out.

The same logic runs before an answer is sent. A preliminary period is refused outright, with the date it is expected to be final, and the client team can send a holding reply in the meantime. The sample shows the refusal for Global High Yield, whose quarter was held open by a price challenge on one bond: "I will not answer that yet. Any figure I gave you now could change."

What records must back a performance figure?

For a registered investment adviser, every performance figure it sends out must be backed by the workings that prove it, whether the communication is an advertisement or a single letter. Rule 204-2 requires the adviser to keep the books, working papers and other records needed to show how any performance figure was calculated, whenever that figure appears in an advertisement, letter, bulletin or other communication it sends, directly or indirectly, to "any person" (17 CFR 275.204-2(a)(16); the recordkeeping rule, record by record).

"Any person" is the phrase that reaches consultant answers. A one-to-one reply to a consultant may not be an advertisement, but the calculation behind every return it quotes still has to be demonstrable. That is why the solution keeps, for every answer, the attribution version it read, the checks that ran and their results, the sources each sentence cites, the approvals and the sent text, on an append-only trail, exportable as one evidence file per answer or per quarter.

The audit trail of one answer, from first read to sent and logged

Audit trail: every action by people and agents, append-only, kept seven years, with an export button for the evidence file; 18,412 events this quarter. Events for PQ-26Q3-0418 in reverse order: the Delivery agent logged to CRM and wrote the evidence file with a SHA-256 hash; Owen Marsh sent the answer approved by Anika Sorensen; the Delivery agent prepared the email and PDF; Anika Sorensen approved and signed A1, numbers agree with the official returns, answer v2; Marcus Hale reviewed the reasons and edited sentence 6; the Disclosure agent allowed the September 30 position size under an agreement; the Consistency agent passed 7 of 7 checks and added net figures; the Narrator drafted v1; the Context reader read PM notes, blotter and issuer filing; the Attribution reader read the official attribution.
Fictional sample data. The seven-year retention is the solution's setting; the rule's own minimum for these workings is five years from the end of the fiscal year in which the communication was last disseminated.

Performance attribution systems vs answer tools: buying the right one

If the gap in your team is calculation, buy or fix the performance measurement and attribution system first: no answer tool can explain a grid that is wrong. If the gap is the time from a correct grid to a signed, consistent answer, an answer tool is the purchase, and it should sit beside the attribution system rather than replace it. The solution connects to the performance measurement system for official returns, attribution and period status; to portfolio accounting for holdings and transactions; to the order management system for the trade blotter; to document management for the manager's notes, minutes, factsheets and commentary; and to the CRM and mailbox for questions in and answers out.

Questions to put to any performance attribution tool that drafts answers

  1. Who checks the draft, and with what?

    A separate check that recomputes from the official returns, not a second pass by the same model over its own text.

  2. Can it state a number it cannot cite?

    Every figure should be bound to an official cell or a named source; ask to see what happens when one is not.

  3. What does it do with a preliminary period?

    It should refuse, say when the period will be final, and never answer from an open period.

  4. Where do the reasons come from?

    Quoted from the PM's notes, minutes and trades, or asked of the PM; never generated.

  5. Does it pair gross with net every time?

    From official net returns, over the same period, with equal prominence.

  6. Can anyone approve their own work?

    The drafter, and anyone who changed a number, should be blocked from approving.

  7. What happens after a restatement?

    It should find every sent answer that quoted the old figure and draft corrections for approval.

  8. Can you export the workings?

    Versions, sources, checks, approvals and the sent text, per answer, for an examiner or auditor.

Our checklist for buyers. Each item is a control the solution implements; ask any tool to demonstrate it on your own past answers rather than on a demo set, as described in the pilot guide.

The last instruction is the important one: test a tool on last quarter's real questions and compare its answers with what you sent. How to pilot performance attribution software lays out the weeks and the scoring. To see the agents, checks and sign-off on your own attribution reports, start from Performance Attribution Analysis.

Questions people ask

What are performance attribution systems?

They are the systems that calculate attribution: they take holdings, transactions, prices and benchmark data and produce allocation, selection and other effects for each portfolio and period. They are usually part of, or fed by, the performance measurement system that produces official returns.

Can a performance attribution tool replace the performance analyst?

No. It can take the reading, drafting and mechanical checking off the analyst's desk, but the analyst still answers for every figure that leaves the firm and signs. In the solution, a target is for 100% of figures in an answer to be tied to the official, signed returns before it is sent, and a person still approves.

Does the tool need access to portfolio manager notes?

If it is to explain why, yes: the attribution grid says where the gap came from, and only the manager's notes, minutes and trades say why. Without them, a tool can describe effects but has to ask, or leave the reason to a person.

How long should a drafted answer take?

In the solution's sample, the agents read the official attribution, the manager's notes, the trades and an issuer's filing in German and drafted a cited answer in 2 minutes 41 seconds. Elapsed time to a sent answer then depends on the PM's review and the analyst's sign-off; the solution's target is a cited answer the same day.

Is an answer to one consultant an advertisement?

Usually not, if it answers that consultant's question about an existing client's account and offers no new services. The same text sent to many recipients, or reused as a standard insert, can be. The solution treats any answer going to more than one recipient as an advertisement and routes it to Marketing Compliance first, a deliberately cautious setting.

Performance Attribution Analysis.
See it on your own files.

An agentic solution from Botminds. Agents read the official attribution, the portfolio manager's notes, the trades and the issuers' own filings, draft a plain answer to "why did we lag?" in which every sentence is bound to the attribution cells it relies on, check every figure against the signed-off returns, and move it from the consultant's question to a signed, sent and logged reply. Book a demo, or explore how it works.