A personal trainer can write honest monthly progress reports with AI by giving it only a measurement table already filled in and calculated, telling it to use no other numbers, then running a separate check that matches every figure in the draft back to the table. The AI writes the wording; you supply the results.
Models fill gaps to be agreeable. Ask for a "positive monthly summary" and a flat plank time becomes "excellent core stability", a 2.5 kg gain becomes 5 kg, and a result nobody measured turns up as a confident sentence. The fix is structural: remove the gaps, give the model a way to say "not measured", and check the draft against the table as you would check an invoice before it goes out.
The month-end problem and the sheet behind the fix
Take a solo trainer with 14 regular clients who has promised each of them a written summary every month. If a report takes 25 minutes from scratch (use your own figure), that is nearly six hours of admin, usually squeezed into one evening. By the fourth report the wording is copied from the third and the numbers are typed from memory. The fix starts before any AI is involved: one sheet with the same measures for every client, and formulas doing the arithmetic.
Each client gets a block with these columns: Measure, Start, End, Change, Change %, Source. The Source column says whether a figure was tested, taken on the client's own scales or reported by the client. A blank cell means "not measured", and nothing is ever filled in with an estimate. I would keep it to five to eight measures: two or three lifts, one endurance test, one or two optional body measures, attendance and a self-rated score. Here is the illustrative block for one client after a four-week cycle of three sessions a week:
| Measure | Start | End | Change | Change % | Source |
|---|---|---|---|---|---|
| Back squat, 5-rep best (kg) | 50 | 57.5 | +7.5 | +15.0% | Tested |
| Bench press, 5-rep best (kg) | 35 | 37.5 | +2.5 | +7.1% | Tested |
| Plank hold (seconds) | 60 | 60 | 0 | 0.0% | Tested |
| 5-minute row (metres) | 1,180 | 1,225 | +45 | +3.8% | Tested |
| Body weight (kg) | 82.4 | 81.6 | -0.8 | -1.0% | Client's scales, same time of day |
| Waist (cm) | 94.0 | 92.5 | -1.5 | -1.6% | Tape measure, taken by me |
| Resting heart rate (bpm) | not measured | not measured | n/a | n/a | No data |
| Energy, client's own score (1 to 5) | 3 | 4 | +1 | n/a | Self-reported |
Attendance sits outside the table: 10 of 12 booked sessions, with two missed in week 3. A "5-rep best" is simply the heaviest weight lifted for five clean repetitions. The Change columns are formulas, not typing: in the Change cell, something like =IF(OR(B2="",C2=""),"",C2-B2) leaves the cell empty when either reading is missing, so a gap stays visibly a gap. If you want help writing sheet formulas, the tutorial on Google Sheets AI prompts is a good companion.
Four weeks of logging that make the table honest
A report is only as honest as the records behind it, and most of the work happens before month-end. The routine below adds a minute or two after each session.
- Baseline day (first session of the cycle). Test the agreed measures in the same order, after the same warm-up. Write the figures into the Start column the same day, with a note of the conditions: time of day, equipment and who took the measurement.
- Weeks one to three. After each session, log attendance and the top working set for each tracked lift (weight and repetitions). Leave the End column alone. A session that was cut short or swapped gets a one-line note, because "missed" and "shortened" are different things and the report must say which.
- Re-test day (last session of the cycle). Repeat the baseline tests under the same conditions. If something changed, such as a different bar, a client coming off a night shift or a tape measure from another room, write it in the Source column rather than hoping nobody notices.
- Report day. Fill in End, let the formulas run, leave anything missing as "not measured", and only then open an AI chat.
Two rules protect the table. A figure is recorded only on the day it was taken, and never tidied afterwards from memory. And a skipped test stays blank, even when it is tempting to carry last month's number across: a blank is honest, whereas a carried-forward number is an invented result.
What a plain "write the report" prompt does to the numbers
Before the better method, here is the failure it replaces. A lazy prompt (the real first name sits where the placeholder is, which is a second mistake):
Write a positive monthly progress report for my client [first name]. Results
this month: squat 50 to 57.5 kg, bench 35 to 37.5, plank 60 seconds, row 1,180
to 1,225 m, weight 82.4 to 81.6, waist 94 to 92.5. Keep it motivating.
A typical answer (illustrative):
Fantastic month, [first name]! You smashed your targets: your back squat jumped 7.5 kg
(a brilliant 15% increase), your bench press climbed 5 kg and your waist is down
3 cm. Your plank held strong at 60 seconds, showing excellent core stability, and
thanks to your improved sleep your resting heart rate is heading in the right
direction. Keep it up!
Compare it with the table. The bench press gain is doubled (2.5 kg became 5 kg). The waist change is doubled too (1.5 cm became 3 cm). "Excellent core stability" is a conclusion drawn from a result that did not change, and nothing in the table tests stability. "Improved sleep" and the resting heart rate comment have no source at all, and no targets were ever stated for anyone to smash. The paragraph reads smoothly, which is exactly why this fails: nobody questions a sentence that sounds right.
The constrained prompt: table in, rules out
The fix is a prompt that restricts the model to the table and its rules, written once and reused every month. Note the client is "Client A" and the notes contain nothing about health.
You write monthly progress reports for a personal trainer's client.
Use ONLY the table and notes below.
RULES
1. Every number in your report must appear in the table. Copy numbers exactly.
Do not round, add, subtract, convert or estimate.
2. If a measure says "not measured", write "not measured this month" and say
nothing more about it.
3. Describe changes in plain words: up, down, unchanged. No praise words such
as amazing, smashed or crushed.
4. Do not explain WHY a number changed unless the reason is in the trainer's
notes. Never guess.
5. No medical or health claims. Do not mention conditions, injuries, medication,
blood pressure, heart health, sleep, diet or hormones.
6. Rows marked "Self-reported" are the client's own view; say so.
7. Structure: two-sentence summary; what moved; what did not change; what was
not measured; next month, taken only from the notes.
8. Maximum 220 words. Plain English.
TABLE
Measure | Start | End | Change | Change % | Source
Back squat, 5-rep best (kg) | 50 | 57.5 | +7.5 | +15.0% | Tested
Bench press, 5-rep best (kg) | 35 | 37.5 | +2.5 | +7.1% | Tested
Plank hold (seconds) | 60 | 60 | 0 | 0.0% | Tested
5-minute row (metres) | 1,180 | 1,225 | +45 | +3.8% | Tested
Body weight (kg) | 82.4 | 81.6 | -0.8 | -1.0% | Client's scales
Waist (cm) | 94.0 | 92.5 | -1.5 | -1.6% | Tape, taken by trainer
Resting heart rate (bpm) | not measured | not measured | n/a | n/a | No data
Energy, client's own score (1 to 5) | 3 | 4 | +1 | n/a | Self-reported
TRAINER'S NOTES
- 3 sessions a week, strength focus; squat and bench loads raised in 2.5 kg steps.
- 10 of 12 booked sessions attended; two missed in week 3.
- Next month: keep the same lifts, add a 20-minute row test, re-measure waist
and body weight.
Even with those rules, the first output is rarely clean. A realistic one (illustrative):
Summary: This month, Client A's back squat 5-rep best rose from 50 kg to 57.5 kg
and bench press rose from 35 kg to 37.5 kg. Attendance was 10 of 12 booked
sessions (83%).
What moved: back squat +7.5 kg (+15.0%); bench press +2.5 kg (+7.1%); 5-minute
row 1,180 m to 1,225 m (+45 m); body weight 82.4 kg to 81.6 kg (-0.8 kg); waist
94.0 cm to 92.5 cm (-1.5 cm), which suggests fat loss around the middle. Energy,
in Client A's own words, rose from 3 to 4 out of 5.
What did not change: plank hold stayed at 60 seconds.
Not measured this month: resting heart rate.
Next month: keep the same lifts, add a 20-minute row test, and re-measure waist
and body weight.
It is much better, and it still slipped twice. "83%" is not in the table (the model did its own division, against rule 1), and "which suggests fat loss around the middle" is an invented conclusion: a tape measure does not measure fat. There is a third, smaller slip: "own words" for what was a number out of five. Catching all three is the job of the next section.
The no-invented-results check, in three passes
No single check is enough, so stack three. Each one catches something the others miss.
Pass 1: the sheet does the arithmetic
Every figure the report might quote, including changes and percentages, is computed in the sheet before the AI sees anything. If you want a percentage for attendance, add a row for it. This removes the model's reason to calculate, and rule 1 then makes any calculation visible as a violation.
Pass 2: a second chat audits the first
Open a fresh chat, so the checker hasn't seen the instructions that produced the draft, and paste the table, the notes and the draft:
You are an auditor. Do not rewrite the report. Using only the table and notes:
1. List every number in the draft, one per line, with the table cell it matches
or the words NOT IN TABLE.
2. List every sentence that explains why something changed or makes a health
claim, and say whether the notes support it. Write UNSUPPORTED if not.
3. List any praise or judgement words.
4. List anything in the table that the draft left out.
On the draft above, a good audit returns something like this (illustrative):
Numbers: 50 kg, 57.5 kg, 35 kg, 37.5 kg, +7.5 kg, +15.0%, +2.5 kg, +7.1%, 1,180 m,
1,225 m, +45 m, 82.4 kg, 81.6 kg, -0.8 kg, 94.0 cm, 92.5 cm, -1.5 cm, 3, 4, 60
seconds, 10 of 12: all match the table or notes.
83%: NOT IN TABLE (derived from 10 of 12).
Unsupported: "which suggests fat loss around the middle" (no body-fat measure, not
in notes). "in Client A's own words" (table holds a 1 to 5 score, not words).
Praise or judgement words: none.
Left out of the draft: nothing.
Treat the audit as a net, not a verdict. It catches most slips and can miss one, particularly when the same model wrote the draft and runs the audit.
Pass 3: you, with the table beside the draft
This is the check that counts, and it takes about five minutes. Put the table and draft side by side, tick each number against its row, and for anything the audit marked NOT IN TABLE either recompute it by hand (10 of 12 is 83%, which is fine to keep once you have checked it) or delete it. Delete any unsupported sentence outright. Then run a find for the words that signal invented claims: cure, treat, heal, rehab, injury, pain, doctor, blood, hormone, detox, metabolism, toned, transformed. Finally, read the report aloud once, and replace "Client A" with the client's name last of all, so the name never entered an AI chat.
Plant three errors to test the check
Before you trust the audit chat with real reports, run a drill. Take a finished, correct report and plant three mistakes: change one number (a +2.5 kg bench gain becomes +5 kg), add one invented cause ("thanks to your improved sleep"), and add one praise word ("crushed it"). Paste the doctored report into a fresh audit chat. If all three come back flagged, the audit works for that model and prompt today. If one slips through, tighten the audit prompt or lean harder on pass 3, and keep the drill in your calendar: repeat it whenever you change the model, the prompt or the plan you use, because behaviour shifts between versions.
Honest wording for every kind of month
Most invented results start as kind wording, because a trainer wants to say something encouraging about a month that didn't give much to work with. These patterns keep the encouragement and drop the invention.
| What the table shows | Honest wording | Wording to avoid |
|---|---|---|
| A clear gain on a tested lift | "Your back squat 5-rep best went from 50 kg to 57.5 kg, a gain of 7.5 kg." | "You smashed it." "Huge jump." |
| A small tape-measure change | "Waist reading 1.5 cm lower. Tape readings shift with where and how they are taken, so this is a small change to watch." | "Fat loss." "Inches melting off." |
| No change | "Plank hold unchanged at 60 seconds. We haven't trained it directly this month." (Only if your notes say so.) | "Held strong." "Great core stability." |
| A measure went down | "Row distance is 20 m lower than last month. We'll repeat the test next month and look at the pattern." | "Nothing to worry about." "Totally normal." (You can't know.) |
| Nothing recorded | "Resting heart rate wasn't measured this month, so there is nothing to compare." | Any sentence about it at all. |
| Missed sessions | "You attended 10 of 12 booked sessions; two were missed in week 3." | "Dedication paid off." (A reason you can't show.) |
| A reason for a result | Quote your own notes: "I raised the squat load in 2.5 kg steps." | "Thanks to your diet / sleep / mindset." |
| A self-reported score | "You rated your energy 4 out of 5, up from 3. That is your own score." | Presenting it as measured. |
Two more habits are worth building in. Report only the measures the client agreed to track, because some people prefer performance-only reports. And keep health interpretation out entirely: a report can say what was measured, and a client who mentions pain or unusual symptoms should be told to speak to their doctor or physiotherapist in a message you write yourself, never one the AI composes.
A month that went the wrong way
The report that tests your wording is the one for a bad month. Take a second illustrative client, "Client B", who attended 6 of 12 booked sessions (the trainer's notes say "work travel; read as a pause, not a trend"). The table shows the back squat 5-rep best unchanged at 70 kg, the bench press down from 40 kg to 37.5 kg, the 5-minute row down from 1,300 m to 1,280 m, and waist not re-measured. A good constrained draft reads:
This was a lighter month: you attended 6 of 12 booked sessions. Your back squat 5-rep best stayed at 70 kg. Your bench press 5-rep best was 2.5 kg lower (40 kg to 37.5 kg) and your 5-minute row was 20 m shorter (1,300 m to 1,280 m). Waist wasn't re-measured this month. With half the sessions attended, I would read these as a pause rather than a trend. Next month: two sessions a week, same lifts, then re-test.
Look at what it avoids. It doesn't blame the client or reassure them with a cause nobody can show. It states each lower figure plainly, gives the reason from the notes and puts the next step in the trainer's voice. A tempting rewrite, "bench dipped slightly but you're still strong", would be false comfort, and it is exactly the sentence a model produces when asked to stay positive. If the client has been ill or injured, skip the AI and write the report by hand, or better still, call them.
Option two: let the sheet insert the numbers
If you want the lowest possible risk, take the model out of the numbers altogether. Ask the AI once, in a throwaway chat, for a report template with the measure names in it and no results, and let a formula in the sheet produce each sentence. The AI writes the framing; a formula writes every figure.
Suppose each measure sits in a row with Unit in column B, Start in C, End in D and Change in E. In column F, a formula builds the phrase:
=IF(E2="","not measured this month",
IF(E2=0,"unchanged at "&D2&" "&B2,
IF(E2>0,"up from "&C2&" to "&D2&" "&B2,
"down from "&C2&" to "&D2&" "&B2)))
For the squat row this returns "up from 50 to 57.5 kg", for the plank "unchanged at 60 seconds", and for resting heart rate "not measured this month". A second column joins the measure name to the phrase, and the final report is those lines pasted under a short opening and closing you write once. The word "not measured" can't be turned into a result, because a formula has no imagination. Use this route when you have a lot of clients; use the prompt route when you want flowing sentences and are happy to run the audit each month.
Client details that never go into the prompt
Progress data is health-related personal data, so the safest prompt carries as little of it as possible. Use this as a standing rule:
| Keep out of the prompt | Do this instead |
|---|---|
| Name, email, phone number | Use "Client A". Keep the key that links letters to people in your own sheet. |
| Date of birth, address, employer | Leave them out. The report doesn't need them. |
| Injuries, conditions, medication, pregnancy | Leave out. Add a sentence by hand after the draft if one belongs in the report. |
| Progress photos | Never upload them. Share them with the client directly. |
| Free-text answers from check-in forms | Summarise them yourself in non-health terms ("missed sessions: work travel"). |
| Payment details and contracts | Never. They have no place in a report prompt. |
Check which plan you are on before you paste anything. Consumer ChatGPT and Claude plans have a model-training switch in their privacy settings; business plans don't train on your content by default. Neither makes it sensible to paste identifiable health details, so the rule above applies on every plan. Delete the chat once the report is sent. The tutorials on client health data and AI tools and on check-ins without medical advice cover the wider rules, and a progress quote should never become a public testimonial without the client's agreement (see editing testimonials with AI).
A finished report and the month-end routine
Here is the audited version, with the human parts added: the client's name, a measurement caution and a closing line that is entirely yours (illustrative):
Hi [first name], here is your report for the four weeks to [date].
Strength: your back squat 5-rep best went from 50 kg to 57.5 kg (+7.5 kg) and your bench press from 35 kg to 37.5 kg (+2.5 kg). Fitness: your 5-minute row went from 1,180 m to 1,225 m (+45 m).
Measurements: body weight went from 82.4 kg to 81.6 kg and your waist from 94.0 cm to 92.5 cm. Tape readings shift a little with where and how they are taken, so I would treat these as small changes to watch.
Unchanged: your plank hold is still 60 seconds. Not measured: resting heart rate, so there is nothing to compare this month.
You rated your energy 4 out of 5, up from 3. That is your own score. You attended 10 of 12 booked sessions, with two missed in week 3.
Next month we keep the same lifts, add a 20-minute row test and re-measure waist and body weight. [your name]
The month-end routine, per client, in this order: run the prompt (2 minutes), run the audit in a fresh chat (3 minutes), tick through the table and draft (5 minutes), add your own note and swap in the name (3 minutes). That is 13 minutes against the 25-minute hand-written estimate, so 14 clients take a little over three hours instead of nearly six. Those are planning figures, not measurements: time yourself for one month and adjust.
Some reports should still be written by hand: the first baseline report, any client who has been ill or injured, and any month where the numbers went the wrong way for someone sensitive to it. For the mid-month side, session recaps and renewal texts reuse the same table, so the sheet pays for itself twice.
Questions trainers ask about AI-written reports
Should every report include body weight?
Only if the client asked to track it. Some clients find weight figures unhelpful or distressing, and a performance-only report (lifts, endurance tests, attendance) is a perfectly good report. Agree the measures at the start, write them down, and leave out anything the client hasn't chosen, even if you recorded it.
What if a client disputes a number in the report?
Go back to the sheet, not the report. Check the date the figure was recorded, its source and the conditions. If you made a mistake, correct the sheet first, then re-issue the report with a dated note saying what changed. If the number is right, show the entry. Never edit a figure in the report alone; the sheet must always agree with what you sent.
Do I need to tell clients that AI helps write the report?
Being open is the safer habit. A single line in your terms or on the report, such as 'drafted with AI from my measurements and checked by me', sets expectations. Rules about how client data may be processed vary, so ask a data-protection adviser what your privacy notice should say.
What if a client's numbers disagree with how they feel?
Report both and label each. The table shows what was measured; the client's own score shows what they feel. Don't resolve the gap by choosing a story. Say that the two differ, note what you will measure next month, and let the client tell you more in the follow-up conversation.
Further reads
- Personal Trainer Intake Forms: Build One With AI, Protect Health Data — Decide which health details you collect before they reach any report.
- How Personal Trainers Can Use ChatGPT Safely for Client Programmes — The same safety thinking applied to writing client programmes.
- Can AI Write Swim Lesson Progress Reports? A Level-by-Level Template — A level-by-level progress report template in a different sport.
- How Tutoring Centres Use AI to Write Parent Progress Reports — How another service writes monthly reports without padding them.
- AI Nutrition Advice at a Gym: What Is Safe to Offer Members? — Where advice on food crosses a line a trainer shouldn't.
- How Much Should a Personal Trainer Charge? Model Session Packs With AI — Price session packs once your reports show clients what they get.
- Is Vagaro Enough for a Personal Trainer? Packs, Bookings and Vera — What Vagaro's $30 plan gives a solo trainer who sells session packs, what Vera does, and the gaps that matter before you commit.
- AI Agent for Personal Trainers: Check-Ins and Where It Must Stop — How a personal trainer can run AI check-ins between sessions: cadence, replies that escalate, the hard stops and the weekly review.
- BJJ Gym Marketing: Trial-Class Follow-Ups and Belt Posts With AI — Follow-up texts after a trial student's first roll and belt-promotion posts, drafted with AI, approved by a coach, with consent recorded and no injury claims.
- ChatGPT Fitness Coach Prompt: Client Programme Template for Trainers — A copy-and-paste prompt that drafts a four-week client programme, stops on red flags and leaves the final call to you.
- AI Tools and AI Development: The Complete 2026 Guide — the AI hub, including every tutorial in the AI-for-business series.
Sources: spreadsheet formula syntax from Google Sheets and Excel help pages; consumer and business AI privacy settings as described by the vendors' own help pages. All client figures and report wording are illustrations.