AI in Roofing: Weather-Delay Messages and Rescheduling Checklist

Coding Liquids tutorial cover featuring Sagnik Bhattacharya for AI in Roofing: Weather-Delay Messages and Rescheduling Checklist.
Coding Liquids tutorial cover featuring Sagnik Bhattacharya for AI in Roofing: Weather-Delay Messages and Rescheduling Checklist.

Check one named forecast at two fixed times, apply your own go or no-go limits, then give an assistant the job list and the new dry windows. It drafts the delay notices, a re-slotted schedule and the crew message; the foreman or owner decides whether to roof and approves every message before it is sent.

Weather messages fail in two predictable ways: they go out late, or they promise a new date the schedule cannot keep. Send notices before 5 pm the day before wherever you can, say what you did to protect the roof, and give a date only after the crew calendar confirms it. An assistant is quick at the writing and the shuffling. It is no better than a stranger at judging whether a roof is safe to work on.

Follow me on Instagram@sagnikteaches

It is Monday at 4 pm. Three crews are booked Tuesday to Thursday, and the forecast has just changed to dry until about 1 pm on Tuesday, rain all day Wednesday and showers clearing on Thursday morning. One roof is half stripped, an insurance inspection is due on Friday, and seven customers will want to know what happens next. The foreman has an hour.

Connect on LinkedInSagnik Bhattacharya

Everything below suits a small roofing company with two or three crews and one person in the office. The notices and checklists work in any messaging tool you already use, and the assistant needs only text: it never needs access to your calendar or CRM, and it should not have it.

Subscribe on YouTube@sagnikteaches

Five delay notices, and when each one goes out

Most weather messages are one of five kinds. Write each once, keep it where the office can reach it, and let the assistant fill in the facts. The trigger tells you which to send, and the last two columns are the checks that stop a notice causing a new problem.

NoticeTriggerSend byMust includeMust not include
1. Day-before delayTomorrow's forecast fails your limits5 pm the day beforeThe reason in one clause; the roof's status; when you will confirm a new dateA date you have not checked; rain probabilities stated as fact
2. Same-morning delayConditions change overnight or at the first checkBefore the crew's start timeThe reason; whether anyone is coming; when you will be in touchA long apology or a new date
3. Mid-job stopRain arrives with work under wayAs soon as the roof is safeWhat was done to protect it, who checked it, the number to call if water appearsReassurance beyond what you actually did
4. Multi-day slipA weather front stays for daysThe day you decideA new window, not a single day; what happens to materials and any hired equipment"Act of God" or other legal-sounding phrases
5. Second delayThe customer has already been moved onceThe same day; the owner calls firstAcknowledgement that it is the second move; a priority slot with the date confirmedA discount, unless the owner has chosen to offer one

Here are templates for four of them. Notice 2 is notice 1 cut to three lines. Each uses placeholders, so nothing in a stored template can go to the wrong customer by accident.

NOTICE 1 (day-before delay)
Hello [first name], we are moving tomorrow's roof work at [address] because rain is forecast from around [time]. We would rather start when we can finish and leave the roof properly protected. [Nothing has been stripped yet, so your roof is not affected. OR Your roof is covered and secured.] We will confirm your new date by [time] on [day]. If anything changes before then we will tell you straight away. [your name], [company], [phone]

NOTICE 3 (mid-job stop)
Hello [first name], rain arrived at [address] at [time], so we have stopped. The exposed section has been covered with [underlayment or tarpaulin] and fastened, and [crew lead's name] checked it before leaving. We will restart when the roof is dry and will confirm the day by [time] tomorrow. If you see water coming in or a cover that has moved, call [phone] and someone will come out. [your name]

NOTICE 4 (multi-day slip)
Hello [first name], the weather over the next few days means we cannot safely work on your roof before [day]. Your new window is [day] to [day], and we will confirm the exact day by [time] on [day]. Your materials [are stored at our yard, or will be delivered once the date is set]. Thank you for being flexible. [your name]

NOTICE 5 (second delay)
Hello [first name], I am sorry your job has moved a second time. You are first in the queue for the next dry day and we have held [day] for you. [owner's name] will call you today to talk it through. [your name]

The difference between a weak notice and a good one is mostly specificity. A weak one reads: "Hi, weather looks bad so we're postponing your roof. Will rebook soon." It names no reason, no time, no state of the roof and no next step, so the customer rings to ask all four. The templates above answer those questions before they are asked.

Seven wording rules cover nearly every mistake an assistant makes with these.

  • One reason, one clause. "Rain from about 1 pm" is enough. An assistant tends to add a paragraph of apology.
  • Say what you did to protect the roof. Customers worry about an open roof, not a late start.
  • Never state a forecast as certain. "Rain is forecast" is honest; "it will rain" is not.
  • Give a window, then a date. A promised date that slips turns one delay into two complaints.
  • Keep the facts identical across channels. A text and an email sent about the same job must agree.
  • Leave out other customers. A schedule pasted into a prompt can leak neighbours' names into a draft.
  • Do not quote the contract. Paste the clause if a message has to mention it, and let a person approve the wording.

The forecast source and the readings behind each go or no-go call

"Check the weather" is not a decision rule. Name one forecast source, write it on the job sheet, and use the same readings every time, so two people reach the same answer. For the examples here I use Open-Meteo, because it publishes the hourly values a go or no-go call needs and documents them: rain probability, rain amount, wind gusts and temperature. Any forecast that shows the same four readings by the hour will do, such as your national weather service's hourly page, provided you name one and stick to it.

If someone in the office is comfortable building a link, the hourly readings arrive in one address, with the variables named in Open-Meteo's documentation:

https://api.open-meteo.com/v1/forecast?latitude=[lat]&longitude=[lon]&hourly=precipitation_probability,precipitation,wind_gusts_10m,temperature_2m&forecast_days=3&timezone=auto&wind_speed_unit=mph&temperature_unit=fahrenheit

One licensing point matters for a business. Open-Meteo's terms limit its free service to non-commercial use, and only its paid plans allow commercial use, so a roofing company that wants the readings piped into its workflow should read those terms and expect to pay. Its terms also disclaim responsibility for inaccuracies, which is a fair reminder for any forecast: it is an input to your decision, not a promise.

The readings only help against limits you have written down. Fill in this table once, with your safety lead and your product instructions, and the assistant can apply it the same way every day.

ReadingWhat to look atThe limitWho sets it
RainProbability and amount by the hour, across the working window and the 12 hours after the crew would leaveYour own rule, for example no stripping unless the deck can be dried in before the first forecast rainOwner
Wind gustsHourly gusts; Open-Meteo's figure is the strongest gust in the preceding hour at 10 m above ground, roughly the ridge height of a two-storey houseFrom your safety plan and the product instructions; no number is suggested here on purposeSafety lead
TemperatureAir temperature by the hour, and the roof surface when coldFrom the manufacturer's instructions. One shingle maker's cold-weather bulletin applies at or below 40°F (4°C) air and surface temperature and calls for extra steps such as hand-sealing the shingles along the roof perimeterForeman
Frost, ice and wet slopesOvernight low and first-light conditionsIndustry guidance for cold-weather shingle work includes avoiding frost- or ice-covered slopesForeman
LightningForecast and radarYour safety rule for when everyone comes off the roofSafety lead

Check twice a day: mid-afternoon on the day before, so notices can reach customers by 5 pm, and again before the crews leave home. Name one person who makes the call and one backup. Then the assistant's job is mechanical, applying the table to the readings and showing its working.

I run a roofing company. Below are my go or no-go limits, tomorrow's hourly readings from [forecast source], and tomorrow's jobs with their start time and the hour each roof can be dried in.
For each job, list every limit it fails, with the hour and the reading. Do not say whether the job should go ahead. If a reading is missing, write MISSING. Do not estimate readings.
LIMITS: [paste the table]
READINGS: [paste hour by hour: rain probability, rain amount, gust, temperature]
JOBS: [job | start | hour it can be dried in | notes]

The rescheduling checklist for the foreman

Work through these in order. Each step says why it matters and how to check it was done. The order is deliberate: protect roofs first, check what else depends on the date, then rank, and only then write to anyone.

  1. Freeze the board. List every job in the next five working days with its status: not started, stripped and covered, stripped and open, finishing. Check: the count on your list matches the count in your calendar.
  2. Protect open roofs first. Any exposed deck gets a crew before any new start. A common rule is never to strip more than can be dried in before the crew leaves; write yours. Check: every open roof has a named crew and a cover-by time.
  3. Check materials. Note what is delivered, what is on a roof, what is at the supplier and which deliveries sit on a wet day. Check: each delivery has a confirmed date after the dry window opens.
  4. List dependencies you do not control. Inspections, hired scaffold, cranes, skips, other trades and customers who are away. Check: each one has a date and a phone number beside it.
  5. Rank by promise. Customers already moved once go first, then fixed deadlines such as insurer inspections, then jobs with materials already delivered, then the rest. Check: the ranking is written down, so it can be explained to a customer.
  6. Re-slot against real capacity. Count crew-days in the dry windows, and decide what a half day may do; a sensible rule is that it can finish or protect work but cannot start a full re-roof. Leave a spare crew-day so the next shower does not break the plan. Check: demand in crew-days is lower than capacity.
  7. Draft every message. Customers, suppliers and the crew, from the templates. Check: every date in a message appears on the confirmed calendar.
  8. Confirm the crew first. Send the crew message and wait for each lead to reply "got it" before telling customers a new date. Check: three replies for three crews.
  9. Send customer notices in rank order. The most-moved customers first, owner calls where the table says so. Check: sent times are logged.
  10. Log it. Date, forecast checked, reading that triggered the change, decision-maker, jobs affected, notices sent and new dates. Check: a colleague could rebuild the day from the log.

Seven roofs, three crews, one wet Wednesday

Back to Monday afternoon, with illustrative figures. First, the jobs and what constrains each. The three crews have 0.5 crew-days available on Tuesday morning (before the rain), none on Wednesday, 0.5 on Thursday afternoon, and a full day each on Friday and Monday: nine crew-days in all.

JobWorkCrew-days leftOriginallyConstraint
J1Full re-roof2Tue to Wed, crew ACustomer already moved once
J2Full re-roof1Tue, crew BInsurance inspection booked Friday morning
J3Flashing repair0.5Wed morning, crew BCustomer away from Friday for ten days
J4Full re-roof1Thu, crew AShingle delivery booked for Wednesday
J5Fascia and gutter replacement1Thu, crew BScaffold hired Tuesday to Friday
J6Full re-roof1.5Tue, crew CHalf stripped on Monday and covered
J7Full re-roof1Thu, crew CNone

Demand is eight crew-days against nine of capacity, which leaves the one spare day the checklist asks for. The prompt gives the assistant the rules and tells it to stop when they conflict.

Re-slot the jobs below into the dry windows I give you.
RULES: R1 never leave a stripped deck open if rain is forecast within 12 hours of the crew leaving. R2 a half day can finish or protect work but cannot start a full re-roof. R3 customers already moved once go first. R4 insurer and inspection deadlines are fixed. R5 keep one crew-day spare.
CAPACITY: [crew-days per window]
JOBS: [table above, including the constraint column]
Return a table: job | new slot | crew | rule it satisfies | conflict I must resolve with a person.
Do not invent availability, dates or constraints. If two rules conflict, say so and stop.

A good first answer looks like this:

JobNew slotCrewRule metConflict for a person
J6Tuesday morningA, B and CR1: all three crews needed to finish 1.5 crew-days before the rainNone
J3Thursday afternoonBR2None; Thursday is the customer's last day before travelling
J1Friday and MondayAR3: first full dry daysNone
J2FridayBR2The insurance inspection is Friday morning, so it must move
J4FridayCR2Wednesday's delivery lands on a wet day; rebook it
J5MondayBR2Scaffold hire ends Friday; extend or reorder
J7MondayCR2None

Thursday afternoon leaves crews A and C free, which is the spare crew-day (R5). The three conflicts are the valuable part, and each one needs a person. The owner phones the inspector and moves the inspection to Monday afternoon; the assistant can draft the message, but only a person can arrange it. The owner then notices that swapping J4 and J5 clears the scaffold problem for free: J5 goes on Friday while the scaffold is still up, and J4 moves to Monday, with the delivery rebooked for Friday afternoon. Nobody has to extend the hire.

A warning about inputs. If the note "customer away from Friday" sits in a free-text notes column that the prompt never mentions, the assistant can miss it and put J3 on Monday. Put every constraint in the prompt itself, in words, not in a column the assistant might skip.

With the schedule fixed, the customer messages follow from the notices table. Ask the assistant to produce a plan, then draft each one.

JobNoticeWhat changesWho sends
J15: second delayFriday and MondayOwner calls, then text
J21: day-before delayFriday; inspection moved by the companyOffice, owner approves
J31Thursday afternoon instead of WednesdayOffice
J41Monday; delivery on Friday afternoonOffice
J51FridayOffice
J6Status messageFinishing Tuesday morning before the rainForeman
J71MondayOffice

The crew message that stops the six o'clock phone calls

A crew lead needs three things: where to be, when to stop and who to ring. A rambling message produces calls at 6 am asking what was meant, so ask for one structured message per day, in the order the crew will read it.

Crew leads, new plan for the week.
TUE: all three crews at [J6 address] for 6:30 am. Finish the roof and cover it before the rain, forecast from about 1 pm. Stand down at 12:30 whatever the state of the job, roof covered.
WED: no roof work. Yard day: load lists, fuel, check tarps and underlayment stock.
THU: crew B at [J3 address] for 1 pm, about three hours. Crews A and C: load Friday's materials at the yard, then stand by as the spare half day.
FRI: crew A and crew B start [J1 address] and [J2 address]; crew C at [J5 address]. Scaffold is in place.
MON: crew A finishes [J1 address]; crew B at [J7 address]; crew C at [J4 address].
If rain arrives early: cover, secure, leave, and ring [foreman's name] on [phone]. Reply "got it" so I know you have seen this.

The before-and-after is obvious. A crew message that says "weather's changed so we'll sort things out, probably be moving some stuff around, will let you know" pushes the work of planning onto each crew lead and invites ten separate phone calls. The structured one costs the office five minutes to review and saves a morning of questions. Check it against the confirmed calendar line by line before it goes: every address, every time, every crew name.

Sorting customer replies: "fine, thanks" from "my roof is open"

Replies arrive within minutes of a text. The assistant's safest job is to label them and flag the ones that cannot wait, not to answer anything that touches the roof.

ReplyExampleRoute
Accepts"No problem, thanks"Office logs it; assistant drafts a short thank-you
Wants an earlier date"Can you do Thursday instead?"Office checks the calendar; assistant drafts the answer after a person confirms
Money question"Do I lose my deposit?"Owner replies, quoting the contract
Possible emergency"There's water coming through the bedroom ceiling" or "the tarp has blown off"Straight to the owner's phone, with the full message, at once
Upset"This is the second time"Owner calls; assistant drafts a follow-up only if asked

Give the assistant a list of emergency words (water, leak, ceiling, tarp, blown, damage, flooding) and an instruction to flag any reply that contains one, copying the full message to a person without comment. Test it with ten invented replies before you rely on it. If you want a view of how a reply can end up as a public review, the tutorial on responding to negative roofing reviews about claims and delays covers that side.

Where assistants go wrong with delay notices

  • Invented reasons. Asked to explain a delay, an assistant may add "unforeseen circumstances" or a cause you never gave it. Supply the reason and forbid additions.
  • Over-apology. Three sorry sentences make a routine delay sound like a failure. One short acknowledgement is enough.
  • Promising a date. It will happily write "we will be back on Friday" if Friday appears anywhere in the prompt. Pass dates in only once the calendar confirms them.
  • Treating probability as fact. "There is a 60% chance of rain" becomes "it will rain". Quote the forecast source or leave the number out.
  • Stale details in templates. A saved prompt still mentioning last week's job is how a customer gets someone else's address. Start each run from the blank template.

Related tutorials help with the rest of the week: five customer messages contractors can draft and check covers general messages, planning pours around weather and crews shows the same logic in another trade, and whether AI can rebook weather delays for tree work compares scheduling software. For the safety paperwork that sits behind your limits, see drafting a roofing risk assessment and method statement with sign-off.

When a week-long front moves thirty jobs at once

The seven-job scenario scales badly if you handle each customer by hand. After a long spell of rain, a larger company may have thirty or more jobs to move, and the rule becomes batch work in a fixed order.

  1. Segment by roof status. Open or covered roofs, started jobs, and jobs not yet started. The first group is the priority for crews, and the first to hear from you.
  2. One template per segment. Notice 3 for the covered roofs, notice 1 or 4 for the rest, notice 5 for anyone already moved once.
  3. Merge, then spot-check. Let the assistant produce the plan table; fill the placeholders from your job export with a mail-merge or your CRM; read at least one message in every segment aloud before anything is sent.
  4. Send a holding message to anyone without a date yet. Silence is the real source of complaints.
  5. Stagger the calls. The owner phones the second-delay customers; the office takes the rest, in booking order.

A holding message is short and honest, and it commits only to when you will next be in touch:

Hello [first name], the weather has pushed back all roof work this week, including yours at [address]. We are re-slotting jobs now, starting with roofs that are already open, then customers who have been moved before, then everyone else in the order booked. We will contact you by [day] with your new window. If water appears in the meantime, call [phone].

Say your priority order out loud when you set it, because customers will ask. A written order of open roofs first, then jobs already moved, then booking order is easy to explain and hard to argue with.

The delay log, and what it tells you at month end

A log pays for itself in arguments avoided. Keep one row per delay day: date, the forecast source and the time you checked it, the reading that triggered the change, who decided, jobs affected, notices sent and when, and the new dates. At month end, paste the log into an assistant and ask for a summary of crew-days lost, jobs moved more than once, notices sent after 5 pm and complaints that mentioned a delay. A wet month's summary might read: six delay days, 9.5 crew-days moved, three jobs moved twice, two notices sent after 5 pm.

Those four numbers are what you manage. If jobs moved twice keep rising, your slack is too thin. If late notices keep appearing, the afternoon forecast check is happening too late. If crew-days moved keep rising in the same weeks each year, price that weather risk into your quotes and your estimated start dates. The assistant can add up the log; deciding what it means is yours. For the wider picture of where else AI fits in a roofing company, six workflows worth setting up first for roofers is the best next read.

Weather-delay questions roofing owners ask

Can AI decide whether it is safe to roof?

No. It can apply limits you have written down to the forecast numbers and show which ones a job fails, but the decision belongs to the foreman or owner, who can see the roof and the crew. Wind, lightning and frost are safety calls, and a forecast is only a forecast. Keep the decision with a named person and a named backup.

Should I send delay notices by text or email?

Use whichever the customer already uses with you. Text suits same-day changes, because people read it within minutes; email suits multi-day slips that need a few sentences of detail. Either way, keep the same facts in both, and never send a bulk message until you have checked that every name, address and date matches the right job.

How much notice should I give?

As much as you can, and ideally before 5 pm the day before, so nobody takes time off or moves a car for nothing. Same-morning notices will sometimes be unavoidable. Set a standard for your company, write it down, and measure how often you meet it in the delay log.

What if my contract has a weather clause?

Follow the clause as written, and do not let an assistant interpret it. If you are not sure what it allows, such as moving a start date or keeping a deposit, ask a solicitor to review the wording once. Then paste the exact clause into your prompts where a message needs to refer to it.

Further reads

Sources: Open-Meteo documentation, pricing and terms pages (hourly variables, commercial-use licence); Owens Corning technical bulletin TB-10022497-A on cold-weather shingle installation (April 2026); a roofing industry association's cold-weather installation guidance. Set your own wind, rain and temperature limits from your product instructions and safety plan.

Want weather delays handled before the phones ring?

On a 1:1 call we'll look at how you decide, tell customers and re-slot crews when weather moves a job, and build the checklist and templates around your own rules.

Book a 1:1 call with me