Caravan Park Marketing With AI: Fill Shoulder-Season Pitches

Coding Liquids tutorial cover featuring Sagnik Bhattacharya for Caravan Park Marketing With AI: Fill Shoulder-Season Pitches.
Coding Liquids tutorial cover featuring Sagnik Bhattacharya for Caravan Park Marketing With AI: Fill Shoulder-Season Pitches.

Find the weeks and pitch types that sit empty in your own booking history, match each gap to a guest segment who can travel then, and write one offer per segment with a margin check. AI can segment past guests, draft the emails and posts and lay out the calendar; you supply the facts and approve every offer.

Agency pages on this subject tend to list the same advice: discount midweek, post on social media, send an email. The harder part is choosing which pitches to fill, for whom and at what discount, without teaching peak-season guests to wait for a deal. The park below is invented for illustration: 40 touring pitches with electric hook-up and hardstanding, plus owners of static caravans on annual agreements. Replace each figure with your own.

Follow me on Instagram@sagnikteaches

Find the empty pitches in your own booking history

Start with an export from your booking system: one row per stay with arrival date, nights, pitch type, party size, whether a dog travelled, booking source and how far ahead the guest booked. Remove names and contact details before the data goes anywhere near a chatbot. Define the shoulder season as the weeks before and after your peak, when weather and facilities still work but demand drops. Here that is ten weeks: five before peak and five after.

Connect on LinkedInSagnik Bhattacharya

Count pitch-nights, not bookings. With 40 pitches, a week has 280 pitch-nights, split into 80 for Friday and Saturday and 200 for Sunday to Thursday. Across ten weeks that is 800 weekend nights and 2,000 midweek nights. Last year the park sold 62% of the weekend nights (496) and 28% of the midweek nights (560), or 1,056 of 2,800 in all, which is 37.7%. At an average of $34 a night, shoulder revenue was $35,904. The gap is not general. It sits in 1,440 unsold midweek nights, and that is where the offers should aim.

Subscribe on YouTube@sagnikteaches

Ask a chatbot to find the pattern in a weekly summary rather than in raw rows: "Here are nights sold by week, weekday group and pitch type for the last two seasons. Which combination of weeks and pitch types has the lowest occupancy, and how far ahead are the bookings that do arrive made?" The answer usually names two or three specific gaps, such as hook-up pitches on Sunday to Thursday in the last three weeks of the season, and shows that midweek bookings arrive late. That second fact decides your timing: if they book within a fortnight, a campaign eight weeks out is wasted.

Six segments you can pick from a booking export

A segment is only useful if you can find it in your data with a rule. These six come straight from typical booking fields.

SegmentRule in the exportWhat they weigh up
Lapsed tourersTwo or more stays, none in the last 24 monthsA reason to return, and proof the park has not changed for the worse
Flexible couplesParty of two, stayed on a weekday at least onceMidweek value, quiet pitches, hook-up and hardstanding
Dog ownersDog recorded on the bookingWalks from the gate, the dog rules, an off-lead area
Motorhome tourersVehicle type is motorhomeHardstanding that copes with wet ground, a service point, winter-ready pitches
Groups and clubsThree or more units arriving the same daysA group rate, a fixed arrival day, a pitch block together
Enquirers who never bookedEnquiry logged, no stayThe date they asked about and a reason to decide now

Ask the chatbot to propose segment rules from your column names, then check each rule yourself against a handful of real records. A "dog owners" rule built on a free-text notes field, for instance, will also catch a guest who mentioned a dog once, a year ago, so the first send goes to people who no longer travel with one. A rule you have not tested on real rows is a guess, and the tutorial on segmenting a small email list with AI covers the general method behind rules like these.

Offers that fill midweek pitches without teaching peak guests to wait

An offer needs a segment, a rule that keeps it away from peak dates and a margin you have checked. These five suit a park like the example.

  • Seven for six. Arrive on a Sunday or Monday, pay for six nights. Aim it at lapsed tourers and flexible couples.
  • The midweek mini-break. Four nights from Sunday to Thursday for the price of three, for couples and motorhome tourers who can travel on weekdays.
  • The dog-walking weekend. Not a discount: a themed weekend with a map of walks, a dog-friendly pitch and a treat bag on arrival, priced at the normal rate.
  • Book next season as you leave. Shoulder-season guests are your best audience for peak dates next year. Offer a modest deposit-only booking with a free date change, which brings cash in during a slow month without discounting the pitch.
  • An owners' guest stay. Friends or family of an owner stay on a touring pitch at the shoulder rate, booked through the owner. Check your own rules on guests first.

Each rule should also protect your peak: valid only for named shoulder dates, only for arrival on certain days, a minimum stay, and always shown next to the standard price so a guest sees a deal and not a new normal. Before promoting any shoulder or winter use, check the opening periods your site licence or permit, and any planning conditions, allow. That check is not one for a chatbot.

The margin check: what seven-for-six earns, and what it leaks

Parks carry high fixed costs and low costs per occupied night, so an extra guest is usually worth having. Say the variable cost of an occupied pitch-night is $4.50, covering cleaning, electricity, water and wear. Two kinds of booking follow from any offer. An incremental booking is a stay that would not have happened without the deal. A leaky booking is one that would have happened at full price anyway, so the discount is simply given away.

For seven-for-six at $34 a night, a guest pays $204 for seven nights and costs you $31.50 to host. An incremental booking therefore earns $172.50. A leaky booking loses the $34 discount. The offer only loses money if leaky bookings outnumber incremental ones by about five to one: $172.50 divided by $206.50 is 83.5%, the share of takers who would have to be leaky. The same sums for the other two main offers are below.

OfferGuest paysEarned per incremental bookingLost per leaky bookingOffer loses money if leaky share exceeds
Seven nights for six$204$172.50$34.0083.5%
Four nights for three$102$84.00$34.0071.2%
10% off a three-night stay$91.80$78.30$10.2088.5%

Now a season-level sum. Suppose 40 guests take seven-for-six, and a quarter of them (10) would have booked those seven nights anyway. The 30 incremental bookings earn 30 x $172.50 = $5,175, the 10 leaky ones give away 10 x $34 = $340, and the net gain is $4,835. In practice the larger risk is not leakage within shoulder dates. It is a guest who would have booked a peak week and shifts to a shoulder week for the discount, and that is why the date rule matters more than the percentage.

A chatbot builds this table in seconds, but left alone it often assumes that every taker is incremental, which makes any offer look brilliant. Adding "assume 25% of takers would have booked anyway, and show a table of break-even leaky shares" fixes it. Run the sums in a sheet too. If you are weighing a tool that moves pitch prices automatically instead of a fixed offer, the tutorial on AI dynamic pricing for a small hotel runs a similar break-even test on the tool itself.

A fact sheet the AI must write from

The most expensive mistake in AI-written park marketing is a facility that does not exist. Left to itself, a chatbot describes a heated shower block, a games room or "free Wi-Fi throughout" because other parks have them. Write a one-page fact sheet and make it the only source of truth: pitch types and counts, what each has (hook-up, hardstanding, drainage), the facilities you really have, opening dates, quiet hours, the dog policy, check-in times, what is nearby on foot, the rates and the offer rules. Store it as a reference file in a ChatGPT Project or a Claude Project, so that every prompt starts from the same source, and begin each prompt with the same rule: use only the fact sheet.

Add a voice sample too. Paste three of your own past emails or posts that sound like you and tell the chatbot to match the tone. A park run by a family should not sound like a hotel chain.

Three emails to three segments

Send each segment its own message with its own offer code. The prompt that works carries the fact sheet, the segment rule and the offer in one block, plus the constraints you know a chatbot will break.

Using only the fact sheet below, write an email to lapsed tourers (two or more stays, none in the last 24 months).
Offer: seven nights for the price of six, arrival Sunday or Monday, valid on arrival dates [dates], code SHOULDER7. Show the normal nightly rate ($34) beside the offer.
Rules: no facility, view or amenity that is not on the fact sheet. No claim of limited availability. Warm, short, first name only ([first name]). Under 150 words. Give three subject lines under 45 characters, and one plain sentence that says how to stop receiving these emails.
Fact sheet: [paste]

The unrestricted first draft is worth seeing (illustrative): "Escape to our breathtaking park for a magical autumn break! Enjoy our heated shower block and free Wi-Fi on every pitch. Hurry, pitches are filling fast!" Three of its claims are untrue for this park: the shower block is not heated, Wi-Fi covers reception only, and 40 pitches with most of them empty cannot be "filling fast". After the constraints it returned: "Hi [first name], it has been a while since you stayed with us. Our hook-up pitches are open on Sundays and Mondays from [date] to [date], and the rates are the same as ever: $34 a night. Book seven nights with code SHOULDER7 and pay for six. The shop is open every morning and the dog field has been re-fenced. Reply to this email if you would like us to hold a particular pitch."

The subject lines matter as much. Options returned might include "Seven nights, six to pay" and "Your pitch is free on a Sunday". Pick the one that states the deal, and never use a subject line that promises something the email does not contain.

Two rules for the sending itself. Only email guests who agreed to hear from you, and put a working unsubscribe link in every message. And judge each send by clicks and bookings with the offer code, not by opens. Google's sender guidelines say it does not track open rates and cannot vouch for the open rates other tools report, and some mail apps load images automatically, which records opens nobody made.

Owners get a different message

Owners already pay for their pitch, so a discount is the wrong tool. In the shoulder weeks the job is to get their vans used, which keeps them happy and spending in the shop, and to introduce friends and family who may one day become owners or tourers. The message should be warmer and more practical: dates, services running, events planned and what the guest stay rule is. Here is a draft (illustrative) after the constraints were added: "Hi [first name], the autumn weeks are among the quietest and, for many owners, the best. The shop and the laundry stay open, the dog field is open to everyone and we are running a pumpkin evening on [date]. If friends or family would like to stay on a touring pitch while you are here, book through us and quote OWNERGUEST for the shoulder rate."

An unconstrained draft will often say "your van is sitting empty", which can feel like surveillance. Anything that implies you are watching an owner's use of their own property should go. Check, too, the permitted opening dates in your licence and what your own rules allow for guests, before the owner message promises either. A short automated pre-arrival and post-stay sequence keeps owners' guests informed without more work from you.

Social posts and your Google listing, with real photos

Shoulder weeks have their own appeal, and honest posts use it: empty pitches and short queues, woodland colour, frosty mornings with a hot drink, quieter roads on the way in, space to let the dog run. Ask the chatbot for a month of posts from your fact sheet, with each post tied to a real photo you hold. Avoid AI-generated images of the park, because a guest who arrives to find a different park will tell the world, and a made-up scene is the kind of thing advertising rules treat as misleading.

Limit offer posts to one a week and make every second or third post pure value: a walk, a recipe for the caravan oven, a note about the shop's hours. Tag each offer post with its code so bookings can be traced. Post the same offers as updates on your Google Business Profile if your listing offers that option, and check that your opening dates and the shoulder offer dates match everywhere. A caravan club or camping group on social media is a good audience, but read the group's rules before posting, because many ban promotions.

Request reviews after every stay, but never in return for a discount. Google's review policies rule out incentives and review gating, and AI-drafted requests should say only "we would value your honest review". The tutorial on replying to reviews with AI covers the answers.

A twelve-week run-up to the first shoulder arrival

Work backwards from the first shoulder arrival date. The weeks below suit a park whose midweek bookings arrive 2 to 6 weeks ahead; stretch or squeeze them to match what your own data says about lead time.

Weeks before first arrivalJobAI doesYou do
12Export bookings, find gaps, write the fact sheetSummarises weekly gapsCheck the data and the sheet
11Build segment rules and test themProposes rulesCheck against real rows
10Margin check, offer codes, blackout datesBuilds the tableChoose the offers
9Email 1 to lapsed tourersDrafts, three subject linesApprove and send
8First social posts and listing updateDrafts captionsSupply real photos
7Owner messageDrafts itCheck licence and guest rules
6First pickup checkSummarises the reportDecide whether to adjust
5Email 2 to dog ownersDraftsAdd the walks map
4Second pickup checkSummarisesPull or boost offers
3Email 3 to people who clicked but did not bookDraftsSend to the click list
2Last-minute midweek offer for unsold datesDrafts post and emailChoose the dates
0Arrival; later, a review requestDrafts the requestSend without incentives

Reading the pickup report

Pickup is how many nights are booked for the shoulder dates at a given point, compared with the same point last year. Each week, export the booked nights for the shoulder weeks and give the chatbot this year's and last year's figures. A typical week-6 reading in the example: 410 nights booked against 310 at the same point last year, up 32%. At week 2 it was 640 against 520, up 23%. The pace is ahead, but the lead is narrowing, which says the early push worked and late bookers are less affected by it.

Ask for three things only: the change against last year, the dates with the weakest pickup and the offer code driving most of the bookings. Check the percentages yourself, because a chatbot can slip on a division. Then decide with a rule you set in advance, for example: if a date is more than 70% booked, pull any offer from it; if pace is below last year's four weeks out, add a last-minute offer to the weakest dates. The 70% is an example to replace with your own judgement, not a rule of the trade.

Where AI-written park marketing goes wrong

  • Invented facilities. The cure is the fact sheet and a final read by someone who walks the park every day.
  • False urgency. "Filling fast" on a park that is a third full damages trust when a guest sees the empty pitches.
  • One message for everyone. Family-holiday copy sent to flexible couples and owners reads as a mass mailing. Use the segments.
  • Offers on peak dates. A rule that leaves out blackout dates trains regular guests to wait for deals.
  • Raw guest data in a chat. Counts and anonymised rows are enough for planning.
  • Nothing measured. Without an offer code and a pickup report you will repeat the offers that felt good and drop the ones that worked.

Once a season's results are in, put the numbers back into the fact sheet and the segment rules, and keep the next season's plan in the same Project. The tutorial on caravan park software and where AI helps covers the systems that make the export, the codes and the pickup report easier to run.

Questions park owners ask about AI marketing

Should I paste my guest list into ChatGPT?

No. Give a chatbot counts and anonymised rows, such as stays, pitch type and whether a dog travelled, and run the actual mail merge inside your email tool or booking system. Guest names and contact details do not need to leave the systems that already hold them.

Can I use AI-generated images of my park?

Avoid them. Guests judge a park by the photos, and an invented view or pitch layout becomes a complaint on arrival and may break advertising rules. Use real photographs, and use AI for captions, offers, emails and planning, where a mistake is easy to catch.

How many offers should I run at once?

Two or three, each aimed at a different segment and carrying its own code, so you can see which one filled pitches. More than that makes the results impossible to read and makes your regular guests wonder which price is the real one.

Do shoulder-season discounts upset peak-season guests?

They can if the offer looks like a general price cut. Keep it tied to named dates and a rule, such as arrival on certain days or a minimum stay, show the normal price beside it, and keep peak dates off any offer. Guests accept a reason for a deal more readily than a bare discount.

Further reads

Sources: Google's review policies on incentives and review gating; Google's email sender guidelines on open rates. Park figures, rates and offers are illustrative.

Want your off-peak plan built around your booking data?

On a 1:1 call we'll look at what your booking system can export, pick the segments and offers worth testing first, and set up a plan your team can repeat each season.

Book a 1:1 call with me