Gutter Cleaning Flyers: Three Leaflet Versions Written and Tested With AI

Coding Liquids tutorial cover featuring Sagnik Bhattacharya for Gutter Cleaning Flyers: Three Leaflet Versions Written and Tested With AI.
Coding Liquids tutorial cover featuring Sagnik Bhattacharya for Gutter Cleaning Flyers: Three Leaflet Versions Written and Tested With AI.

Give an AI assistant your real prices and one real job, ask for three gutter cleaning flyer versions that each lead with a different reason to call, then deliver each version to matched streets with its own tracking code. After two weeks, count calls and bookings per version, not compliments, and repeat with the streets swapped.

Leaflet tests often go wrong before anyone reads the copy. One street has mature trees and blocked gutters every autumn, another has none, and that street effect swamps any headline effect. So the plan below spends as much effort on matching streets, logging every drop and tracing replies as it does on writing. The layout is the cheap part: keep it identical across versions so only the words change.

Follow me on Instagram@sagnikteaches

One lever per version, everything else identical

A leaflet has five things you could vary: headline, offer, proof, price and layout. Change all five between versions and even a great result teaches you nothing. Pick one lever, the reason to call, and write three versions of it. Everything below the top third of the sheet (price box, phone number, logo, photo) stays exactly the same on all three.

Connect on LinkedInSagnik Bhattacharya
VersionLeads withHeadline (illustrative)Offer lineHow it could lose
APriceGutters cleared and flushed, fixed priceFixed price by house size, shown in the boxLooks like every other cheap flyer
BThe cost of waitingDon't wait for the first big rainFree downpipe flush if you book by a set dateReads as a scare tactic if overdone
CProofSee your clean gutters before you payBefore-and-after photos sent the same dayFalls flat without one genuine photo pair

These are starting points, not predictions. The test exists because nobody, the AI included, knows which of the three your streets will respond to.

Subscribe on YouTube@sagnikteaches

The brief that stops the AI inventing claims

Left alone, an AI fills gaps with plausible claims: "trusted by hundreds of homeowners", "fully insured", "over 15 years' experience". None of that is true of your business unless you say so, and an invented claim on a leaflet is your problem, not the tool's. The fix is a brief that supplies every fact, forbids additions and makes the assistant audit itself. I would save it in a ChatGPT or Claude Project so each new round starts from the same fact list.

You are writing leaflet copy for a gutter cleaning business. Use the spelling and date style my customers use.

FACTS (use only these; do not add any others):
- Business: [business name], owner [first name], two people and one van
- Service: gutters cleared by ground-level pole system or ladder, downpipes flushed, photos of every job
- Prices: 2-bed house $[x], 3-bed $[x], 4-bed $[x], bungalow $[x]; fixed price
- Guarantee: [exactly what you promise, or "none"]
- Insured: [yes or no, and the wording if yes]
- Booking: [phone], [text number], [web address]
- Usual wait for a slot: [x] days
- Real job to use as proof: [two sentences about one real job and its before-and-after photos]

TASK: Write three versions of the front of an A5 leaflet.
Version A leads with price. Version B leads with the cost of waiting. Version C leads with proof (photos).
For each: a headline (max 8 words), one sub-line (max 15 words), three bullets (max 8 words each),
one offer line, and one call to action that includes the code word LEAF-A, LEAF-B or LEAF-C.

RULES: No reviews, awards, years in business, "trusted by" or customer numbers unless listed above.
No "limited time" unless I give an end date. No figures for damage costs. Under 80 words per version.
After the three versions, list every claim you made and mark it SUPPLIED or ADDED.

Fill the square brackets honestly. If you have no guarantee, write "none" and the AI will leave one out. The last line matters most: the SUPPLIED or ADDED list turns proofreading into a ten-minute check instead of a hunt.

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

What the AI returned and the three edits it needed

A sample Version B follows, as it came back, with its claims audit underneath.

Headline: Don't wait for the first big rain
Sub-line: Blocked gutters overflow onto walls and window frames.
Bullets: Gutters and downpipes cleared and flushed. Fixed price by house size. Photos of every job.
Offer: Book before leaf fall and the downpipe flush is free.
Call to action: Ring or text and say LEAF-B.
Claims audit: "Fixed price by house size" SUPPLIED. "Photos of every job" SUPPLIED. "Free downpipe flush" ADDED, not in your facts. "Overflow onto walls and window frames" ADDED, general statement.

It needed three edits. The free downpipe flush is a good idea the owner had not yet decided on, so either approve it and add it to the fact list or delete it; in this illustration it was approved. "Before leaf fall" is not a date, so it became "by 20 October". And an earlier draft of the sub-line said blocked gutters "cost homeowners thousands in repairs". The audit marked that ADDED, so it went: nobody can back a figure like that on a leaflet, and the first time a customer asks where it came from, the leaflet becomes an embarrassment.

Ask the AI for a second pass as a sceptical homeowner reading the leaflet on the doormat: "What would make you bin this, and what would make you keep it?" It is good at spotting vague wording. It is not good at predicting what your streets will do, which is why the rest of this tutorial exists.

Cutting each version down to one side of paper

The first drafts often come back far longer than a leaflet can hold. A leaflet is judged in a few seconds on a doormat, so aim for 60 to 80. Here is a before and after on Version C, trimmed by hand.

Before: We are a friendly, family-run gutter cleaning service and we understand how worrying it can be to have blocked gutters at this time of year. That is why every single job we do is fully photographed so that you can see the difference we have made, and we send you the pictures on the same day so you never have to wonder whether the work was done properly. Call us today to arrange a time that suits you.
After: See your clean gutters before you pay. We photograph every job and send the pictures the same day. Gutters and downpipes cleared and flushed. Fixed price by house size. Ring or text [phone] and say LEAF-C.

Two checks before printing. First, hold the proof at arm's length by your own front door: can you read the headline and the phone number in three seconds? Second, say the code word aloud. LEAF-C survives a phone call; GUT-AUT-2026-C does not, and people who cannot remember a code simply will not mention it.

Tracking: four ways to know which leaflet rang the phone

No single method catches everyone, so use more than one and compare.

MethodHow it worksCatchesMisses
Address matchYou know which street got which version. Match the caller's address to the drop log.Nearly every booking, because you take the address anywayCallers who were handed a leaflet by a neighbour or who live off your drop list
Code word"Say LEAF-B" on the leaflet; record it on the bookingPeople who read and remember itAnyone who just rings without mentioning it
QR code to a unique linkEach version points to the same page with different campaign tagsPeople who scan, if your page records visitsAnyone who rings, and everyone if the page is not set up to count
Separate phone number per versionThree numbers forwarding to your phoneEvery call, cleanlyTexts and web forms, and it costs a monthly fee per number; check your provider's price

My order of preference is address match first, code word second, QR third. Take the QR link: Google's analytics help describes the campaign tags utm_source, utm_medium and utm_campaign, says parameter values are case sensitive and recommends a strict lowercase naming convention. So version B's link could end ?utm_source=leaflet&utm_medium=print&utm_campaign=autumn-clean&utm_content=b, and you would write the version letters in lowercase every time, because "B" and "b" count as different values.

Here is address matching in action. A caller says she "got a leaflet" and gives 14 Elm Road. You look up Elm Road in the drop log, see it was Street 3, and see Street 3 received Version B. Nobody had to remember a code. If you take only one habit from this section, make it asking for the address before anything else, and typing it into the enquiry log the same day.

Splitting 900 doors across six streets fairly

Take an illustrative two-person firm that can afford 900 leaflets. Instead of giving one version to each third of the map, it picks six streets of 150 doors and pairs them by type, so that the kind of house cannot favour one version.

StreetDoorsHouse typeVersionCodeDelivered
Street 1150Older two-storey, mature treesALEAF-A141
Street 2150Older two-storey, mature treesBLEAF-B138
Street 3150Newer houses, small treesBLEAF-B138
Street 4150Newer houses, small treesCLEAF-C144
Street 5150Bungalows beside a parkCLEAF-C140
Street 6150Bungalows beside a parkALEAF-A138

Look at the pattern. Each house type appears under two different versions, and each version runs on two different house types, so a tree-heavy street boosts two versions rather than one. The "Delivered" column is lower than 150 because some doors had no-circulars signs, a locked gate or a dog; those skips go in the log, not in the denominator.

Deliver all six streets on the same day, by the same person, with each street's leaflets in a separate bag labelled with the street and version. Write one line per street in the drop log: street, doors, delivered, skipped and why, date, version, weather. Photograph the sheet once the last street is done.

The quick sum for this plan: 900 leaflets at an assumed 11 cents each is $99, and six hours of delivery at an assumed $25 an hour is $150, so $249 in all. With 839 delivered, that is about 30 cents per leaflet that reached a door. Your print price and hourly rate will differ, so put your own in the sheet before you start.

Logging every enquiry so the counts hold up

The test is only as good as the enquiry log, so give each contact a row the day it arrives. Below is a made-up slice of one, with the version worked out from the address rather than from what the caller remembered.

DayHowAddress givenCode saidVersion by addressOutcome
2Call14 Elm Road (Street 3)LEAF-BBBooked, $150
3Text31 Beech Close (Street 6)noneAQuote sent, no reply
3Web form8 Hill View (Street 1)LEAF-AABooked, $120
5Text5 Orchard Way (Street 4)LEAF-ACBooked, $155
6Call19 Mill Lane (not on drop list)nonenoneBooked, $190

Two rows deserve a second look. On day 5 the caller said LEAF-A but lives on Street 4, which received Version C, so a leaflet travelled, perhaps from a relative on Street 1. I would record that contact under C, because C is what was delivered to that door, and add a note. The day 6 caller lives off the drop list, so the contact is logged but belongs to no version.

If enquiries arrive as messy texts and voicemails, an AI can turn them into rows. Paste the street-to-version table above the messages so it can fill the last column.

Turn each message below into one row with these columns: date received, channel, first name,
address as given, code word mentioned (or none), job type, and anything I should check.
Add a final column, version by address, using the street table above. Do not guess missing
values; write "not given".

[street table]
[messages]

Feed it a message such as "Hello, got your leaflet through the door. Could someone clear the gutters at 5 Orchard Way, front and back? It said to mention LEAF-A. Thanks, [first name]" and a good illustrative row reads: day 5, text, address 5 Orchard Way, code LEAF-A, gutter clear front and back, check: code A but street is Version C. The usual failure is a near-match: if your list holds both Orchard Way and Orchard Road, the assistant may file the call under the wrong street, so check the version column by eye before the numbers go into the results table.

Run the whole test to a calendar, so nothing gets changed halfway:

  1. Day 0. Print one proof of each version, scan the QR code with two phones and read each code word aloud.
  2. Day 1. Deliver all six streets, then photograph the drop log.
  3. Days 2 to 14. Log every enquiry the day it arrives, whatever its source.
  4. Day 7. Check the log is complete, and change nothing about the leaflets.
  5. Day 14. Count, build the results table, and note any contact that belongs to no version.
  6. Day 15. Decide only what the rule of thumb below allows, then plan round two.

Reading the numbers after two weeks

Count four things per version: leaflets delivered, contacts (calls, texts and web forms combined), paid bookings and the revenue from those bookings. Log the date of each contact too. If replies are still arriving on day 14, give it another week before you judge.

VersionDeliveredContactsBookingsRevenueContacts per 100 doorsBookings per 100 doors
A (price)27974$6202.51.4
B (cost of waiting)276116$9304.02.2
C (proof)28485$7652.81.8
Total8392615$2,3153.11.8

These figures are made up, so do not compare your results with them. On this illustrative sheet, the $249 spend produced 15 bookings, about $16.60 of leaflet cost per booking, before fuel, labour and materials for the jobs themselves. Version B leads, but by four contacts over A and three over C, and by one or two bookings over the others. That is a hint, not a result. A single keen street could produce that gap.

My rule of thumb, which is a judgement call and not a statistical test: name a winner only when the same version leads on contacts and bookings in two rounds with the streets swapped, or when it brings at least double the contacts of the runner-up. Neither is true yet.

The sums belong in a spreadsheet, because chat assistants slip on arithmetic; why AI is bad at maths and what to check explains the failure and the habit that catches it. Once the table is right, let the AI read it for you, but tell it not to recalculate.

Below is the results table from my leaflet test: three versions, six streets, 14 days.
I have already done the sums. Do not recalculate. Tell me:
1. What this table can and cannot show with these numbers.
2. The single change I should test in round two.
3. Any figure that looks inconsistent (for example bookings higher than contacts).
Keep it under 150 words and say plainly when the data is too thin to decide.

[paste table]

A good illustrative reply says that Version B has the most contacts and bookings, that each version ran on only two streets, and that round two should swap streets before anyone changes the copy. Leave out the "too thin to decide" line and a typical reply announces that B "outperformed A by 57 percent". The arithmetic is right (11 against 7), but the claim is not: a four-contact gap on fewer than 300 doors per version proves little. The extra instruction is the fix.

Round two: swap the streets, then test the offer

Take Version B and its closest rival, C, and swap the streets they ran on. If B still leads on streets that previously carried C, the headline is probably doing the work. If the lead flips, the streets were. Only then change a second lever.

A realistic mistake shows why labelling matters. In one imagined round the bags were not labelled, and the delivery person worked down Street 2 with a mixed handful. The enquiry log later showed callers from Street 2 quoting both LEAF-B and LEAF-C. The street result was unusable, and the fix was a bag per street with the street name and version written on it.

Once the headline is settled, here are four further levers, each worth its own two-week round:

  • Offer. A free downpipe flush against a small discount, same headline.
  • Timing. The same leaflet a fortnight before leaf fall against a fortnight after. This one needs two seasons to read fairly.
  • Personal touch. A short handwritten-style note signed by the person who will turn up, against the standard leaflet.
  • Neighbour trigger. "We are cleaning at number 14 on Tuesday" on a card pushed through nearby doors. The neighbour offers for pressure washing use the same idea and are easy to adapt.

Keep a one-page record of every round: the versions, streets, dates, delivered counts and results. After three rounds you will own something no agency template sells: evidence of what your own streets respond to. The same log feeds the eight spring and autumn campaigns that follow, and a leaflet that wins can be reused on the window cleaners' round, as in getting window cleaning customers with leaflets.

What a leaflet can promise, and where to leave it out

Say "insured" only if you hold the policy and can show the certificate. Use only before-and-after photos from your own jobs. Print "guaranteed" only if the guarantee is written down and you will honour it. Keep "same-day" and "free" for offers you will actually fulfil, and make the leaflet's prices match your price list to the last dollar.

Leave leaflets out of letterboxes with no-circulars or no-junk-mail signs, and check the rules on leafleting where you work, because some residential blocks and communal entrances restrict it. Where post goes into a kerbside or wall-mounted mailbox rather than a door slot, the mailbox itself may be off limits to anything without postage, so a door hanger is the safer format there. Skipped doors cost you nothing in the test as long as they are logged.

For layout, any design tool will do, and designing flyers and printed marketing with AI covers that side. If you keep results and drop logs in a sheet, Google Sheets AI prompts has ready-made ways to summarise them.

Questions before you print 900 leaflets

How many leaflets do I need per version?

There is no magic number. Around 250 to 300 delivered doors per version can show a very large gap, such as one version bringing double the contacts, but it cannot reliably show a small one. If the budget only stretches to 600 leaflets, run two versions at 300 each rather than three at 200.

Should the leaflet show a price?

In the plan above every version carries the same price box, so only the headline and offer differ. Whether to print prices at all is a separate test for a later round: run your best version once with the price box and once with a 'from' price or a promise to quote on the doorstep, on swapped streets.

Do QR codes work, or do people just ring?

Many people ring or text, which is why the plan counts address matches and code words first. Treat the QR code as a bonus count. Scan every printed proof with two different phones before the print run, because a code that fails is invisible: you only see the calls you did get.

Can AI tell me which version will win before I print?

No. It can point out vague wording, missing facts and claims you cannot back, which is worth doing. It cannot know how your streets respond, and it tends to sound confident about winners it has no evidence for. The street test is what produces evidence.

Further reads

Sources: Google Analytics Help (collecting campaign data with custom URLs: utm parameters and naming rules). Leaflet figures, prices and results in the examples are illustrative.

Want your leaflet tests set up properly?

On a 1:1 call we can look at how enquiries reach you now, decide what is worth tracking, and set up a routine where AI drafts and scores your marketing and you stay in charge of the decisions.

Book a 1:1 call with me