Free tutorial · Reports

Create a weekly update from a spreadsheet with AI, and check the numbers

Let the spreadsheet do the sums and the AI write the words. You'll clean a week of data, build a small summary table, have an AI tool turn it into a short update, then check every figure before it goes to anyone.

What you'll have at the end

Time
About 45 minutes with our sample data.
You need
A computer with a web browser.
Spreadsheet
Google Sheets (free with a Google account), Excel or LibreOffice Calc. The formulas work in all three.
AI tool
Any AI chat tool. You paste in a small table, so the free versions are enough and you don't need to upload a file.
Cost
€0.
Skill level
You can copy and paste formulas. We give you every one.

Weekly Report Test Pack. Eight weeks of made-up data with three problems planted on purpose, the finished workbook to compare against, the known correct answers, the prompt and a checklist. No signup.

Download the pack (.zip, 18 KB)

Just the data: harbour-weekly-data-raw.csv · The finished workbook: weekly-report-workbook-finished.xlsx

Why the AI doesn't do the maths here. AI tools can analyse a spreadsheet you upload, and sometimes that's handy. But for a figure that goes in front of your business partner or bank, you want sums you can see and re-check. So the spreadsheet calculates, and the AI only writes, from numbers you've already checked. It also means you never upload your whole customer list to an AI tool.

Part 1: Clean the data

Step 1. Import the data

In a new Google Sheet, choose File → Import → Upload and pick harbour-weekly-data-raw.csv. Choose "Replace current sheet". First set File → Settings → Locale to Ireland so the day/month dates read correctly. Rename the tab Data.

Each row is one enquiry: Date, Enquiry ID, Source, Service, Status (Won, Lost, Quoted or Open), Quote value, Won value, Response hours (how long until the first reply) and Owner. Harbour Home Services Ltd is made up, and so is every row.

Step 2. Decide your measures before you look

Pick the handful of numbers you'd actually act on, and write down exactly what each one means. Ours:

Deciding this first stops you, or the AI, from hunting for whichever number looks best.

Step 3. Find and fix the three problems

Real exports are messy, so our sample is too. Three problems are hidden in the week starting 21 September:

You should now have 146 data rows (147 rows under the header before you deleted the duplicate).

What happens if you skip this. We ran the summary on the uncleaned data to see. Won value for the week came out as €2,190. The real figure is €10,990. One text value was silently left out, and the duplicate was counted twice. Nothing on screen warned us. An AI-written update would have reported the wrong figure in perfectly confident English.

Part 2: Build the summary table

Step 4. Add a "Week starting" column

In the Data tab, type Week starting in J1, then in J2 paste:

=A2-WEEKDAY(A2,2)+1

Copy it down to the last row and format column J as a date. Every row now shows the Monday of its week, which makes weekly sums simple.

Step 5. Set up the Summary tab

Add a new tab called Summary. Type This week starts in A4 and the date 21/09/2026 in B4. In A5 type Last week starts and in B5 put =B4-7. Next week, you only change B4.

Step 6. Paste the formulas

In row 7 type the headings Measure, This week, Last week and Change. Put the measure names in column A from row 8, and these formulas in column B ("This week"). For column C ("Last week"), use the same formulas with $B$5 instead of $B$4. Column D is =B8-C8 and so on.

MeasureFormula for "This week" (column B)
Enquiries=COUNTIFS(Data!J:J,$B$4)
Won=COUNTIFS(Data!J:J,$B$4,Data!E:E,"Won")
Won value (€)=SUMIFS(Data!G:G,Data!J:J,$B$4)
Quoted value, all enquiries (€)=SUMIFS(Data!F:F,Data!J:J,$B$4)
Average first response (hours)=ROUND(AVERAGEIFS(Data!H:H,Data!J:J,$B$4),1)
Rows with no status=COUNTIFS(Data!J:J,$B$4,Data!E:E,"")
Enquiries from Facebook=COUNTIFS(Data!J:J,$B$4,Data!C:C,"Facebook")

Add one "Enquiries from…" row for each source: Website form, Phone, Referral, Google Business Profile and Facebook. "Rows with no status" is a built-in alarm: it should always be 0.

Step 7. Check two figures by hand

Never trust a formula you haven't checked once. In the Data tab, turn on a filter (Data → Create a filter) and filter column J to 21/09/2026 and column E to Won. Count the rows: there should be 10. Select the Won value cells for those rows; the sum at the bottom-right of the screen should say 10,990.

Your summary should now match ours:

MeasureWeek of 21 SepWeek of 14 SepChange
Enquiries2621+5
Won106+4
Won value (€)10,990910+10,080
Quoted value, all enquiries (€)41,5703,390+38,180
Average first response (hours)20.018.1+1.9
Rows with no status000
Enquiries from Website form610−4
Enquiries from Phone67−1
Enquiries from Referral31+2
Enquiries from Google Business Profile53+2
Enquiries from Facebook60+6

If yours differs, compare with weekly-report-workbook-finished.xlsx in the pack. The usual cause is one of the three problems in step 3 still being there.

Part 3: Let the AI write the update

Step 8. Copy the table into the prompt

Select the Summary table (headings and numbers, A7 to D18), copy it, and paste it into a new AI chat with this prompt (also in the pack as report-prompt.txt):

Below is a table of this week's and last week's figures for a small business. Write a short weekly update for the owner, under 200 words.

Rules:
1. Use only the numbers in the table. Don't work out anything new except percentage changes, and show the sum for each one (for example: 5 ÷ 21 = 23.8%).
2. Use three headings:
   What changed: facts from the table only.
   Possible reasons: clearly labelled as guesses to check, never written as facts.
   Questions to check before acting.
3. Don't recommend spending money, hiring or changing prices.
4. If a number looks odd (a very big jump, or something that should be zero), say so under Questions.
5. End with a line headed NUMBERS USED that lists every number in your update.

TABLE (copied from the spreadsheet):
<<<
[paste the Summary table here]
>>>

Step 9. Read the draft like an auditor

Here's the draft from our test run with the cleaned table:

What changed
- Enquiries rose from 21 to 26 (+5; 5 ÷ 21 = 23.8%).
- Jobs won rose from 6 to 10.
- Won value rose from €910 to €10,990.
- Quoted value across all enquiries rose from €3,390 to €41,570.
- Average first response slowed from 18.1 to 20.0 hours.
- Facebook brought 6 enquiries, up from 0. Website form enquiries fell from 10 to 6.

Possible reasons (guesses to check)
- The jump in won and quoted value may come from a few large jobs, such as bathroom refits, rather than more small ones.
- The Facebook enquiries may be linked to a post or ad last week.

Questions to check before acting
- Which jobs make up the €10,990 won? Is one job most of it?
- Did anything run on Facebook last week?
- Is the slower response time linked to the higher number of enquiries?

NUMBERS USED: 21, 26, 5, 23.8%, 6, 10, €910, €10,990, €3,390, €41,570, 18.1, 20.0, 0, 6, 10, 6

Now check it:

Step 10. Send it, with the period and date

Edit the draft, add a first line like "Week of 21 to 27 September 2026, prepared 29 September", and send or file it. Next week: paste in the new export, fix any problems, change B4, check two figures, and run the prompt again.

When it goes wrong

What you seeLikely causeFix
Won value looks far too lowMoney stored as text (often with a € sign or comma)Retype it as a plain number, or use Format → Number → Currency on a cleaned column.
Counts are one or two too highThe same row exported twiceSort by ID and delete duplicates.
A whole week is zeroDates are text, or B4 isn't a MondayCheck the locale is Ireland, and that B4 is a Monday.
Dates are wrong after importUS date formatSet the locale to Ireland before importing, then import again.
The AI's percentage is wrongIt divided by the wrong weekThe prompt asks it to show the sum. Check it, and correct it by hand.
The AI gives a reason as a factIt filled a gapMove it under Possible reasons as a question, or delete it.
The AI recommends spending moneyIt ignored rule 3Delete that line. Decisions are yours.

Where this stops, and what comes next

This works well for a weekly export of up to a few thousand rows. If the export itself is the painful part (several systems, copying by hand, or numbers that never quite agree), connecting the sources so the summary fills itself is a bigger job.

How we tested this. On 2 October 2026 we calculated every figure on this page twice: with the formulas in the finished workbook (recalculated in LibreOffice Calc 24.2) and separately in Python. Both agree, for both the cleaned and the uncleaned data. The AI draft in step 9 is from our test run with Claude (Anthropic) the same day; other tools will word things differently. Google Sheets menu names were checked against Google's help pages on 2 October 2026. Spotted a problem? Email hello@theacademy.ie.