Alberta · General Contractors & Project Owners
General Contractor Insurance in Alberta.
Coverage built for Alberta general contractors, from the risks of the work to the exposures Alberta businesses face.
Licensed Alberta brokerage · IBAA member · most general contractors bound in a few business days
Get your Alberta course of construction quote
How do you prefer to work through your insurance?
Course-of-construction insurance, also called builder’s risk, protects a construction project while it is being built. It covers the structure, the materials on site and in transit, and the temporary works, against fire, water, theft, vandalism and weather. Alongside it usually sit project (wrap-up) liability, soft-costs coverage and equipment coverage. Whether you are the general contractor running the job or the owner financing the build, the project needs its own policy from the first load of fill to the day the keys change hands. Velocity arranges these on residential infill, multi-unit and commercial builds, structured to satisfy your lender and your contract.
A builder’s risk program is built around course-of-construction coverage on the project itself. Wrap-up liability covers everyone on site, soft-costs coverage picks up delay-related losses, and equipment coverage looks after what you bring to the job.
Risks Alberta general contractors face.
These exposures come with the work, and in Alberta the local risks sit on top. A generic small-business policy rarely covers all of them.
Fire and water damage to the structure
Hot work, temporary heating, exposed framing and unfinished roofs make construction sites uniquely vulnerable to fire and water loss. A single incident can wipe out months of progress and trigger schedule penalties.
Theft of materials and fixtures
Lumber, copper, appliances, HVAC units and millwork are all targets. Material delivered just before it is installed is often stolen the night it arrives. Course-of-construction coverage follows it both on site and on the way there.
Vandalism and trespassing
Open sites attract more than thieves, and graffiti, broken windows and deliberate damage from unauthorised entry all mean repairs you did not budget for and delays on top of them.
Severe weather and natural events
Wind, hail, flooding and freeze damage hit unfinished structures far harder than completed ones. Alberta sees all four. With no course-of-construction coverage in place, the project absorbs that loss itself.
Soft costs and delay-related losses
A covered loss does more than damage the building. It pushes back occupancy, extends financing interest, racks up additional permit and design fees, and can push a project past its delivery date.
Gaps between the trades on site
Every sub on site brings their own coverage, their own exclusions and their own limits. One uninsured sub can leave the owner or the general contractor holding a claim that should never have been theirs.
Hail and severe summer storms
Alberta is the most hail-exposed province in Canada, and the corridor running from Calgary through Red Deer to Edmonton sees damaging storms most summers. Roofs, signage, siding, stock, and vehicles are the usual losses, which is why replacement-cost property and comprehensive auto coverage matter here.
Wildfire and smoke
Communities across northern and western Alberta live with a real wildfire season, and even businesses well away from the fire line lose income to evacuation orders, closures, and smoke. Property coverage pays for the damage, and business interruption covers the weeks you cannot open.
The Protection
Coverages we recommend.
Course of Construction (Builder’s Risk)
This covers the project itself while it goes up. The structure under construction, materials on site, materials on the way to it, and the temporary works, against fire, water, theft and weather. No policy matters more on an active build.
Wrap-Up (Project) Liability
A single liability policy that covers the project owner, the general contractor and all the sub-trades together for one defined project. It closes the gaps between everyone’s individual policies and simplifies who responds when a third party is injured or their property is damaged on site.
Soft Costs Coverage
The indirect costs a covered loss creates. Extra loan interest, additional design and permit fees, lost rent, marketing, and the higher insurance costs that follow a major delay.
Contractors Equipment
Theft, damage and breakdown cover for the cranes, lifts, generators, scaffolding and tools the build depends on, on site and in transit.
Commercial General Liability
This protects the general contractor and the project entity against injury or property-damage claims from a third party, arising from the work and from the site itself. The cover survives handover, so it is still there when a claim turns up after the job is finished.
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
- Total project valueCourse-of-construction limits are set to the completed value of the build, so a larger hard-cost budget means more value at risk and a higher premium.
- Construction type & materialsA wood-frame build carries more fire and water exposure than a non-combustible steel or concrete structure. How the project is built moves the price.
- Project durationA longer build spends more time exposed to fire, theft and Alberta weather, so a schedule measured in years costs more to cover than a short one.
- Site security & risk controlsFencing, hoarding, lighting, alarms and after-hours monitoring cut theft and vandalism losses, and a well-secured site earns a better rate.
- Soft costs & delay coverageAdding coverage for extra loan interest, design and permit fees, and lost rent after a delay broadens the policy and raises the premium.
- Coverage limits & deductiblesMore limit costs more. A bigger deductible trims the premium and leaves you carrying more of the loss.
- Your Alberta locationYour neighbourhood, the building you occupy, and the local exposures Alberta sees factor into the property side of your premium.
Common Questions
Questions ownersreally ask.
How can I get a quote for general contractor insurance in Alberta?
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
- **Builders Risk** (its full interview is below; also at https://www.velocityinsurance.ca/ai-intake/builders-risk.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: Builders Risk -->
# Builders Risk
This file was produced by Velocity Insurance. It is the interview for a builders risk (course of construction) quote: the insurance on a building while it is being built or renovated. It contains every question on the form I need to fill in, and instructions for helping me answer them.
Form reference: `09a28e45-ed64-40cd-bf40-3ddbfc99cae0`
## Your job
Help me fill in Velocity's builders risk form for my project, 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 to paste into Velocity Insurance's quote page.
Most of this form is about the building itself, and nearly all of that is already written down in my plans and paperwork. **Your first job is to get those documents from me and read the answers off them.** Your second job is to ask me, in plain words, only what the documents did not answer.
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, construction, or my kind of project is **not a source of questions**. If something would be useful to know but has no numbered question, do not ask it. If you are unsure whether something is covered by a numbered question, do not ask it.
## Rules
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 say 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 this form.** Do not substitute another form or create your own questionnaire.
3. **Start with documents, not questions.** Your first message does three things and nothing else:
- one line saying what you already know about me and my project from our earlier chats, even if it is "I have nothing on file, so we are starting from scratch" (anything you remembered is a proposal until I confirm it);
- the document list from "Step 1" below, as a short bulleted list in plain words, asking me to share whatever I have (PDFs, photos of pages, or screenshots are all fine);
- an offer to skip the documents and just describe the project in my own words instead.
4. **Read the documents before asking anything else.** When I share documents, read every answer you can off them. Then send one message listing what you took, one line each, by the plain question and the document it came from, like "Square footage: 2,450 (main and upper floors, plans page A1)". Ask me to correct anything wrong. Do not ask any new question in that message.
5. **A figure off a document is a proposal until I confirm it.** Never record something you read off a document, looked up, or worked out yourself without telling me where it came from and letting me correct it. Never guess at anything that is hard to read.
6. Then work through the topics in "Step 2", in order, **one topic per message**, starting each message with where we are, like "Topic 3 of 9". Ask only the questions in that topic that are **still unanswered**. If the documents or my earlier answers already covered a whole topic, say so in one line and move on.
7. **Never ask me for something I have already told you or that a document already answered.** Where a later question repeats an earlier one (my name, the business's name, an address), fill it from my first answer.
8. 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 yes, 2 Peace Hills, 3 no".
9. Follow the "Only ask if" notes in the Question reference. When an earlier answer makes a question irrelevant, skip it and leave it `null`.
10. **End every message that asks me something with one progress line**, in italics, using the numbers from the Question reference, like this: *Progress: topic 3 of 9 · answered 1-31, 33 · still to ask here: 32, 34*. Only list numbers that are actually still open.
11. **Never invent, assume, estimate, or infer an answer.** Anything I did not tell you, and no document showed, is `null`. If I give a date as only a month and year, record the first of that month.
12. If two answers disagree (mine against a document, or two documents against each other), quote both and ask which to record. When I correct something, my latest answer replaces the earlier one.
13. Explain building and insurance terms in the same message as the question, using the notes in the Question reference. 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 my values are too high or too low. Say a Velocity broker will go over that with me. Never say "Velocity requires", "your insurer will need", "this is standard", or "most projects like yours". If I ask a general insurance question, say a broker will answer it and carry on.
15. Never show me answer keys like `risk_street`, and never build me a form, document, canvas, or spreadsheet to fill in. Ask in the chat.
16. **Never answer question 96 (the declaration) for me.** Read it to me word for word and record only my own yes or no.
17. Before the answer block, check with me in **one message only** the money amounts, the dates, and anything marked as read off a document or that I said I was unsure of. Do not add new questions to that message.
18. **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. After the block, tell me in a few lines what is still blank, by the plain question, and mark each one "you did not know", "does not apply" or "not asked yet".
19. 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)
## Step 1: documents to ask me for
Ask for these in your first message, in this order. Say why in a few words, so I know it saves me questions.
- **The building plans or drawings** (floor plans, elevations, cross sections, and the specification or notes pages). These usually answer the square footage, storeys, foundation, walls, floors, roof, basement, heating, fuel, plumbing and electrical: questions 33 to 35 and 42 to 59.
- **The site plan, plot plan or real property report.** Usually answers the site address, legal land description, and any garage or other structures on the lot: questions 23 to 28 and 71 to 72.
- **The construction contract, budget or cost breakdown.** Usually answers the total construction cost, the start and completion dates, and who the owner and builder are: questions 16 to 22, 29, 31, 36 and 38 to 40.
- **The building or development permit.** Usually confirms the address, the legal land description, what is being built and the number of units.
- **The lender's commitment letter or construction loan papers**, if there is a loan. Answers questions 73 to 79.
- **Any current liability insurance certificate or policy**, if liability for the project is already in place elsewhere. Answers questions 88 to 90.
If I can only share some of these, take what I have. The plans matter most.
## Step 2: topics
Work through these in order, after the documents. Each opener is a starting point: say it in your own words, take out anything already answered, and keep it short.
1. **You and how to reach you** (questions 1 to 13). "Who are you, and what is your role in the project?" If I am the builder, the business is my building company. If I am the homeowner building through a contractor, the business can be left `null`.
2. **Who is building and who owns it** (14 to 22). "Who is the builder, who owns the land, and who should the policy cover?"
3. **Where and when** (23 to 32). "Where is the site, when does (or did) work start, when should it be finished, and how far along is it today?"
4. **What is being built and what it costs** (33 to 41). "What kind of building is it, what is the total construction cost, and what will it be used for once it is finished?"
5. **How it is built** (42 to 59). Normally answered by the plans. Ask only what is left, as a short numbered list.
6. **Fire protection and the site** (60 to 72). "How close is the fire hall, is there a hydrant nearby, and how is the site looked after and secured while work is going on?"
7. **The lender and anyone else with an interest** (73 to 80). "Is there a mortgage or construction loan, and does anyone else need to be named on the policy?"
8. **Coverage choices** (81 to 90). "A few choices about the policy itself." Read each choice to me in plain words. Do not recommend any of them.
9. **Claims and the declaration** (91 to 96). "Any past claims or problems with an insurer, anything else Velocity should know, and the declaration."
## 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 `=`. **From:** says where the answer is usually written down. **Only ask if:** says when a question applies. **Plain words:** is how to explain it.
### 1. You and how to reach you
1. `lead_name` Your full name. Max 200 chars. REQUIRED.
2. `lead_contact_role` Your role (for example builder, owner, project manager). Max 200 chars.
3. `lead_company` The business's legal or operating name. Max 200 chars. REQUIRED. If I am a homeowner with no business, use my full name.
4. `lead_email` Your email address. Email, max 254 chars. REQUIRED.
5. `lead_phone` Your phone number. 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, 1850 to 2026. Only ask if: I am a builder or contractor.
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 (or my) mailing 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` When you need coverage to start, and anything else you want the broker to know. Long text, max 2000 chars.
### 2. Who is building and who owns it
14. `gc_contact_name` The builder's contact person. Fill from question 1 if I am the builder.
15. `gc_builds_3yr` How many builds of this size the builder has done in the past three years. Plain words: experience on similar projects.
16. `homeowner_names` The owner's full legal name or names, exactly as on title. From: contract, permit, land title.
17. `ho_street` Owner's mailing street address. Fill from questions 9 to 12 if the owner is me.
18. `ho_city` Owner's city or town.
19. `ho_province` Owner's province. One of: AB=Alberta | BC=British Columbia | MB=Manitoba | NB=New Brunswick | NL=Newfoundland and Labrador | NS=Nova Scotia | NT=Northwest Territories | NU=Nunavut | ON=Ontario | PE=Prince Edward Island | QC=Quebec | SK=Saskatchewan | YT=Yukon
20. `ho_postal` Owner's postal code.
21. `insured_interest` Whose interest is being insured? One of: homeowner=Homeowner | contractor=Contractor | contractor_and_homeowner=Contractor and homeowner jointly | spec_build=Contractor building to sell (spec). Plain words: whose money is in the building while it goes up. A "spec" build is one a builder puts up to sell, with no buyer yet.
22. `named_insured` The name or names the policy should be issued to. Plain words: the people or company shown on the policy as insured.
### 3. Where and when
23. `risk_street` The site's street or lot address. From: site plan, permit.
24. `risk_area` Subdivision, lake or area name.
25. `risk_city` Hamlet, town or municipality.
26. `risk_province` Province of the site. One of: AB=Alberta | BC=British Columbia | MB=Manitoba | NB=New Brunswick | NL=Newfoundland and Labrador | NS=Nova Scotia | NT=Northwest Territories | NU=Nunavut | ON=Ontario | PE=Prince Edward Island | QC=Quebec | SK=Saskatchewan | YT=Yukon
27. `risk_postal` Postal code of the site, if it has one.
28. `legal_land_description` Legal land description. Only ask if: the site is rural or has no street address yet. From: land title, permit, real property report. Plain words: the lot, block and plan number, or the quarter section, township and range.
29. `build_start_date` The date work started or will start. Date. From: contract, permit.
30. `policy_term_months` How long the policy should run. One of: 12=12 months | 9=9 months | 6=6 months. Plain words: from the start date to when the building should be finished and occupied.
31. `completion_date` Expected completion date. Date. From: contract, schedule.
32. `project_status` How far along the project is today. One of: bare_land=Bare land, nothing started | staked=Staked, site prep not started | excavation=Excavation underway | foundation=Foundation poured or piles set | framing=Framing underway | lock_up=At lock up, roof and windows in | interior=Interior finishing | substantially_complete=Substantially complete
### 4. What is being built and what it costs
33. `project_type` What is being built? One of: new_dwelling=New single family dwelling | new_multi_family=New duplex, triplex or fourplex | new_townhouse=New townhouse or row housing | new_multi_unit=New apartment or multi unit residential | new_seasonal=New seasonal or recreational dwelling | addition=Addition to an existing building | major_renovation=Major renovation or gut rebuild | detached_structure=Detached structure only | other=Other. From: plans, permit.
34. `dwelling_units` How many separate dwelling units. Number, at least 2. Only ask if: question 33 is new_multi_family, new_townhouse or new_multi_unit. From: plans, permit.
35. `units_attached` How the units are arranged. One of: side_by_side=Side by side, sharing walls | stacked=Stacked, one above another | both=Both side by side and stacked | separate_buildings=Separate buildings on one site. Only ask if: question 34 is answered. From: plans.
36. `total_construction_cost` The total construction cost, labour and materials, as a dollar amount. From: contract, budget. Plain words: what it will cost to build, not counting the land.
37. `occupancy_on_completion` How the building will be used once finished. One of: owner_primary=Owner occupied, primary residence | owner_seasonal=Owner occupied, seasonal or secondary | rental=Rented to a tenant | short_term_rental=Short term rental | for_sale=Built for sale
38. `soft_costs` Whether soft costs should be covered. One of: yes=Yes | no=No | advise=Not sure, please advise. Plain words: costs that are not bricks and labour, such as extra loan interest, permit fees or design fees, if a loss delays the build.
39. `soft_costs_amount` The soft costs amount to cover, in dollars. Only ask if: question 38 is yes. From: budget.
40. `soft_costs_detail` What the soft costs are (interest, fees, rent and so on). Only ask if: question 38 is yes.
41. `site_access` How the site is reached, year round, and which services (power, gas, water) are connected. Long text.
### 5. How it is built (usually from the plans)
Ask these only after reading the plans, and only the ones the plans did not answer.
42. `year_built` For a new build, the year it will be finished. For an addition or renovation, the year the existing building was built. Number, 1900 to 2100.
43. `square_footage` Total floor area in square feet. From: plans (the area schedule or the cover page). Note which floors the figure includes, such as main, upper and basement.
44. `stories` Number of storeys above ground. From: plans (elevations).
45. `foundation_type` Foundation type. One of: poured_concrete=Poured concrete | concrete_block=Concrete block | icf=Insulated concrete form (ICF) | preserved_wood=Preserved wood foundation | piles=Piles or screw piles | slab=Slab on grade | crawlspace=Crawlspace | other=Other. From: plans (sections, foundation plan).
46. `construction_class` Overall construction class. One of: frame=Frame: wood or steel stud walls, wood floors and roof | non_combustible=Non-combustible: masonry, concrete block or steel throughout | fire_resistive=Fire resistive: reinforced concrete or protected steel. From: plans. Plain words: what the structure is mostly made of. A typical house is frame.
47. `wall_construction` Wall construction. One of: frame=Wood frame | icf=ICF | masonry=Masonry or brick | concrete=Concrete | steel=Steel frame | log=Log or timber frame | other=Other. From: plans (wall sections).
48. `basement_development` Will the basement be finished? One of: yes=Yes | no=No | none=No basement. From: plans.
49. `basement_detail` What is going in the basement and how much of it is finished. Only ask if: question 48 is yes. From: plans (basement floor plan).
50. `roof_type` Roof covering. One of: asphalt_shingle=Asphalt shingle | metal=Metal | cedar_shake=Cedar shake | torch_on=Torch on or flat membrane | tile=Concrete or clay tile | rubber=Rubber or composite | other=Other. From: plans (elevations, roof notes).
51. `floor_construction` Floor construction. One of: wood_joists=Wood joists | engineered_truss=Engineered wood truss | concrete_slab=Concrete slab | steel_joists=Steel joists | other=Other. From: plans (sections).
52. `interior_finish` Interior wall finish. One of: drywall=Drywall | wood_panel=Wood panelling | exposed_log=Exposed log or timber | plaster=Plaster | concrete=Exposed concrete | mixed=Mixed finishes | other=Other. From: plans, specification.
53. `electrical_type` Electrical. One of: copper_breakers=Copper with breakers | copper_fuses=Copper with fuses | aluminum_breakers=Aluminum with breakers | aluminum_fuses=Aluminum with fuses | knob_tube=Knob and tube | other=Other. From: specification. Plain words: new builds are almost always copper with breakers, but record it only if the documents or I say so.
54. `plumbing_type` Plumbing. One of: pex_abs=PEX supply, ABS drains | pex_pvc=PEX supply, PVC drains | copper_abs=Copper supply, ABS drains | copper_cast=Copper supply, cast iron drains | poly_b=Poly B supply | galvanized=Galvanized | other=Other. From: specification.
55. `heating_type` Main heating. One of: forced_air=Forced air furnace | in_floor=In floor hydronic | boiler=Boiler with radiators | baseboard=Electric baseboard | heat_pump=Heat pump | wood_primary=Wood stove as primary heat | other=Other. From: plans (mechanical notes), specification.
56. `fuel_source` Heating fuel. One of: natural_gas=Natural gas | propane=Propane | electric=Electric | oil=Oil | wood=Wood or pellet | geothermal=Geothermal | other=Other. From: specification.
57. `wood_heat` Any wood, pellet or other extra heat, including heaters used during construction. One of: none=None | wood_stove=Wood stove | fireplace_insert=Fireplace insert | open_fireplace=Open fireplace | pellet=Pellet stove | outdoor_boiler=Outdoor wood boiler | temp_heat=Temporary construction heat only | other=Other. From: plans (fireplace locations).
58. `water_supply` Water supply. One of: municipal=Municipal | well=Well | cistern=Cistern or hauled water | other=Other. From: site plan.
59. `sewer_type` Sewage disposal. One of: municipal=Municipal sewer | septic_field=Septic tank and field | holding_tank=Holding tank | other=Other. From: site plan.
### 6. Fire protection and the site
60. `firehall_distance` Distance by road from the site to the nearest fire hall, in km. If you can search the web, you may look up the nearest fire hall to the site address and offer the hall and distance for me to confirm. Say clearly that it is your lookup.
61. `firehall_name` Which fire hall or department responds. Same lookup as question 60, confirmed by me.
62. `hydrant` Is there a fire hydrant within 300 metres of the site? One of: yes=Yes | no=No | not_sure=Not sure. Only I can answer this; do not look it up.
63. `hydrant_detail` What water is available for fighting a fire (a hydrant further away, a dugout, a lake). Only ask if: question 62 is no or not_sure.
64. `fire_alarm` Will the finished building have a fire alarm? One of: none=No fire alarm | local=Local alarm, sounds on site only | central=Monitored by a central station. Plain words: "monitored" means an alarm company is called automatically.
65. `fully_sprinklered` Will it have fire sprinklers? One of: yes=Yes, throughout | partial=Part of the building only | no=No. From: plans.
66. `burglar_alarm` Is there a burglar alarm on the site during construction? One of: none=No burglar alarm | local=Local alarm, sounds on site only | monitored=Monitored by a central station
67. `windows_barred` Are ground floor windows barred or covered in wire mesh? One of: yes=Yes | no=No
68. `water_exposure` Is the site near a river, lake or creek, or in a known flood or overland water area? Long text.
69. `site_security` How the site is secured (fencing, lighting, cameras, locked storage) and what tools or materials are stored there. Long text.
70. `site_visits` How often someone is on site. One of: daily=Every day | several_weekly=Several times a week | weekly=About once a week | biweekly=Every other week | monthly=Monthly or less | scheduled_only=Only when work is scheduled
71. `other_structures` Is there a detached garage, shop or other structure on the property? One of: yes=Yes | no=No. From: site plan.
72. The other structures, as one list, however I want to give it to you. Only ask if: question 71 is yes. In the file, write one set of these keys per structure with `{n}` replaced by 1 to 4, and leave the numbers I did not use as `null`.
- `struct_{n}_desc` What the structure is and how it is built. Text.
- `struct_{n}_value` What it would cost to rebuild. Text.
### 7. The lender and anyone else with an interest
73. `mortgage` Is there a mortgage or construction loan on the property? One of: yes=Yes | no=No
74. `mortgage_name` The lender's name. Only ask if: question 73 is yes. From: commitment letter.
75. `mortgage_ref` Loan or reference number. Only ask if: question 73 is yes. From: commitment letter.
76. `mortgage_street` Lender's street address. Only ask if: question 73 is yes. From: commitment letter.
77. `mortgage_city` Lender's city. Only ask if: question 73 is yes.
78. `mortgage_province` Lender's province. Only ask if: question 73 is yes. One of: AB=Alberta | BC=British Columbia | MB=Manitoba | NB=New Brunswick | NL=Newfoundland and Labrador | NS=Nova Scotia | NT=Northwest Territories | NU=Nunavut | ON=Ontario | PE=Prince Edward Island | QC=Quebec | SK=Saskatchewan | YT=Yukon
79. `mortgage_postal` Lender's postal code. Only ask if: question 73 is yes.
80. `additional_interests` Anyone else who needs to be named on the policy, such as a second lender, a landlord or a municipality. Long text.
### 8. Coverage choices
Read each choice in plain words. Do not recommend one. If I ask which to pick, say a Velocity broker will go over it with me and record "advise" where that is a choice, or `null` where it is not.
81. `deductible_option` The deductible on the building. One of: 1000=$1,000 (standard) | 2500=$2,500, 5% less premium | 5000=$5,000, 7% less premium | 10000=$10,000, 10% less premium. Plain words: the amount I pay myself on each claim before the insurance pays.
82. `include_sewer_backup` Should sewer back-up be covered? One of: yes=Yes | no=No | advise=Not sure, please advise. Plain words: water coming back up through the drains.
83. `include_flood` Should flood be covered? One of: yes=Yes | no=No | advise=Not sure, please advise. Plain words: water coming in from a river, lake or overland.
84. `include_earthquake` Should earthquake be covered? One of: yes=Yes | no=No | advise=Not sure, please advise
85. `liability_needed` Is liability coverage needed for this project? One of: yes=Yes | already_have=Already carried elsewhere | no=No. Plain words: cover if someone is hurt on the site or a neighbour's property is damaged.
86. `liability_limit` The liability limit wanted. Only ask if: question 85 is yes. One of: 2m=$2 Million | 3m=$3 Million | 4m=$4 Million | 5m=$5 Million | advise=Not sure, please advise
87. `liability_requested_by` Who is asking for the liability (for example the lender or the municipality). Only ask if: question 85 is yes.
88. `liability_insurer` The insurer carrying the existing liability. Only ask if: question 85 is already_have. From: liability certificate or policy.
89. `liability_policy_no` That policy's number. Only ask if: question 85 is already_have. From: liability certificate or policy.
90. `liability_expiry` That policy's expiry date. Date. Only ask if: question 85 is already_have. From: liability certificate or policy.
### 9. Claims and the declaration
91. `past_claims` Any builders risk or property claims in the last five years, by the builder or the owners? One of: yes=Yes | no=None
92. `past_claims_detail` For each claim, what happened, when, and roughly what was paid. Long text. Only ask if: question 91 is yes.
93. `prior_cancellation` Has an insurer ever cancelled, declined or refused to renew coverage for the builder or the owners? One of: yes=Yes | no=No
94. `prior_cancellation_detail` What happened. Long text. Only ask if: question 93 is yes.
95. `anything_else` Anything else Velocity should know about the project. Long text.
96. `declaration` Read this to me word for word: "The answers above are true and complete to the best of my knowledge, and I understand that coverage can be voided by a material misstatement." Record `true` only if I say yes myself. Yes or no.
## 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": "09a28e45-ed64-40cd-bf40-3ddbfc99cae0",
"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,
"gc_contact_name": null,
"gc_builds_3yr": null,
"homeowner_names": null,
"ho_street": null,
"ho_city": null,
"ho_province": null,
"ho_postal": null,
"insured_interest": null,
"named_insured": null,
"risk_street": null,
"risk_area": null,
"risk_city": null,
"risk_province": null,
"risk_postal": null,
"legal_land_description": null,
"build_start_date": null,
"policy_term_months": null,
"completion_date": null,
"project_status": null,
"project_type": null,
"dwelling_units": null,
"units_attached": null,
"total_construction_cost": null,
"occupancy_on_completion": null,
"soft_costs": null,
"soft_costs_amount": null,
"soft_costs_detail": null,
"site_access": null,
"year_built": null,
"square_footage": null,
"stories": null,
"foundation_type": null,
"construction_class": null,
"wall_construction": null,
"basement_development": null,
"basement_detail": null,
"roof_type": null,
"floor_construction": null,
"interior_finish": null,
"electrical_type": null,
"plumbing_type": null,
"heating_type": null,
"fuel_source": null,
"wood_heat": null,
"water_supply": null,
"sewer_type": null,
"firehall_distance": null,
"firehall_name": null,
"hydrant": null,
"hydrant_detail": null,
"fire_alarm": null,
"fully_sprinklered": null,
"burglar_alarm": null,
"windows_barred": null,
"water_exposure": null,
"site_security": null,
"site_visits": null,
"other_structures": null,
"struct_1_desc": null,
"struct_1_value": null,
"struct_2_desc": null,
"struct_2_value": null,
"struct_3_desc": null,
"struct_3_value": null,
"struct_4_desc": null,
"struct_4_value": null,
"mortgage": null,
"mortgage_name": null,
"mortgage_ref": null,
"mortgage_street": null,
"mortgage_city": null,
"mortgage_province": null,
"mortgage_postal": null,
"additional_interests": null,
"deductible_option": null,
"include_sewer_backup": null,
"include_flood": null,
"include_earthquake": null,
"liability_needed": null,
"liability_limit": null,
"liability_requested_by": null,
"liability_insurer": null,
"liability_policy_no": null,
"liability_expiry": null,
"past_claims": null,
"past_claims_detail": null,
"prior_cancellation": null,
"prior_cancellation_detail": null,
"anything_else": null,
"declaration": 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 general contractor insurance quote in Alberta?
Yes. ChatGPT, Claude or another AI assistant can interview you for your general contractor 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.
If my sub-trades all carry their own insurance, do I still need builder’s risk?
Yes. A sub-trade’s liability policy covers claims arising from their work, not physical damage to the building under construction. Course-of-construction (builder’s risk) is the only policy that pays to repair or rebuild the project itself if fire, water, theft or weather damages it before handover. The two do different jobs, and a project needs both of them.
Does a new build in Alberta need a home warranty?
For new homes, yes. Under Alberta’s New Home Buyer Protection Act, new home warranty coverage is required on any home whose building permit was applied for on or after February 1, 2014, and the builder must enrol the home and hold a valid residential builder licence. A warranty is not the same thing as insurance on the build. It protects the future buyer, while course-of-construction insurance protects the structure and materials during construction.
What’s the difference between course-of-construction and wrap-up liability?
Course-of-construction is property coverage, so it pays for physical damage to the project. Wrap-up liability is liability coverage. It responds when someone is injured or a third party’s property is damaged because of the project, under a single policy that covers the owner, the general contractor and the sub-trades together. Most active builds end up carrying both of these policies at once.
Should the owner or the general contractor buy the course-of-construction policy?
Either can, and the contract or the lender usually decides. What matters is that the policy names the right parties, meaning the owner, the general contractor and often the lender, so everyone with a financial stake in the build is protected and no one is left arguing over who should have insured it.
What are soft costs, and are they covered?
Soft costs are the indirect losses a delay creates after a covered event. Extra loan interest, additional design and permit fees, lost rent, and marketing. They are not covered by the base builder’s risk policy, but they can be added through a soft-costs extension, sized to your project budget and schedule.
Should I check my subcontractors’ insurance before I hire them?
Yes. Before you sign and before you release payment, get proof that each sub-trade carries their own coverage. An uninsured sub can leave you holding a claim that should have been theirs, so a quick paperwork check up front protects the whole project.
How long does course-of-construction coverage last?
It runs from the start of construction until the project reaches substantial completion, occupancy or handover, whichever your policy specifies. Because the value at risk grows every week as the build takes shape, the limit needs to reflect the completed value and not the value on day one.
How much does general contractor insurance cost in Alberta?
There is no flat rate. Your premium depends on the work you do, your revenue, your Alberta 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 general contractors go from first conversation to bound coverage within a few business days.
Do you write business insurance outside Edmonton and Calgary?
Yes. Velocity is an Alberta brokerage and we write commercial coverage anywhere in the province, including small towns, rural operations, and remote work sites. We work primarily by phone, email, and video, so where you are based does not change the service you get.
What coverage do most Alberta businesses need?
Most start with commercial property for the building, stock, and equipment, and commercial general liability for third-party injury and property damage. Vehicles add commercial auto, contractors add tools and equipment coverage, property owners add loss of rental income, and service and professional businesses add professional liability. We build the mix around your operation.
Is hail damage covered?
Hail is generally covered under a commercial property policy, and hail damage to vehicles falls under comprehensive auto coverage. What matters is whether your building is insured to replacement cost and what your deductible looks like, because in Alberta hail is a when, not an if. We confirm both before you need to claim.
Protect your Alberta project.
Tell us how your project operates and we'll build coverage around the work you do and the risks Alberta sees. Most general contractors are bound within a few business days.
Not ready to switch? Book a 15-minute coverage review instead
Related
Keep exploring
38 pages
Related
Keep exploring
Other industries we cover in Alberta
- Salons, Spas & Personal Services
- 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
- Roofing Contractors
- Hair Salons
- Nail Salons
- Barbershops
- Med Spas
- Tattoo & Piercing
- Massage Therapy