Free Embed
Put a live hail map on your roofing website.
One iframe. No key, no account, no script to install, no bill. It renders recent hail reports from the National Weather Service archive, it can open pre-zoomed to your state, and it is the single most useful thing you can put on a storm landing page that is not a phone number.
We ask one thing in return, and it is a link rather than a fee. Details below the code.
Two different people read this page
Which one are you?
I own the house
You want to know whether hail actually hit your address
Then this is the wrong page and we will not waste your afternoon. Call Center Doctors does not repair roofs, inspect roofs, or sell roofs. We run the phones for roofing companies, which means the only thing we could sell you is somebody else's inspection.
What is genuinely useful to you is free and takes about a minute: look your address up against the National Weather Service storm archive and see the dates and hail sizes recorded near it. Take that to any local roofer, including one who has never heard of us.
Check hail history at my addressI run the roofing company
You are looking at a swath and deciding whether to work it
Then keep reading. The rest of this page is the part nobody publishes: what happens to the dials, in what proportion, measured on our own floor rather than asserted in a brochure.
The map is free whether or not you ever speak to us. If you want the calls made as well as the map drawn, that is the other half of what we do.
Talk to us about working a stormThe embed code
Everything below is plain HTML. If your site builder has a block that accepts raw HTML, this works in it.
The whole country
Paste this anywhere in your page HTML. It is one block: the map, plus the credit line we ask for underneath it. The wrapper keeps it a fixed 16:10 shape at any width, so it does not collapse on a phone.
<div style="position:relative;width:100%;padding-bottom:62%">
<iframe src="https://swathiq.ccdocs.com/embed/hail-map"
title="Live hail map"
loading="lazy"
style="position:absolute;inset:0;width:100%;height:100%;border:0;border-radius:10px"
referrerpolicy="no-referrer-when-downgrade"></iframe>
</div>
<p style="font-size:13px;margin-top:8px">
Live hail data by <a href="https://ccdocs.com/hail-map-widget/">SwathIQ</a>,
from Call Center Doctors.
</p> Scoped and pre-zoomed to your state
Add ?state= and a two-letter code. The map opens already centred on that state instead of on the middle of the country, which is what most contractors actually want. Same one block, same credit line.
<div style="position:relative;width:100%;padding-bottom:62%">
<iframe src="https://swathiq.ccdocs.com/embed/hail-map?state=TX"
title="Live Texas hail map"
loading="lazy"
style="position:absolute;inset:0;width:100%;height:100%;border:0;border-radius:10px"
referrerpolicy="no-referrer-when-downgrade"></iframe>
</div>
<p style="font-size:13px;margin-top:8px">
Live hail data by <a href="https://ccdocs.com/hail-map-widget/">SwathIQ</a>,
from Call Center Doctors.
</p> The wrapper div is doing real work. An iframe with a percentage height inside a normal page collapses to nothing, so the wrapper holds the aspect ratio with bottom padding and the frame fills it absolutely. Change 62% if you want a taller or shorter map.
The last line of that block is the whole price. An iframe is a resource embed rather than a hyperlink, so the frame itself sends us nothing -- and the "Powered by SwathIQ" text inside the widget bar belongs to the frame's own address, not to your page. One visible sentence, rendered by your site in your own HTML, is the entire exchange. That is why it is in the code you copy instead of in a footnote.
It is an ask, not a condition. If your site cannot show a credit, take the frame on its own -- the version below is the identical widget with nothing withheld.
Frame only, if you cannot show a credit
Some sites cannot carry a visible third-party credit -- a franchise template, a compliance rule, a page with no room. Use this and the widget still works exactly the same. Nothing is withheld, nothing is checked. We would rather you embedded it than not.
<div style="position:relative;width:100%;padding-bottom:62%">
<iframe src="https://swathiq.ccdocs.com/embed/hail-map"
title="Live hail map"
loading="lazy"
style="position:absolute;inset:0;width:100%;height:100%;border:0;border-radius:10px"
referrerpolicy="no-referrer-when-downgrade"></iframe>
</div> The 32 state codes it accepts
Listed in the order the hail belt is defined, which is roughly how much large hail each state records. Use the two-letter postal code.
An unrecognised code fails quietly. We tested it: a state code that is not on this list returns a normal 200 and renders the national map with no error and no warning. So a typo does not break your page -- it silently ships the wrong map. Check your code against the list once and you are done forever.
What we are asking for in return
Attribution, and nothing else. Specifically:
- 1. Keep the credit line that ships in the block. It is the last two lines of the snippet above: one visible sentence under the frame, linking to this page. Keep it visible and keep it where a reader can see it -- a credit set to display:none, font-size:0, or parked off-screen is not a credit, and we would rather you used the frame-only version than faked one.
- 2. Word it however you like. The snippet says "Live hail data by SwathIQ" because SwathIQ is the name of the thing. Rewrite the sentence, translate it, put it in your own voice -- we are asking for a brand credit, not for a phrase. We will never send you anchor text to paste, and if we ever did you should ignore it: a keyword anchor mandated across every site that runs a widget is a link scheme under Google's own policy, and it would hurt both of us.
- 3. Leave the link in the bar too. The widget carries a small "Powered by SwathIQ" link along its bottom edge. It is 11px and out of the way. It is not the link we are asking for -- an iframe is a separate document, so that anchor is not a link from your site at all -- but it is how a reader inside the map knows where it came from. Do not crop it off with a negative margin or an overflow trick.
- 4. Do not present it as your own data product. Embedding it on your storm page is exactly the intended use. Rebadging it as your proprietary hail intelligence platform is not, and it is the one thing that would get the widget locked behind a key.
None of this is a condition of use. The widget is not keyed, not metered, and not switched off if the credit is missing. We ship the credit inside the block because leaving it in a separate box marked "optional" meant nobody pasted it, not because we intend to police it -- and the frame-only version on this page exists so that "we ask" stays true rather than becoming "we require" with extra steps.
That is the whole licence. There is no contract to sign and no attribution police. We are telling you what the link is worth to us so the exchange is legible instead of hidden.
Why a map earns its place on a roofing page
A homeowner who lands on your storm page has exactly one question and it is not about your company: did the hail hit my street. A map answers it in three seconds without a form, which is why a map converts a page that a paragraph about your 20 years of experience does not.
There is plenty for it to show. 9,205 hail events logged in 2025 (2024: 8,941). Top states by 2025 hail-event count: Texas 1,453, Oklahoma 836, Kansas 541. Those are storm reports rather than storms -- a report exists because somebody filed one, so the count follows people and spotters as well as weather. Source: NOAA NCEI Storm Events Database, https://www.ncei.noaa.gov/stormevents/ (2025).
It also closes a gap that most roofing companies cannot close with staff. 25,519 establishments and 215,242 employees; 16,661 of them (65.3%) have fewer than 5 employees (US Census Bureau, County Business Patterns, https://www.census.gov/programs-surveys/cbp.html, 2023). Two caveats: those are establishments rather than firms, so a company with three locations is counted three times, and only employer establishments are counted, which makes the total a floor and the under-five share conservative. Either way, most roofing companies are small enough that nobody has an afternoon to build an interactive storm map. This is one you can have for the cost of a paste.
And when the map does its job, the phone rings. That half is ours: we publish 20 recorded storm appointment calls with audio and transcripts at roofing-storm-appointments/live-calls, and the measured outbound numbers behind them are on storm restoration appointment setting. Read the recordings as evidence of intake craft, never as a booking rate -- every published call ends in a booking because those are the ones we chose to publish.
Technical notes, for whoever actually pastes it
| Question | Answer |
|---|---|
| Cross-origin framing | Explicitly allowed on this route and only this route. The response sets a Content Security Policy with frame-ancestors permitting any site, and sends no X-Frame-Options header. Both halves are required -- an X-Frame-Options header would still block the frame in every browser regardless of the policy. |
| Login or key | None. The embed route is on the public allowlist and performs no authenticated action, which is also why it is safe for us to let anyone frame it. |
| Visitor data | The route is built PII-free and asks your visitors for nothing -- no form, no address box, no email capture inside the frame. Your visitors stay yours. |
| Indexing | The framed document carries a robots noindex tag, so it will not be indexed as a page of its own and cannot compete with yours in search results. |
| Height | Set by the wrapper, not by the frame. Give the wrapper a padding-bottom percentage (62% is a good default) or a fixed pixel height; an iframe with height 100% and no sized parent renders as a sliver. |
| Uptime checks | Monitor it with GET, not HEAD. Only GET is routed on this path, so a HEAD probe returns 404 on a perfectly healthy widget. Browsers issue GET, so this affects your monitoring and nothing else. |
Hail Map Widget FAQ
Is the hail map widget free?
Why is the credit line part of the code instead of optional?
What data is behind the map?
Will the widget outrank or compete with my own page?
Which states can I scope it to?
Does it work on my site builder?
Is it going to slow my page down?
Why are you giving away a hail map?
Embedded it? Now do the other half.
The map tells a homeowner they were hit. Somebody still has to pick up when they call, and somebody has to dial the neighbours who did not. That part is what we actually sell.