Draft the commentary from a locked source pack only: the month-end performance table, attribution and holdings exports, and the manager's notes. Have the AI tag every number to a source row, check each figure against that row, and let a named approver sign and log the exact version that gets published.
The approver has to be a person who can say no, and who reads the draft against the source pack rather than against memory. The AI only writes sentences. Performance figures stay in the table that your data feed produces, and nothing a model invents about why markets moved is allowed to reach a client.
Name the roles before anyone drafts a word
Small firms often skip this step because everyone knows who does what. The log is where it shows, because a sign-off by "the team" is not a sign-off. Four roles are enough, and each has one thing it must not do.
| Role | Does | Must not |
|---|---|---|
| Drafter (an analyst or operations person) | Assembles the pack, runs the prompt, edits the draft | Approve their own draft |
| Data owner (operations lead, or your contact at the fund administrator) | Supplies and locks the performance, attribution and holdings numbers | Write or edit commentary |
| Portfolio manager | Writes short notes on what changed and why, in their own words | Approve commentary on their own fund |
| Approver (a named role, usually the compliance officer) and a named deputy | Reads the draft against the pack, checks required wording, signs the log | Change the text after signing without re-approving it |
In a firm of four or five people one person may hold two seats, but the approver can't also be the manager of the fund being described. If that is unavoidable, buy the approver seat from an outside compliance consultant, and write that person's name in the log rather than a job title. A title says who should have signed; a name says who did.
Build a source pack the model cannot wander out of
A language model fills silence with plausible market commentary, which is exactly what a factsheet cannot carry. The cure is to give it everything it may say and nothing else. For each fund, freeze one pack per month-end containing:
- the performance table for each share class, with the basis stated (net of fees, period end, currency);
- benchmark returns for the same periods;
- the top ten holdings with weights, plus cash;
- a contribution and attribution table, showing the largest contributors and detractors;
- three to six notes from the portfolio manager, covering what was bought or sold and why;
- last month's published commentary, as a style reference and for a change check;
- the approved wording file with your standard risk statements and past-performance warning, which are pasted into the template and never generated.
Give every row an ID before anything reaches the model. The IDs are what make the numbers check later a lookup instead of a hunt. This is the illustrative pack for a fund called the Income Fund, with invented figures:
| ID | Item | Value |
|---|---|---|
| P-1 | Fund return for the month, class A, net of fees | +1.80% |
| P-2 | Benchmark return for the month | +1.30% |
| P-3 | Fund return year to date, class A, net of fees | +6.40% |
| P-4 | Benchmark return year to date | +5.90% |
| A-1 | Largest contributor (Holding A) | +0.42 percentage points |
| A-2 | Largest detractor (Holding B) | -0.21 percentage points |
| H-1 | Cash weight at month-end | 3.1% |
| N-1 | Manager note | Added to utilities after the sector sold off; trimmed software on valuation after results. |
| N-2 | Manager note | Cash is up because of two takeover payouts not yet reinvested. |
Attach the pack to a project or a single chat and switch web search off if the tool lets you. A model with the web available may cite a rate decision that never appears in your notes. Keep client names and anything else outside the factsheet out of the pack, so the only thing at risk if a file is mishandled is material you were about to publish anyway.

The Complete Excel Course with AI Integration
From formulas and pivot tables to Power Query, DAX, VBA and AI with Copilot, ChatGPT and Claude — hands-on from the first lesson.
By Sagnik Bhattacharya and Virginia Thorn, Primetime Emmy Award winner
Buy nowThe drafting prompt and a first draft with three faults
The prompt does three jobs: it closes the model off from outside knowledge, it forces every sentence to carry the IDs of the rows behind it, and it makes the model report what it could not support. Any figure you want in the text, including a gap such as "0.5 percentage points ahead", goes into the pack as a row calculated in your spreadsheet, because the model is told not to calculate.
You are drafting the monthly commentary for one fund's factsheet.
Use ONLY the attached source pack. Do not use outside knowledge, the web or
anything you remember about markets, companies or the economy.
Write three short paragraphs, about 120 words in total:
1. Performance for the month and year to date against the benchmark.
2. What contributed and what detracted.
3. What the manager changed, and the cash position.
Rules:
- End every sentence with the IDs of the pack rows it relies on, like [P-1, P-2].
- Do not calculate anything. Quote figures exactly as shown, with their units.
- Give a reason for a move only if a manager note (an N row) gives it.
If no note gives one, write nothing about why.
- No forecasts, no recommendations, no words such as expect, should, attractive.
- Do not write risk warnings or the past-performance statement; the template adds them.
- British English, plain words.
After the draft add two lists: "Numbers used" (each figure with its ID) and
"Statements I could not support from the pack".
Here is a first draft of the kind that prompt can return for the Income Fund pack. It is illustrative, with deliberate faults to show what the later checks are for.
The fund returned 1.8% in the month, ahead of its benchmark's 1.3% [P-1, P-2]. Year to date it has returned 6.4% against 5.9% for the benchmark [P-3, P-4].
Holding A was the largest contributor, adding 0.24 percentage points, while Holding B detracted 0.21 percentage points [A-1, A-2].
The manager added to utilities after the sector sold off and trimmed software on valuation after results [N-1]. Cash ended the month at 3.1%, higher than usual because of takeover payouts not yet reinvested [H-1, N-2].
Reading it against the pack turns up three faults, and only one of them is an arithmetic slip.
- A transposed figure. The pack says Holding A added 0.42 percentage points, and the draft says 0.24. A reader would never notice, and neither would a quick read of the draft alone. The numbers check below exists for this.
- A claim with no source. The note says cash is up because of takeover payouts. "Higher than usual" asserts a norm the pack does not contain. The model's own list of unsupported statements came back empty, which is why the self-report can never replace the approver's read against the pack. The fix is "up because of takeover payouts not yet reinvested".
- No basis stated. "Returned 1.8%" doesn't say class A or net of fees. Put the basis in a fixed line above the commentary in the template, and make the approver confirm it sits next to the first figure.
Strip the ID tags only after the numbers check is complete, never before. A sentence that arrives with no tag is either deleted or sent back to the portfolio manager for a note, and nobody should be tempted to add a tag by hand to make it fit.
The numbers check: one row for every figure
Ask the model for its "Numbers used" list, or extract every figure from the draft yourself, then fill in one row per figure. A person other than the drafter should do this, typing each figure from the draft before looking at the pack, so the check compares what the text says with what the pack says and not with what the checker expects it to say.
| Figure in draft | Tag | Pack value | Result |
|---|---|---|---|
| 1.8% | P-1 | +1.80% | Match |
| 1.3% | P-2 | +1.30% | Match |
| 6.4% | P-3 | +6.40% | Match |
| 5.9% | P-4 | +5.90% | Match |
| 0.24 percentage points | A-1 | +0.42 percentage points | Fail: digits transposed, corrected to 0.42 |
| 0.21 percentage points | A-2 | -0.21 percentage points | Match; the sign is carried by the word "detracted" |
| 3.1% | H-1 | 3.1% | Match |
The spreadsheet does the comparing so nobody is trusting their eyes at 5 pm. Put the typed figure in column B, pull the pack value by ID into column C, and flag anything that differs at the displayed number of decimals:
C2: =VLOOKUP(A2, Pack!A:C, 3, FALSE)
D2: =IF(ROUND(B2,2)=ROUND(C2,2),"Match","CHECK")
The formulas are the easy part. The discipline is in what each row has to confirm, beyond the digits:
- Period and share class. The figure belongs to the month and class the sentence names, not the neighbouring column.
- Basis. Net against net, and gross against gross. A fund's gross return set beside a benchmark with no fees in it flatters the fund.
- Sign and unit. A fall written as a gain is an error a spell-checker will never find, and percent is not percentage points.
- Benchmark name. The index named in the text is the one in the pack row.
- Rounding. Match at the decimals shown, with no re-rounding between pack and text.
If lookups are new to anyone on the team, the prompts for writing spreadsheet formulas with AI show how to have an assistant write and explain formulas like these, and the two formulas above work unchanged in Excel. The same draft-then-check discipline carries over to written proposals, which drafting narrative and checking the numbers in an investment proposal covers.
The approver's checklist and the log
The approver's job is narrower than "review the commentary", and that is what makes it doable in half an hour. Work through the same eight steps on every fund, in this order:
- Open the locked pack, not the draft's own list of numbers, and check at least three figures yourself.
- Confirm the numbers check sheet is complete, every row initialled, with no CHECK left open.
- Confirm the basis and period sit next to the first figure: share class, net of fees, period end.
- Match each reason in the text to a manager note, and strike any sentence that has none.
- Search for forecast and recommendation language: expect, should, likely, attractive, opportunity.
- Confirm the risk statements and the past-performance warning are the approved wording, pasted from the file.
- Compare with last month's published text. If the tone, the structure or a stated view has moved, ask why.
- Sign the log with your name and the version number, and check that the PDF's file name matches the logged version.
The log is one row per approval, written before anything is published. This is an illustrative extract, with business days counted from month-end:
| Day | Fund and version | Pack ID | Drafted by (tool, prompt) | Numbers checked by | Approved by | Changes at approval |
|---|---|---|---|---|---|---|
| BD3 | Income Fund v2 | IF-M10 | Analyst (assistant, prompt 1.2) | Operations lead | Compliance officer | Removed "higher than usual"; added fee basis |
| BD3 | Growth Fund v1 | GF-M10 | Analyst (assistant, prompt 1.2) | Operations lead | Compliance officer | None |
| BD4 | Bond Fund v3 | BF-M10 | Analyst (assistant, prompt 1.2) | Operations lead | Deputy approver | v2 rejected for the previous month's table; v3 approved |
Recording the tool and the prompt version costs nothing and pays off the first time a question arises about how a sentence came to exist. The other rule that matters is freezing: once the approver signs, nobody edits the text. If the designer shortens a sentence to fit the template, that is a new version and a new row. The guidance on marketing content that clears compliance covers the wider review habits that sit around a log like this one.
A month-end timetable with the AI step in it
Firms vary in when the administrator's figures arrive and when a factsheet has to be out, so treat the days below as an order of work, not a deadline.
| When | Who | What happens |
|---|---|---|
| BD1 | Data owner | Receives the month-end figures, reconciles them to the firm's own records and locks the performance table |
| BD2 morning | Portfolio manager | Writes the three to six notes, finishing before midday |
| BD2 afternoon | Drafter | Assembles and names the pack, runs the prompt, reads the unsupported-statements list and edits |
| BD3 morning | Someone other than the drafter | Completes the numbers check sheet |
| BD3 afternoon to BD4 | Approver or deputy | Works through the eight steps and signs the log |
| BD5 | Designer, then approver | Drops text and table into the template; the approver confirms the PDF matches the logged version before publishing |
Six faults to expect in the first quarter, and what catches each
These are the faults most likely to appear in the first few months, with the sign that shows each one.
- Last month's table in this month's pack. Two exports sit in one folder and the wrong one is attached. The draft quotes a year-to-date figure of 5.1%, which was the previous month's number. The sign is a year-to-date figure that has barely moved against the last published factsheet. The catch is a naming rule for the pack (fund, month-end date, version) and the approver's step 7.
- Gross set against net. The pack holds both columns and the model quotes the gross fund return beside a benchmark return that carries no fees. The sign is a gap that looks too good. The catch is basis labels in every pack row and the basis check in the numbers sheet.
- A cause nobody gave. The note says "trimmed software on valuation after results", and the draft adds "as technology shares slid". The sign is a reason in the text with no N tag. The catch is the rule that reasons come only from manager notes, plus the approver striking untagged causes.
- The five-minute approval. The log shows sign-offs minutes after each draft arrives, with no changes, month after month. That may be perfect drafting, or it may be a rubber stamp. The test is a seeded error: once a quarter the data owner plants one wrong figure in a draft. An approver who never finds it is not reading against the pack.
- A word dropped in layout. The designer shortens a sentence to fit the template and "net of fees" disappears. The sign is a PDF whose text differs from the approved text. The catch is the freeze rule and a text comparison of the final PDF against the approved version.
- A sold holding still in the text. The draft was edited from last month's commentary and still names a position the manager exited. The sign is a company name that is missing from the holdings table. The catch is the draft-from-pack rule (never from last month's text) and step 7.
Where a specialist tool fits, and what a business plan covers
Four kinds of tool can sit in this workflow. Most small firms need only the first and the fourth.
| Type | What it does here | Cost shown |
|---|---|---|
| General assistant on a business plan | Drafts commentary from the pack you attach; you build the pack, the check and the log | ChatGPT Business Standard $20 a user a month billed annually ($25 monthly); Claude Team $20 annual ($25 monthly); Microsoft 365 Copilot Business $21 annual ($25.20 monthly) for organisations of up to 300 users. ChatGPT Business and Claude Team need at least two seats |
| Data-to-text commentary generator | Writes narrative from structured performance data; one vendor's page describes a draft that users can tweak, with a "final approval before release" | Not published; free trial or demo requests only |
| Marketing-compliance checker | Compares factsheet content with a golden-source spreadsheet for drifted numbers, wrong or stale periods and missing disclosures; one vendor's guide says its performance-table check looks at presence and period, not every figure | Quote only; the vendor's pricing page lists no price for its compliance product |
| Spreadsheet check you build | The lookup formulas above, with conditional formatting on any CHECK | $0, plus an hour to set up |
Two points about that table. First, the specialist tools answer different questions. A generator writes from data, which suits a firm with dozens of share classes and a clean data feed. A checker compares published wording with a source sheet, and its own guide says the review does not replace human judgement, with compliance keeping sign-off. Neither removes the approver, and the page that promises perfect accuracy still describes a final approval step, which is the step this tutorial builds.
Second, the pack holds unpublished performance data, so use a business plan rather than a free consumer account. ChatGPT Business, Claude Team and Microsoft 365 Copilot don't train on business content by default, but confirm the setting for your own account and tell your approver which tool is in use. For the wider choice of what to pay for and what to skip, the guide for investment management firms compares the options, and AI tools for investment managers: client reports and fact sheets covers the reporting side beyond monthly commentary.
Piloting it on one fund before you switch the rest
Pick one fund with a quiet month and run the old and new processes side by side for two month-ends. The old text is published; the new text is checked and logged but held back. At the end of month two, compare three things: the numeric errors the numbers check found that the old process let through, how many untagged or unsupported sentences the approver struck, and the minutes each role spent.
The minutes show something worth planning for. Take an analyst who needs 150 minutes to write one fund's commentary today, plus a 20-minute informal read by the manager and 20 minutes for compliance. In the new process the drafter spends about 25 minutes assembling the pack, 10 on the prompt and 25 editing, so 60 in all. The numbers check takes 30 minutes and the approver's eight steps another 30. The total falls from 190 minutes to 120.
| Step per fund | Old process | New process |
|---|---|---|
| Drafting | 150 minutes | 60 minutes (pack 25, prompt 10, edit 25) |
| Checking numbers | 20 minutes, an informal read | 30 minutes, every figure |
| Approval | 20 minutes | 30 minutes, read against the pack |
| Total | 190 minutes | 120 minutes |
Across four funds that is 760 minutes against 480, about 4.7 hours saved a month. At $60 an hour of staff time that is roughly $280, against about $50 a month for two seats on a business plan billed monthly at $25 each, so around $230 net. All the figures are invented, and the shape matters more than the totals: drafting time shrinks while checking time grows. The saving is real because the time moves from writing to verifying, which is where a factsheet's risk actually sits.
Set the pass marks before the pilot starts. Reasonable ones are no numeric error reaching approval without having been logged on the check sheet, the approver agreeing with the model's unsupported-statements list on at least most drafts, and the approver catching the seeded error. If any of those fail in month two, extend the pilot instead of rolling out, and change one thing at a time: the prompt, the pack or the checker.
Questions small fund managers ask about AI commentary
Can AI write the performance table as well as the commentary?
Keep the table out of the model's hands. Performance figures should flow from your data feed or administrator file straight into the template, so no number passes through a language model. Let the AI draft sentences about figures that already exist in the locked pack, and run the numbers check on those sentences before approval.
Who approves the commentary in a firm of about ten people?
Name one approver, usually the compliance officer, plus a deputy. The approver must not be the portfolio manager whose fund is described, or the person who drafted the text. If nobody qualifies, pay an outside compliance consultant for the approver seat and record that person's name in the log, not just the job title.
Do we need a specialist tool or will a business chat plan do?
A business chat plan is enough to draft text from a source pack. It will not check your factsheet against golden-source data or hold the log for you, so you build those two steps with a spreadsheet and a shared folder. Specialist checkers and commentary generators exist, and the vendor pages checked for this tutorial publish no prices, so you would be asking for quotes. They are worth pricing once you run many funds or share classes.
How long should the approver log be kept?
Keep it for as long as your record-keeping policy requires for marketing material, and ask your compliance adviser what that period is for your firm. Store it where the published factsheets live, so any PDF a client holds can be matched to a version, a source pack and an approver within a minute.
Further reads
- Best AI Tools for Investment Management: Committee Packs and Minutes — Use the same source-only rule for committee packs and minutes
- AI Software for Wealth Management: A Small Firm's Evaluation Checklist — Questions to put to any vendor before you sign
- AI for Wealth Management Firms: A 90-Day Rollout Plan for Small Firms — Sequence the wider rollout after this first workflow
- Can Financial Advisers Use ChatGPT? What Compliance Allows — What compliance teams usually allow in general assistants
- AI Readiness Checklist for Accountants, Solicitors, Consultants — Check your firm is ready before adding more AI steps
- Claude vs ChatGPT for Financial Advisers: Meeting Prep and Records — Compare two assistants on records and review prep
- AI Tools for Commercial Property Managers: Service Charges, Leases — Three jobs for a commercial property manager: service-charge replies from a building pack, a verified lease-event sheet and owner-report drafts.
- Best AI for Real Estate Asset Management: Reports and Lease Abstracts — Compare ChatGPT, Claude and Copilot for lease abstracts, variance commentary and investor report drafts, with the checks that keep numbers honest.
- AI for Asset Managers: Client Reports, Meeting Notes and Records — What a boutique asset manager can safely hand to AI, what stays human, and the record of AI-assisted work to keep for compliance.
- AI Tools and AI Development: The Complete 2026 Guide — the AI hub, including every tutorial in the AI-for-business series.
Sources: IntelligenceBank guide to AI content risk reviews for fact sheets and its pricing page, Arria article on automated fund fact sheets and investment commentary, and the pricing pages for ChatGPT Business, Claude Team and Microsoft 365 Copilot Business, with Microsoft's Copilot data and privacy page, all read on 4 November 2026.