AI Tools for Asset Management: Factsheet Commentary With Sign-Off

Coding Liquids tutorial cover featuring Sagnik Bhattacharya for AI Tools for Asset Management: Factsheet Commentary With Sign-Off.
Coding Liquids tutorial cover featuring Sagnik Bhattacharya for AI Tools for Asset Management: Factsheet Commentary With Sign-Off.

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.

Follow me on Instagram@sagnikteaches

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.

Connect on LinkedInSagnik Bhattacharya
RoleDoesMust not
Drafter (an analyst or operations person)Assembles the pack, runs the prompt, edits the draftApprove their own draft
Data owner (operations lead, or your contact at the fund administrator)Supplies and locks the performance, attribution and holdings numbersWrite or edit commentary
Portfolio managerWrites short notes on what changed and why, in their own wordsApprove commentary on their own fund
Approver (a named role, usually the compliance officer) and a named deputyReads the draft against the pack, checks required wording, signs the logChange 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.

Subscribe on YouTube@sagnikteaches

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:

IDItemValue
P-1Fund return for the month, class A, net of fees+1.80%
P-2Benchmark return for the month+1.30%
P-3Fund return year to date, class A, net of fees+6.40%
P-4Benchmark return year to date+5.90%
A-1Largest contributor (Holding A)+0.42 percentage points
A-2Largest detractor (Holding B)-0.21 percentage points
H-1Cash weight at month-end3.1%
N-1Manager noteAdded to utilities after the sector sold off; trimmed software on valuation after results.
N-2Manager noteCash 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 thumbnail

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 now

The 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 draftTagPack valueResult
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 pointsA-1+0.42 percentage pointsFail: digits transposed, corrected to 0.42
0.21 percentage pointsA-2-0.21 percentage pointsMatch; the sign is carried by the word "detracted"
3.1%H-13.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:

  1. Open the locked pack, not the draft's own list of numbers, and check at least three figures yourself.
  2. Confirm the numbers check sheet is complete, every row initialled, with no CHECK left open.
  3. Confirm the basis and period sit next to the first figure: share class, net of fees, period end.
  4. Match each reason in the text to a manager note, and strike any sentence that has none.
  5. Search for forecast and recommendation language: expect, should, likely, attractive, opportunity.
  6. Confirm the risk statements and the past-performance warning are the approved wording, pasted from the file.
  7. Compare with last month's published text. If the tone, the structure or a stated view has moved, ask why.
  8. 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:

DayFund and versionPack IDDrafted by (tool, prompt)Numbers checked byApproved byChanges at approval
BD3Income Fund v2IF-M10Analyst (assistant, prompt 1.2)Operations leadCompliance officerRemoved "higher than usual"; added fee basis
BD3Growth Fund v1GF-M10Analyst (assistant, prompt 1.2)Operations leadCompliance officerNone
BD4Bond Fund v3BF-M10Analyst (assistant, prompt 1.2)Operations leadDeputy approverv2 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.

WhenWhoWhat happens
BD1Data ownerReceives the month-end figures, reconciles them to the firm's own records and locks the performance table
BD2 morningPortfolio managerWrites the three to six notes, finishing before midday
BD2 afternoonDrafterAssembles and names the pack, runs the prompt, reads the unsupported-statements list and edits
BD3 morningSomeone other than the drafterCompletes the numbers check sheet
BD3 afternoon to BD4Approver or deputyWorks through the eight steps and signs the log
BD5Designer, then approverDrops 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.

TypeWhat it does hereCost shown
General assistant on a business planDrafts commentary from the pack you attach; you build the pack, the check and the logChatGPT 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 generatorWrites 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 checkerCompares 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 figureQuote only; the vendor's pricing page lists no price for its compliance product
Spreadsheet check you buildThe 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 fundOld processNew process
Drafting150 minutes60 minutes (pack 25, prompt 10, edit 25)
Checking numbers20 minutes, an informal read30 minutes, every figure
Approval20 minutes30 minutes, read against the pack
Total190 minutes120 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

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.

Want factsheet commentary that clears compliance faster?

On a 1:1 call we'll map your month-end steps, decide what the AI may draft and what stays human, and set up the source pack, numbers check and approver log for one fund first.

Book a 1:1 call with me