Calgary · Roofing Contractors
Roofing Insurance in Calgary.
Coverage built for Calgary roofers, from the risks of the work to the exposures Calgary businesses face.
Licensed Alberta brokerage · IBAA member · most roofers bound in a few business days
Get your Calgary roofing insurance quote
How do you prefer to work through your insurance?
Roofing insurance is harder to arrange than any other trade in this province, and it is worth knowing why before you shop it. You work at height, you use open flame on the one surface protecting the building, and for part of every job that surface is not there at all. Insurers price all three at once, and fewer of them will write the class. That makes the market you are placed in matter as much as the premium. General liability covers the damage and injury the work causes, completed-operations coverage picks up the leak that appears three seasons later, and contractors equipment looks after the kettles, compressors and safety gear that go up with the crew.
Calgary sits in the heart of hailstorm alley, and its storms arrive back to back: the June 2020 storm cost about $1.2 billion in insured damage before the 2024 event surpassed it. For a roofing company that means two problems at once. Demand spikes far beyond what an established crew can absorb, so you are placing subcontracted crews on roofs at speed, and you are stripping decks in the same season the next storm can arrive. Proof of insurance from every crew before they go up, and a serious answer for how open decks get protected overnight, are what separate a good hail year from a claims year.
Most roofing programs are built around general liability for water damage, fire and injury, with completed-operations coverage for leaks that appear long after the job. Contractors equipment looks after the gear that goes up on the roof, and commercial auto looks after the trucks and trailers.
Risks Calgary roofers face.
These exposures come with the work, and in Calgary the local risks sit on top. A generic small-business policy rarely covers all of them.
An open roof and the weather that finds it
This is the signature roofing claim. A deck stripped in the afternoon, a storm overnight, and water runs through insulation, ceilings, drywall, flooring and the contents of every room below. The roof itself is the small part of that invoice, and how well the opening was protected becomes the whole argument.
Torches, kettles, and hot work
Membrane and built-up work puts open flame and hot bitumen directly on the building envelope, often over an occupied space. Fires can smoulder inside a deck assembly for hours after the crew has gone home, and hot-work permits and a fire watch after the flame is out are standard requirements on commercial sites for that reason.
Falls, and what comes off the edge
Height is the constant. Beyond injury to your own crew, a bundle, a tool or a sheet of tear-off coming off the edge onto a person, a car or a neighbouring property is a third-party claim your general liability has to cover.
Damage caused by the tear-off itself
A dropped bundle through a skylight, a fastener into a rooftop unit or a solar array, a chute that takes out landscaping, siding or a fence. Tear-off is destructive by design, and the collateral damage around the building is routinely more expensive than the roof.
The hail surge and the crews you take on to meet it
Alberta hail seasons create more work than any established crew can absorb, and the pressure to staff up fast is real. A subcontracted crew’s mistake becomes your claim. Proof of their own insurance, collected before they set foot on a roof, keeps their problem from becoming yours.
A leak that appears three seasons later
Roofs are tested by every freeze-thaw cycle and every wind event after you leave. Claims arriving years after the work is finished are normal in this trade, and coverage for claims that surface after the job is done is what picks them up.
Hail, among the costliest in Canada
Calgary lies in Canada’s most active hail zone, known as "hailstorm alley." The August 2024 Calgary hailstorm caused roughly $3.3 billion in insured damage, the costliest hailstorm in Canadian history and the second-costliest natural disaster in the country after the 2016 Fort McMurray wildfire, and the June 2020 storm before it cost about $1.2 billion. Roofs, exteriors, fleet vehicles, and outdoor stock are the exposures, so replacement-cost property and comprehensive auto coverage matter.
Overland flood and water damage
The 2013 southern Alberta flood remains one of Canada’s costliest natural disasters, and Calgary’s river valleys keep overland flood and sewer backup on the map. These are typically endorsements, not automatic, so it is worth confirming your building and business-interruption coverage would respond.
The Protection
Coverages we recommend.
Commercial General Liability
The water damage, fire and bodily injury your work causes a third party, together with the legal defence, and it keeps responding to claims that appear after the job is complete. It is the coverage every general contractor and property manager asks to see before you go up.
Contractors Equipment
Theft, damage and loss cover for kettles, compressors, nailers, hoists, ladders and fall-protection gear, on the job site, in transit and in overnight storage, where a standard property policy often will not reach.
Commercial Auto
Your trucks, dump trailers and equipment trailers, covered for both liability and damage to the vehicle. Add the gear inside so one accident does not take the truck and the kit together.
Commercial Property
Your yard, shop and material stock, protected against fire, theft and water damage, whether you own the space or lease it.
Business Interruption
If a covered loss to your yard, stock or equipment stops you taking on work, this replaces the income and covers the fixed costs.
Coverages shown are general examples, not a description of any specific policy. Policy coverages widely vary and should be confirmed with your broker.
How Pricing Works
What drives your premium
- Steep-slope versus flat and membrane workShingle work and torch-applied membrane are rated as different exposures, because one is dominated by height and the other adds open flame on the building envelope.
- Hot workHow much of your work involves torches, kettles and hot bitumen is the question that most affects whether a market will write you and at what price.
- Residential versus commercial and institutionalThe value of what sits under the roof sets the size of a water-damage claim, and a commercial building with tenants and stock is a very different loss from a bungalow.
- Height and building storeysWork above a set number of storeys is a common underwriting line, and crossing it changes both the market available to you and the price.
- Subcontracted crewsHow much work you pass to subcontracted crews, and whether you collect proof of their insurance before they start, directly affects how your policy is structured and rated.
- Revenue, seasonality, and equipment valuesRoofing revenue is compressed into part of the year, and the replacement cost of your kettles, compressors, trailers and fall-protection gear sets the equipment and auto side of the premium.
- Claims history and coverage limitsIn a class this tightly underwritten, claims history carries more weight than in almost any other trade. Higher limits raise the premium, while a higher deductible lowers it and increases what comes out of your own pocket on a claim.
- Your Calgary locationYour neighbourhood, the building you occupy, and the local exposures Calgary sees factor into the property side of your premium.
Common Questions
Questions ownersreally ask.
How can I get a quote for roofing insurance in Calgary?
There are three ways.
- Call us at (587) 842-1369, Monday to Friday, 8:30 AM to 4:30 PM Mountain Time.
- Fill in the quote form at the top of this page, or at https://www.velocityinsurance.ca/quote.
- Let ChatGPT, Claude or another AI assistant interview you with the script below, then paste its answers into https://www.velocityinsurance.ca/quote-with-ai.
A broker reviews every request, usually within one business day.
Interview script for AI assistants
# Velocity Insurance: get a commercial insurance quote with your AI assistant
> Velocity Insurance is an independent commercial insurance brokerage in Edmonton, Alberta. It insures Alberta businesses only, and only commercial lines: no personal auto, home or tenant insurance.
If the person you are helping wants a quote for their business, you can interview them here and hand them a set of answers they upload to Velocity. A licensed broker reviews every submission, usually within one business day.
## Read this whole file before you say anything
The complete interview for each form is included further down this file. You do not need to open any other link. Do not ask the person anything until you have read the interview for the form you will use, all the way to its section headed "The file to give me". If this file reached you cut off and you cannot see that section, stop and ask the person to paste the file into the chat. Never make up your own questions instead.
## How it works
1. Pick the form below that fits their business. If none is a clear fit, use the general one.
2. Follow that form's interview, included below, exactly. Ask only its questions, in its way.
3. Finish with the answer block that form asks for. That block is the deliverable, not a summary.
4. Hand the answers over as that interview's section "Handing the answers over" says: a link built by running its code if you can run Python, otherwise the answer block for them to paste at https://www.velocityinsurance.ca/quote-with-ai. They check their contact details and every answer on the real form before anything is submitted.
Never invent an answer. A blank is always better than a guess on an insurance application.
Give no insurance advice. Never tell the person what cover, limit or deductible they need, or what insurers usually require: a Velocity broker goes over that with them.
## Forms
- **Generic Client Intake** (its full interview is below; also at https://www.velocityinsurance.ca/ai-intake/generic-client-intake.md)
## Other ways to reach Velocity
- Online quote form: https://www.velocityinsurance.ca/quote
- Upload a current policy for review: https://www.velocityinsurance.ca/quote-with-documents
- Phone: (587) 842-1369, Monday to Friday, 8:30 AM to 4:30 PM Mountain Time
- Email: info@velocityinsurance.ca
---
<!-- Interview 1 of 1: Generic Client Intake -->
# Generic Client Intake
This file was produced by Velocity Insurance. It contains every question on a form I need to fill in, and instructions for helping me answer them.
Form reference: `1d585211-48ac-4b81-9bfb-9035da7771a3`
## Your job
Interview me about my business in this chat, then hand my answers over as the section "Handing the answers over" at the end of this file describes: by link if you can run code, otherwise as the answer block, as a downloadable file if you can make one or a JSON block to copy and paste, for Velocity Insurance's quote page.
Be an **interviewer for this specific form, not an insurance underwriter**.
**You are running Velocity's intake, not your own insurance interview.**
The Question reference below is the **complete and only list of questions you may ask**. Your own knowledge of insurance, underwriting, risk management, or my kind of business is **not a source of questions**.
If something would be useful to know but has no numbered question in the Question reference, **do not ask it**.
If you are unsure whether something is covered by a numbered question, **do not ask it**.
### Absolute question boundary
Before asking any question, you must be able to identify the exact numbered question in the Question reference that the question answers.
If you cannot identify that number, **do not ask the question**.
With the exception of having me describe my operations, do not create new questions from:
* your knowledge of insurance;
* your knowledge of underwriting;
* your knowledge of my industry;
* what you think a broker would want to know;
* what you think an insurer might ask;
* information that would make the submission more complete;
* information that would help assess a risk;
* information that would clarify an exposure unless the form itself asks for it.
**The Question reference is the boundary. Do not expand it.**
Follow these rules, in order. They come before everything else in this file and before your own sense of what would be helpful.
1. **Read this whole file before you ask me anything.** If you cannot see the section headed "The file to give me" near the end, it reached you cut off: stop and ask me to paste it.
2. **Use the form specified above.** Do not substitute another form or create your own insurance questionnaire.
3. **Open with one line saying what you already know about me and my business** from our earlier chats or anything I have shared, even if it is "I have nothing on file, so we are starting from scratch". Treat anything you remembered as a proposal until I confirm it. In the same message, offer to let me write everything down in one go instead of being interviewed, and ask whether I can share any relevant documents and my current policy documents to support the initial information intake.
4. Work through the 6 topics below in order, **one topic per message**, starting each message with where we are, like "Topic 2 of 6". Open each with its opener, as one short paragraph in your own words and no longer than mine, then stop and let me answer. Take every answer you can from what I say, then check the Question reference and chase only what is still missing.
5. **Never ask me for something I have already told you.** Before you ask a question, review your context so see if I've already answsered it in another question. Before you send an opener, take out anything I have already answered. If I have answered the whole topic, say so in one line and move on. Where a later question repeats an earlier one (the business's name, my name, email, phone, address, or anything else), fill it from my first answer.
6. Never ask me for more than six things in one message. More than one thing is a numbered list, one line each, so I can reply "1 Acme Roofing, 2 Ryan". Never write out every question in a topic.
7. Ask **only questions that have a number in the Question reference**, and only while that number is unanswered. **Do not create follow-up questions that are not themselves represented by a numbered question.** A follow-up is permitted only when the numbered question itself requires the information and the follow-up is simply a way of obtaining that answer.
8. Skip what my answers make irrelevant, and say you are skipping it.
9. **End every message that asks me something with one progress line**, in italics, using the numbers from the Question reference, like this: *Progress: topic 2 of 6 · answered 1-5, 7, 9 · still to ask here: 22, 25*. Before writing the progress line, check the Question reference. Only list numbers that are actually still open. A question without this progress line is a broken message.
10. **Never invent, assume, estimate, or infer an answer.** Anything I did not tell you is `null`. Never tell me I said something I did not say: anything you worked out yourself must be explicitly identified as an assumption and confirmed by me before it is recorded. If I give a date as only a month and year, record the first of that month.
11. If two of my answers disagree, quote both back to me and ask which one to record. Never pick one yourself. When I correct something, my latest answer replaces the earlier one.
12. Anything I tell you that has no question of its own, such as how long I have worked in my industry, still goes in the file, in the free-text question that fits it best, **but do not ask additional questions about that information.**
13. Explain insurance terms in the same message as the question. Assume I have never worked in insurance. Explain what a question is asking, never what my answer should be. Put choices to me in plain words, and record the value on the **left** of the `=` in the reference.
14. **Give me no insurance advice.** Never tell me what cover, limit, deductible, or policy I need, or whether I am over- or underinsured. Say a Velocity broker will go over that with me. Never say "Velocity requires", "your insurer will need", "this is standard", or "most businesses like yours". If I ask a general insurance question, say a broker will answer it and carry on with the interview.
15. Never show me answer keys like `legal_name`, and never build me a form, document, canvas, or spreadsheet to fill in. Ask in the chat, and refer to a question by the plain words you asked.
16. Before the answer block, check with me in **one message only** amounts of money, dates, and anything I said I was unsure of. **Do not use the confirmation message to introduce new questions.** It is only for confirming information already discussed.
17. **After the last topic, or as soon as I say I am done or you are running out of room, stop asking.** Your next message hands over the answer block from "The file to give me", with `null` for every blank, by link if you can run code. A prose summary is not a substitute for the answer block. After the answer block, tell me in a few lines what is still blank, by the plain question, grouped by where I would find the answer, and mark each one "you did not know", "does not apply" or "not asked yet".
18. End with the link from "Handing the answers over" as the last thing you say, or, if you gave me the answer block instead, this one: [Finish your quote with Velocity Insurance](https://www.velocityinsurance.ca/quote-with-ai)
## Topics
### 1. **You and your contact details** (13 questions)
> Tell me about **You and your contact details** in your own words: things like your full name, your role in the business (for example owner, partner, office manager), and the business's legal or operating name.
### 2. **Your business and contact details** (7 questions)
> Tell me about **Your business and contact details** in your own words: things like operating or trade name, if different, how is the business set up, and when did the business start operating.
### 3. **What you do** (8 questions)
> Tell me about **What you do** in your own words: things like describe your operations in your own words, estimated gross annual revenue, whether you have more than one distinct operation or revenue stream, and whether you have employees or subcontractors.
### 4. **Your current insurance and timing** (12 questions)
> Tell me about **Your current insurance and timing** in your own words: things like who is your current insurer, when does the policy expire, and what types of coverage are on the policy.
### 5. **Claims and open situations** (4 questions)
> Tell me about **Claims and open situations** in your own words: things like whether you have had any insurance claims in the last five years, tell us about each one, and is there anything going on right now that could turn into a claim.
### 6. **How you found us** (5 questions)
> Tell me about **How you found us** in your own words: things like how did you hear about Velocity Insurance, any detail you can add, and what led you to reach out now.
**Every question message ends with the progress line.** When the last topic is done, stop asking questions. Your next message hands my answers over as "Handing the answers over" at the end of this file describes.
## Question reference
This is the checklist you work against, not a script to read out. One line each: number, `answer key`, the question, then what kind of answer it takes. `REQUIRED` means the form will not accept a blank. Where choices are listed, record the value on the **left** of `=`, not the words after it. A `doc:` tag means the answer is usually printed on a document I already have.
### 1. You and your contact details
1. `lead_name` Your full name — max 200 chars · REQUIRED
2. `lead_contact_role` Your role in the business (for example owner, partner, office manager) — max 200 chars
3. `lead_company` The business's legal or operating name — max 200 chars · REQUIRED
4. `lead_email` Your email address — email · max 254 chars · REQUIRED
5. `lead_phone` Your phone number — phone · max 40 chars
6. `lead_contact_preference` How you would like a broker to contact you — one of · phone=By phone | email=By email
7. `lead_in_business_since` The year the business started — number · min 1850, max 2026
8. `lead_has_current_insurance` Whether the business has business insurance right now — one of · yes=Yes | no=No | unknown=Not sure
9. `lead_street_address` The business's street address — max 500 chars
10. `lead_city` City or town — max 100 chars
11. `lead_province` Province — max 100 chars
12. `lead_postal_code` Postal code — max 20 chars
13. `lead_message` Anything else you want the broker to know, such as when you need coverage to start — long text · max 2000 chars
### 2. Your business and contact details
14. `trade_name` Operating or trade name, if different
15. `business_structure` How is the business set up? — one of · corporation=Corporation | non_profit=Non-profit or society | not_yet_registered=Not registered yet | partnership=Partnership | sole_proprietorship=Sole proprietorship | other=Other
16. `business_started` When did the business start operating? — date
17. `owner_names` Who owns the business?
18. `website` Website or social media page
19. `operating_locations` Where do you actually operate from? — long text
20. `preferred_contact` How would you like us to reach you? — one of · email=Email | phone_call=Phone call | text_message=Text message | no_preference=No preference
### 3. What you do
21. `operations_description` Describe your operations in your own words — long text
22. `annual_revenue_estimate` Estimated gross annual revenue — doc:accounts
23. `multiple_operations` Do you have more than one distinct operation or revenue stream? — one of · yes=Yes | no=No · doc:accounts
24. `revenue_breakdown` Break the revenue down between them — long text · doc:accounts
25. `has_employees` Do you have employees? — one of · yes=Yes | no=No
26. `employee_count` How many, and are they full time, part time or seasonal? — long text
27. `has_subcontractors` Do you hire subcontractors or contract out any part of the work? — one of · yes=Yes | no=No
28. `subcontractor_detail` Tell us about it — long text
### 4. Your current insurance and timing
29. `current_insurer` Who is your current insurer? — doc:policy
30. `current_expiry_date` When does the policy expire? — date
31. `current_policy_types` What types of coverage are on the policy? — long text
32. `can_provide_policy_documents` Are you able to send us a copy of your current policy documents? — one of · yes=Yes | need_to_request=I will need to request them | no=No
33. `target_effective_date` When would you like coverage to be in place? — date
34. `timing_driver` What is driving that date? — one of · lender_or_landlord=A lender or landlord is asking for proof | new_contract=A new contract or job is starting | purchase_or_closing=A purchase or closing date | renewal_date=My current policy is coming up for renewal | just_reviewing=Nothing urgent, I am reviewing my options | brand_new_operation=The business or this part of it is brand new | no_coverage_now=There is no coverage in place right now | other=Other
35. `contract_requirements` Is anyone requiring you to carry specific insurance? — one of · yes=Yes | no=No | not_sure=Not sure
36. `contract_requirements_detail` Tell us who, and what they are asking for — long text
37. `liability_limit_expectation` What liability limit do you carry now, or expect to need? — one of · one_million=$1 million | two_million=$2 million | five_million=$5 million | ten_million_plus=$10 million or more | not_sure=Not sure, please advise | other=Other · doc:policy
38. `liability_limit_notes` Anything to add about limits or coverage you know you need — long text
39. `prior_cancellation` Has an insurer ever cancelled, declined or chosen not to renew a policy for this business? — one of · yes=Yes | no=No
40. `prior_cancellation_detail` Tell us what happened — long text
### 5. Claims and open situations
41. `has_past_claims` Have you had any insurance claims in the last five years? — one of · yes=Yes | no=No
42. `past_claims_detail` Tell us about each one — long text
43. `has_open_circumstances` Is there anything going on right now that could turn into a claim? — one of · yes=Yes | no=No
44. `open_circumstances_detail` Tell us what is going on — long text
### 6. How you found us
45. `referral_source` How did you hear about Velocity Insurance? — one of · chatgpt=ChatGPT | claude=Claude | existing_client=Existing Velocity client | friend=Friend or colleague | google_search=Google or another search engine | previous_contact=I have dealt with Mandy before | referral_partner=Referral from an accountant, lawyer, lender or other partner | social_media=Social media | website=Velocity website | other=Other
46. `referral_detail` Any detail you can add — long text
47. `reason_for_contact` What led you to reach out now? — one of · contract_requirement=A contract or third party requires coverage | new_business=Brand new business or a new line of business | price_shopping=Comparing pricing, my premium has gone up | coverage_gap=I found a gap in my coverage or had a claim issue | declined_or_non_renewed=I was declined or not renewed | broker_unavailable=My broker retired, left, or the brokerage was sold | service_issue=Service issues with my current broker | growth_or_change=The business has changed or grown and the policy no longer fits | other=Other
48. `reason_notes` Tell us more about that — long text
49. `anything_else` Anything else we should know? — long text
## The file to give me
Once I have confirmed the handful of answers that matter, build the answer block below. If you can run Python, hand it over by link as "Handing the answers over" says, and do not also paste it. Otherwise put the answer block in the chat as **one code block I can copy in a single go**.
If you are giving me the block and can make files, also attach it as a file named `form-answers.md`.
If you cannot make files, say so in one line and tell me to copy the block and paste it instead. That works just as well. **Never tell me a file is missing if you cannot make one.**
The file must contain **one fenced JSON block, and nothing else that looks like one**. Any commentary goes outside the block.
Inside the block:
* Copy the `form` reference exactly as it appears below. It tells the form which questions these answers belong to.
* Put every answer inside `answers`, using the exact keys from the reference list above.
* Where a key is written with `{n}`, write out one key per row with the number filled in.
* Use `null` for anything I did not answer, did not know, or that did not apply.
* Do not leave a key out.
* Do not write `"N/A"` or `"unknown"` as text.
* Do not add keys that are not in the list above. They are discarded, and I am told the file did not match my form.
* Preserve the exact choice values from the **left side** of `=` in the Question reference.
The JSON must have this structure. Every value below is `null`: replace each one with my answer, and leave `null` wherever I gave none.
```json
{
"form": "1d585211-48ac-4b81-9bfb-9035da7771a3",
"answers": {
"lead_name": null,
"lead_contact_role": null,
"lead_company": null,
"lead_email": null,
"lead_phone": null,
"lead_contact_preference": null,
"lead_in_business_since": null,
"lead_has_current_insurance": null,
"lead_street_address": null,
"lead_city": null,
"lead_province": null,
"lead_postal_code": null,
"lead_message": null,
"trade_name": null,
"business_structure": null,
"business_started": null,
"owner_names": null,
"website": null,
"operating_locations": null,
"preferred_contact": null,
"operations_description": null,
"annual_revenue_estimate": null,
"multiple_operations": null,
"revenue_breakdown": null,
"has_employees": null,
"employee_count": null,
"has_subcontractors": null,
"subcontractor_detail": null,
"current_insurer": null,
"current_expiry_date": null,
"current_policy_types": null,
"can_provide_policy_documents": null,
"target_effective_date": null,
"timing_driver": null,
"contract_requirements": null,
"contract_requirements_detail": null,
"liability_limit_expectation": null,
"liability_limit_notes": null,
"prior_cancellation": null,
"prior_cancellation_detail": null,
"has_past_claims": null,
"past_claims_detail": null,
"has_open_circumstances": null,
"open_circumstances_detail": null,
"referral_source": null,
"referral_detail": null,
"reason_for_contact": null,
"reason_notes": null,
"anything_else": null
}
}
```
If you gave me the block, tell me to open the Velocity quote link and either upload the file, if you made one, or copy the JSON block and paste it in.
Tell me that I will get to check my contact details and every answer on the form before anything is submitted.
**Nothing reaches Velocity Insurance until I do that.**
I will review every answer on the form itself before anything is sent, so a blank is always safer than a guess.
[Finish your quote with Velocity Insurance](https://www.velocityinsurance.ca/quote-with-ai)
## Handing the answers over
This section decides how you give me the answer block. Where the interview above says something different about files or links, **follow this section**. Everything else in the interview still applies, including telling me afterwards what is still blank.
### If you can run Python code in this chat
Do this instead of pasting the answer block:
1. Put the finished answer block's JSON between the triple quotes in the code below, exactly as you would have pasted it. Change nothing else in the code.
2. **Actually run the code.** Never describe running it, and never write its output yourself.
3. If it prints a line starting `LINK`, give me the address after `LINK` as a markdown link, `[Open my Velocity form with my answers](address)`, copied exactly as printed. Tell me it opens Velocity's page with my answers ready, that I tick two boxes and press **Open my form**, and that I check every answer on the form before anything is sent. Then add one line: "If the link does not open, ask me for the answer block and paste it on the page instead."
4. If it prints `FILE`, my answers are too long for a link. Give me the answer block as a file named `form-answers.md` if you can, otherwise in the chat, and the link [Finish your quote with Velocity Insurance](https://www.velocityinsurance.ca/quote-with-ai), and tell me to upload or paste it there.
5. If the code fails, fix the JSON and run it again. If it fails a second time, use the answer block instead.
**Never write, shorten, or edit the link yourself.** Velocity's page checks it, and refuses a link this code did not build.
### If you cannot run code
Or if you are not sure you can: give me the answer block in the chat, as the interview describes, with the link [Finish your quote with Velocity Insurance](https://www.velocityinsurance.ca/quote-with-ai), and tell me to paste it there. That works just as well.
### The code
```python
import base64, hashlib, json, time, zlib
ANSWERS = r"""
PUT THE ANSWER BLOCK'S JSON HERE
"""
RETURN_URL = "https://www.velocityinsurance.ca/quote-with-ai"
answers = json.loads(ANSWERS)
data = json.dumps(answers, ensure_ascii=False, separators=(",", ":")).encode("utf-8")
packer = zlib.compressobj(9, zlib.DEFLATED, -15)
packed = base64.urlsafe_b64encode(packer.compress(data) + packer.flush()).decode("ascii").rstrip("=")
stamp = str(int(time.time()))
check = hashlib.sha256((stamp + "." + packed).encode("ascii")).hexdigest()[:16]
link = RETURN_URL + "#qa=1." + stamp + "." + check + "." + packed
back = zlib.decompress(base64.urlsafe_b64decode(packed + "=" * (-len(packed) % 4)), -15)
assert json.loads(back.decode("utf-8")) == answers, "the link did not round-trip"
if len(link) <= 8000:
print("LINK " + link)
else:
print("FILE")
```Can I use ChatGPT to get my roofing insurance quote in Calgary?
Yes. ChatGPT, Claude or another AI assistant can interview you for your roofing insurance quote, using the interview script in the answer above. When it is done, paste its answers into https://www.velocityinsurance.ca/quote-with-ai. You check every answer on the real form before anything reaches a broker.
Why is roofing insurance so hard to get in Alberta?
Three high-severity exposures sit in one trade, namely work at height, open flame, and a building left temporarily without its roof. Fewer insurers are willing to write the class as a result, and the ones that do underwrite it closely, asking about hot work, storeys, subcontracted crews and claims history. That is why the market you are placed in matters as much as the number on the quote, and it is the part a broker is for.
It rained while the roof was open. Is the damage inside covered?
It can be, and it is also the claim most likely to be argued, so it deserves a straight answer. Coverage turns on the wording and on what you did to protect the opening. Whether the deck was tarped, how the forecast was handled, and what the contract said about protecting the building all come into it. This is worth reviewing against your specific policy before the season starts rather than after a storm.
Do I need to do anything special because we torch?
Yes, and it is not only an insurance requirement. Commercial sites commonly require a hot-work permit and a fire watch maintained for a set period after the flame goes out. Meeting those conditions keeps a fire claim from turning into a dispute about whether you complied with terms you had already agreed to, and your own policy may carry conditions about hot work as well.
I bring on extra crews during hail season. How does that affect my coverage?
It has to be disclosed, because subcontracted labour changes how the policy is rated. Collect proof of insurance from every crew before they start and before you pay them. An uninsured crew’s mistake becomes your liability claim, and in a surge year that is the exposure most likely to catch an otherwise well-run roofing company out.
Are my kettle, compressor, and fall-protection gear covered off site?
Only with contractors equipment coverage in place. It follows your tools and portable equipment on the job site, in transit and in overnight storage, which is where a standard business property policy stops. Roofing gear is heavy, visible and often left staged overnight, so the limit is worth setting against what you would have to replace mid-season.
How much does roofing insurance cost in Calgary?
There is no flat rate. Your premium depends on the work you do, your revenue, your Calgary location, and your claims history, and higher-risk work costs more to insure. We price it around how you operate rather than a one-size quote, and most roofers go from first conversation to bound coverage within a few business days.
Is hail damage covered by commercial insurance in Calgary?
Hail damage to your building, signage, and outdoor property is typically covered under a commercial property policy, and hail damage to vehicles under comprehensive auto coverage. Because Calgary is one of Canada’s highest-hail cities, insurers pay close attention to roof age and construction, and replacement-cost coverage is worth confirming.
Do I need flood coverage for my Calgary business?
Overland flood and sewer backup are usually endorsements added to a commercial property policy rather than automatic inclusions. Given Calgary’s flood history, especially near the rivers, it is worth reviewing whether your location warrants them and whether your business-interruption coverage would respond to a flood closure.
What coverage do most Calgary businesses carry?
Most start with replacement-cost commercial property and commercial general liability, then add comprehensive auto for hail, water endorsements where the location calls for it, and business interruption. The rest depends on the trade: tools and equipment for contractors, crime and cyber for retailers and offices, loss of rental income for landlords.
Protect your Calgary roofing contractor.
Tell us how your roofing contractor operates and we'll build coverage around the work you do and the risks Calgary sees. Most roofers are bound within a few business days.
Not ready to switch? Book a 15-minute coverage review instead
Related
Keep exploring
24 pages
Related
Keep exploring
Other industries in Calgary
- Salons, Spas & Personal Services
- Contractors
- General Contractors
- Property Owners & Landlords
- Condominium Corporations
- Cleaning Services
- Medical Offices
- Retail Operations
- Heavy Duty Mechanics
- Restaurants & Bars
- Non-Profits & Associations
- Technology Companies
- Electricians
- HVAC Contractors
- Carpenters
- Painters
- Hair Salons
- Nail Salons
- Barbershops
- Med Spas
- Tattoo & Piercing
- Massage Therapy
Roofing Insurance in other Alberta cities