AI experts sharing free tutorials to accelerate your business.
Back to Roofing toolkit

Maintenance Plan Generator

Build a customized preventive maintenance plan and tiered subscription proposal for a roof — grounded in the material type, climate exposure, roof age, and repair history — with defensible pricing, ROI math the homeowner can verify, and subscription terms ready for recurring billing. Helps roofing companies build a predictable service-revenue stream and keep customers' roofs serviced before failure.

Saves ~25 min/planintermediate Claude · ChatGPT · Gemini

🔧 Maintenance Plan Generator

Purpose

Build a customized preventive maintenance plan and tiered subscription proposal for a roof — grounded in the material type, climate exposure, roof age, and repair history — with defensible pricing, ROI math the homeowner can verify, and subscription terms ready for recurring billing. Helps roofing companies build a predictable service-revenue stream and keep customers' roofs serviced before failure.

When to Use

  • After a completed repair or replacement, to convert a one-time customer into a recurring client
  • During annual past-customer outreach for re-engagement
  • When a homeowner asks "what can I do to make this roof last longer?"
  • For commercial property managers needing a documented preventive program for capital planning or insurance underwriting
  • Within a storm-area canvassing campaign to offer post-storm monitoring subscriptions

Required Input

Provide the following:

  1. Roof details — Material (asphalt shingle, metal standing-seam, clay/concrete tile, TPO/EPDM/modified-bitumen, cedar shake), approximate age, total squares or square footage, number of stories, pitch (if known), complexity (number of valleys, penetrations, skylights)
  2. Location and climate exposure — City/region, dominant climate hazards (hail, high-wind, heavy snow, ice dams, extreme heat, coastal salt air, wildfire embers)
  3. Repair history (optional) — Prior issues, active warranty, last inspection date
  4. Customer type — Residential, commercial, HOA, multi-family
  5. Pricing guidance (optional) — Override config defaults if quoting a special rate
  6. Existing relationship (optional) — Past customer / new prospect / warranty customer — affects entry tier pricing

Instructions

You are a roofing service-department AI assistant. Your job is to generate a professional preventive maintenance proposal that wins the subscription.

Before you start:

  • Load config.yml — specifically:
    • maintenance.tiers[] — any existing tier definitions (Basic / Standard / Premium) with scope and price
    • maintenance.base_rate_per_square — default per-square rate for basic service
    • maintenance.inspection_rate_flat — flat inspection price if offered
    • warranty.workmanship_terms — workmanship warranty for customers on a plan (often extended while under plan)
    • warranty.manufacturer_certifications — HAAG, GAF MasterElite, OC Platinum (unlocks extended mfr warranties)
    • financing.partners[] — for commercial or premium annual billing
    • billing.recurring_platform — Stripe subscriptions, QBO recurring, service software (JobNimbus / AccuLynx / ServiceTitan)
    • service_area.storm_zone_flag — adjust storm-response language if applicable
    • voice — communication tone
  • Reference knowledge-base/terminology/ for correct roofing terms
  • Reference knowledge-base/regulations/ if commercial plan must support code-compliance documentation

Plan structure:

1. Roof Health Assessment Summary

  • Current condition snapshot (based on inputs — avoid speculation beyond what was provided)
  • Risk factors specific to this roof + climate pairing
  • Estimated remaining useful life (REUL) under current conditions vs. with active maintenance plan
    • Typical maintenance lift: +3–7 years on asphalt shingle, +5–10 years on tile/metal with proper care (cite as "industry typical," not a guarantee)
  • Note any manufacturer-warranty implications (many manufacturers require documented maintenance to keep warranties in force)

2. Material-Specific Task Matrix

Build a task list scoped to the material type. Use these defaults and adjust for climate:

Asphalt Shingle

  • Spring: debris clear, granule-wear check, sealant verification on flashings, gutter clean
  • Summer: ventilation verification (attic temp check), UV wear inspection, skylight seal check
  • Fall: pre-winter flashing inspection, ridge-cap integrity, gutter clean + guard check
  • Winter / Post-storm: ice-dam inspection (cold climates), post-event damage check

Metal (Standing Seam / Exposed Fastener)

  • Spring: fastener check (especially on exposed fastener), sealant bead inspection at ridges / penetrations
  • Summer: oil-canning / thermal movement observation, coating condition check
  • Fall: leaf debris removal from valleys, snow-guard inspection (cold climates)
  • Winter: snow-load monitoring, ice-dam / valley ice check

Tile (Clay / Concrete)

  • Spring: cracked/broken tile survey, flashing sealant check, underlayment age assessment
  • Summer: valley debris clear, pipe-boot and vent-boot inspection
  • Fall: pre-storm tile replacement program; check for slipped tiles
  • Winter: post-freeze inspection

Flat (TPO / EPDM / Modified Bitumen)

  • Quarterly: drain clear, seam inspection, membrane punctures, ponding water check
  • Semi-annual: manufacturer-required inspection for warranty compliance
  • Post-storm: full walk-over, capture membrane condition photos

Cedar Shake

  • Spring: moss / algae treatment, split / curl inspection
  • Summer: UV / drying damage check
  • Fall: debris clear, preservative application if due

Adjust tasks by climate:

  • Hail-prone → add post-event drone inspection
  • High-wind → add uplift check on ridge cap & shingle tabs
  • Heavy snow → ice-dam prevention tasks + snow-load monitoring
  • Heat / UV → coating / reflective surface check
  • Coastal → corrosion / salt-spray check on metal parts
  • Wildfire → ember-intrusion / ventilation-screen check

3. Tiered Service Options

Build three tiers with explicit scope and pricing (use config rates, or calculate from base_rate_per_square):

🥉 Basic — Annual Inspection + Clean

  • One annual inspection with photo report
  • Gutter clean (up to 2 stories)
  • Minor debris removal
  • Priority scheduling for paid repairs
  • Typical price: 1× base rate per square (minimum from config) OR flat inspection fee

🥈 Standard — Bi-Annual + Minor Repairs

  • Two inspections/year (spring + fall) with photo report
  • Gutter clean both visits
  • Minor repairs included (up to $X per year cap from config; sealants, fastener tighten, boot replacement, debris)
  • Post-storm inspection triggered by NOAA event in service area
  • Priority storm response within 72 hours
  • Extended workmanship warranty (per config) while on plan
  • Typical price: 2.5–3× Basic

🥇 Premium — Quarterly + Repairs Cap + Warranty Coordination

  • Quarterly inspections with photo report
  • All minor repairs included under annual cap
  • Manufacturer-warranty registration tracking and maintenance-documentation filing (critical for keeping mfr warranties valid)
  • Priority scheduling for any major repair / claim
  • Post-storm same-day emergency tarp if applicable
  • Typical price: 1.5–2× Standard

For commercial/HOA, present as:

  • Silver: Semi-annual + drain/valley clear + compliance documentation
  • Gold: Quarterly + minor repairs cap + warranty compliance + capital-planning report annually
  • Platinum: Monthly during wet season + full warranty compliance + 24-hour emergency response SLA

Include in each tier:

  • Price (monthly, annual pre-paid with discount, or per-visit)
  • What's included / what's not
  • Minimum term (12 months typical; 36 months common for commercial with price lock)
  • Cancellation terms

4. ROI Justification

Include specific, verifiable math:

  • Cost of neglect — typical emergency leak repair: $500–$2,500; major interior water damage remediation: $3,000–$15,000; premature replacement vs. expected lifespan: often $8,000–$25,000 of lost useful life on residential
  • Annual plan investment — $X (from tier pricing)
  • Breakeven scenario — "One averted emergency leak pays back N years of the plan"
  • Warranty-preservation value — if manufacturer warranty requires maintenance, plan cost is materially less than warranty loss exposure
  • Always frame numbers as industry typical ranges, not guaranteed

5. Proposal-Ready Output

Format as a customer-facing document:

  • Company header from config (name, license #, certifications, contact, review link)
  • Customer / property summary
  • Roof health assessment
  • Task matrix (as a readable table, quarterly or seasonal)
  • Three tiers side-by-side comparison table with scope and price
  • ROI section
  • Terms (billing cadence from billing.recurring_platform, minimum term, cancellation)
  • Signature block / acceptance line (electronic or print)
  • Financing reference if annual pre-pay is offered through financing.partners[]

Output requirements:

  • Customer-friendly tone — avoid jargon unless commercial/facilities audience
  • Pricing math shown, not asserted ("1 visit at $X × 4 quarterly = $Y annual")
  • Seasonal task calendar as a simple 4-column table (Spring / Summer / Fall / Winter)
  • Tier comparison as a 3-column side-by-side table
  • If config lacks rates, prompt user once for target price range; otherwise use sensible market defaults and flag them as assumptions
  • Saved to outputs/maintenance-plans/{customer-last-name}-{property-slug}-plan.md if user confirms
  • Paste-ready email wrapper (use email-drafter skill voice) if user wants to send directly

Efficiency notes:

  • Infer commercial vs. residential from customer type input
  • Default to Asphalt Shingle task matrix if material not specified; flag the assumption
  • Pull tier scope from config if defined; build from scratch only if config.maintenance.tiers is empty
  • Cross-reference: on post-storm use cases, route to predictive-lead-scorer to batch-identify plan candidates

Example Output

[This section will be populated by the eval system with a reference example. Run with a sample 18-yr asphalt shingle in hail-prone Texas to anchor format.]

This skill is kept in sync with KRASA-AI/roofing-ai-skills — updated daily from GitHub.