How to Estimate Roof Age From Satellite Imagery (A Roofer's Field Guide)
On this page
Every roofer has knocked a door, watched the homeowner walk out, and learned in the first ten seconds that the roof was replaced two years ago. The aerial photo on your tablet looked aged. The county record said the house was built in 1998. Both were wrong about the only thing that mattered: when that roof actually went on. You burned a knock, a few minutes, and a little bit of your rep's morale, and you did it because nobody handed you a usable age before you got out of the truck.
Estimating roof age from satellite and aerial imagery is the skill that fixes that. Done well, it lets you walk a neighborhood from your desk, separate the 22-year-old shingles from the 4-year-old re-roofs, and send crews to the doors where the conversation has somewhere to go. Done badly, it sends you to new roofs, makes you look like every other random knocker, and quietly trains your team to distrust the data.
The difference between those two outcomes is not the imagery. Almost everyone is looking at the same Google, Bing, and county aerials. The difference is method: knowing what the pixels can and cannot tell you, knowing which public records lie and how, and knowing how to express the answer as an honest range instead of a fake exact date. That is what gets covered below, from the visual cues a trained eye reads off a rooftop, to the multi-source workflow pros use, to where this breaks and what to do about it.
This is written for the people who actually use the answer: owners deciding where to spend mail and gas, sales managers building knock routes, and storm-restoration leads trying to figure out which roofs a hailstorm actually wore out versus which ones just sat under the same cloud.
Why "roof age" is the number that actually moves jobs
A re-roof is a high-ticket, infrequent purchase. A homeowner buys one maybe two or three times in the entire time they own a house. So the population of "people who need you right now" on any given street is small, and it is mostly invisible from the curb. The roof that looks tired might have ten good years left. The roof that looks fine from the street might be cooked. Age is the single best proxy you have for who is close to the buying window before anyone climbs a ladder.
Walk through the economics. Say a typical architectural-shingle roof has a real-world service life somewhere in the 18-to-25-year band depending on climate, ventilation, and install quality. A homeowner with a 5-year-old roof is not a customer this year, this storm, or this decade, no matter how good your pitch is. A homeowner with a 20-year-old roof is in or near the window where wind, granule loss, or a single bad hailstorm tips them into replacement. If you could label every house on a street with even a rough age band, you would skip the first homeowner entirely and spend your whole budget on the second.
That is the entire game. Mail, gas, payroll, and rep attention are finite. Roof age is how you point them.
Here is the order of value most roofers find once they start using age data seriously:
- Stop wasting touches on new roofs. The fastest ROI is subtraction. Every new roof you do not knock or mail is money you keep.
- Concentrate effort on the aging band. Routes built around 16-plus-year roofs convert better because the homeowner is closer to the decision.
- Make storm work surgical. After a hail or wind event, age tells you which damaged roofs were already near end-of-life (an easy total-loss conversation) versus a 3-year roof that took a few hits.
- Give green reps a reason to be at the door. "Your roof is in the range where we usually start seeing problems" is a real opener a brand-new canvasser can deliver without faking expertise.
Notice what age is not. It is not a guarantee of damage, a promise of an insurance claim, or proof the homeowner will buy. It is a probability sharpener. Treat it as one and it pays. Treat it as a crystal ball and you will overpromise and get burned.
The records that lie to you (and exactly how)
Before touching imagery, understand why the easy data sources fail, because most contractors start and stop there and then wonder why their lists are junk.
Year built is not roof age
The number you see on Zillow, Redfin, or the county assessor site is year built or effective year built. That is when the house was constructed. A house built in 1996 may be on its second or third roof. Re-roofs almost never update the public construction record. Year built tells you the oldest the roof could possibly be, and nothing about whether it was replaced since. On a street of 1990s homes, year built makes every house look identical when in reality some are on 28-year-old shingles and some were redone last spring.
Used alone, year built systematically points you at houses that have already re-roofed, because the oldest neighborhoods are exactly where the most replacements have already happened. That is backwards from what you want.
Permits help, but they are incomplete and slow
Many jurisdictions require a permit for a re-roof, and where permit data is public and digitized, a roofing permit is the closest thing to a hard "roof replaced on this date" signal you can get. Pull it when you can. But permit coverage is wildly uneven:
- Plenty of re-roofs happen without a permit, especially smaller jobs, rural areas, and contractors who skip the paperwork.
- Many counties never digitized older permits, so anything before roughly the 2000s may not exist online.
- Permit data lags. A roof done last month may not show up for weeks.
- Permit issued is not permit completed — some permits get pulled and the work changes or never happens.
So a found roofing permit is strong positive evidence the roof is younger than that date. The absence of a permit proves nothing. Build your method around that asymmetry.
Real-estate listing photos are gold when they exist
When a house last sold, the listing usually included photos, sometimes with a roof shot or an inspection note. "New roof 2019" in an old listing is a hard data point. The catch is coverage: only homes that sold recently have rich listing histories, and you cannot pull this at scale for a whole neighborhood easily. It is a great confirmation source for a specific address, not a survey tool.
The takeaway: records give you anchors and bounds, not the answer. Year built gives you a ceiling on roof age. A permit or listing gives you a floor on roof youth for the homes that have them. The imagery is what fills the huge gap in between for everybody else.
What satellite and aerial imagery can actually show you
First, get the vocabulary straight, because "satellite" is doing a lot of loose work in this conversation.
True satellite imagery (the kind behind most consumer map zoom levels at wide scale) typically lands somewhere in the sub-meter to few-meters-per-pixel range for the publicly accessible stuff. That is fine for finding a neighborhood and seeing roof outlines, but it is usually too coarse to read shingle condition reliably.
Aerial imagery is shot from planes, not orbit, and is much higher resolution — often a few inches per pixel for the orthophotos many counties fly, and the oblique (angled) imagery in tools like Google Earth, Bing Bird's Eye, and various GIS portals. This is where roof-age cues actually live. When practitioners say "satellite" they usually mean "the overhead and angled aerial images I can pull up for an address."
Orthophotos are the straight-down, geometrically corrected images. Good for outlines, footprint, large discoloration patterns, and comparing the same roof across years. Obliques are the 45-degree angled shots that let you see the slope of the roof plane, which is where weathering and granule loss read best.
Here is the honest boundary of what imagery can and cannot do for age:
| Imagery can usually show | Imagery usually cannot show |
|---|---|
| Overall weathering and color fading of the field | Exact install date |
| Streaking and discoloration patterns | Underlayment or decking condition |
| Obvious tarps, patches, or mixed-color sections | Hairline cracks or soft spots |
| New vs. old roof when compared across years | Manufacturer or exact product/warranty |
| Tree overhang and shading that ages a roof unevenly | Interior leaks or moisture |
| Differences between a clearly new and clearly old roof | A precise year on a mid-life roof |
That last row is the crux. Imagery is excellent at the extremes — a brand-new roof and a clearly shot roof are easy — and fuzzy in the middle, where most houses live. Which is exactly why the output must be a range, never a date.
Reading a roof: the visual cues a trained eye uses
When you pull up an address in oblique aerial view, you are looking for the signatures of weathering. None of these is conclusive alone. You stack them. Here is what to read, roughly in order of how reliable each cue is.
1. Color uniformity and fading
A fresh asphalt-shingle roof reads as deep, saturated, and uniform — a consistent charcoal, brown, or whatever the color is, edge to edge. As shingles age and lose granules, the color flattens, lightens, and goes blotchy. Compare the roof to known-new roofs on the same street shot in the same imagery pass (same lighting, same date). A roof that reads noticeably grayer, paler, or more mottled than its fresh neighbors is older. The relative comparison is far more reliable than judging a single roof in isolation, because lighting and image processing shift the absolute colors.
2. Streaking and discoloration
Dark streaks running down slopes are commonly algae (Gloeocapsa magma), which feeds on the limestone filler in asphalt shingles. Algae streaking takes years to develop and read from the air, so heavy, established streaking is a soft signal the roof has been up a while — though north-facing and shaded slopes streak faster and sunny southern climates streak differently, so weight it by region. Streaking tells you "not brand new" more than it tells you an exact age.
3. Granule loss and texture change
On good oblique imagery you can sometimes see the field of the shingle going from a crisp, textured surface to a smoother, washed-out look as granules wash into the gutters. Bald patches near valleys and along the bottom courses, where water concentrates, are a strong end-of-life signal. This is subtle and resolution-dependent — do not force it on coarse imagery.
4. Tarps, patches, and mixed-color sections
A blue tarp, a patch of differently colored shingles, or one roof plane that is obviously newer than the rest tells a story: prior damage, a partial repair, or a sectional replacement. Mixed colors often mean a repair after a leak or a slope-by-slope replacement, which is a real targeting signal — that homeowner has already had roof trouble.
5. Sagging, uneven planes, and deck deformation
In oblique view, a ridgeline that is no longer straight or a roof plane that waves or dips suggests deck or structural aging — usually a roof well past its prime. This is rarer to catch but a strong signal when you see it.
6. Tree overhang and microclimate
Heavy tree cover ages a roof unevenly: the shaded, debris-collecting slopes hold moisture, grow more algae, and degrade faster than the sun-exposed ones. A roof that is uniformly aged is different from one that is failing only under the oaks. This matters because it tells you the worn part of the roof and helps you judge whether the whole thing is due or just one slope is ugly.
A worked example
Picture two houses on the same 1995-built street, same imagery pass.
- House A: field color is a flat, pale gray, noticeably lighter than three crisp charcoal roofs nearby. Established algae streaks down both visible slopes. The bottom courses look smooth and washed out compared to the ridge. No tarps, no patches. Heavy oak overhang on the north slope, which is the worst-looking section.
- House B: deep, even charcoal, matches the freshest roofs on the block, no streaking, crisp texture top to bottom.
Your read: House A is an original or near-original roof showing real end-of-life weathering — call it a 17-to-24-year band, leaning old, and worth a knock with a condition-forward opener. House B is almost certainly a recent re-roof — likely under 8 years — and you skip it, because no record updated when those new shingles went on but your eyes can see them.
That is the whole skill in miniature: relative comparison, stacked cues, expressed as a band with a lean, plus a decision.
The multi-source workflow pros actually run
Nobody good relies on a single image or a single record. The reliable method triangulates. Here is a workflow you can run by hand for a target street, and the same logic a system automates at scale.
Step 1: Set the ceiling with year built
Pull the assessor or parcel data for the street. Year built is your upper bound — the roof cannot be older than the house. On a uniform-age subdivision this also tells you the "original roof" cohort: if everything was built in 1999 and a roof still looks original, it is pushing 25 and prime.
Step 2: Set youth floors with permits and listings
Search the public permit portal for roofing permits on your target addresses. Any hit is a near-hard "roof is younger than this date" anchor — flag those as likely-skip unless the permit is itself old enough that the roof is aging again. Spot-check recent sale listings for roof mentions on the homes that sold lately. These are your confirmed-young houses; get them out of your knock pool.
Step 3: Read current imagery for the unknowns
For every house without a youth anchor — which is most of them — pull the best oblique aerial you can and apply the visual cues above. Compare each roof against the known-new and known-old roofs on the same pass. Sort each address into a rough band: clearly new, mid-life, clearly old, or can't-tell.
Step 4: Use the imagery time machine
This is the move most contractors miss. Google Earth's historical imagery slider, and some county GIS portals, let you scrub the same roof across multiple years. If you watch a roof change from old-and-streaked to fresh-and-dark between, say, the 2016 and 2018 imagery passes, you have just dated the re-roof to a tight window without any permit at all. Conversely, if the roof looks the same shade of tired across a decade of passes, it is an old original roof. Historical imagery turns a fuzzy single-frame guess into a defensible range. Always check it before you finalize an address.
Step 5: Resolve conflicts and assign a range
Now you have, for each house, a ceiling (year built), possible floors (permits/listings), a current visual read, and sometimes a dated change event from historical imagery. Reconcile them:
- Year built 1999, no permit, looks original and tired across every imagery pass since 2012 → range roughly 20-25 years, lean old. Knock.
- Year built 1999, roof visibly changed from tired to fresh between 2017 and 2019 passes → range roughly 5-7 years. Skip.
- Year built 1999, no permit, mid-life appearance, no clear change event → range roughly 12-18 years, uncertain. Lower priority; mail rather than knock.
- Conflicting signals (permit from 2008 but roof looks shot) → the permit may have been a repair, not a full replacement; treat as uncertain and verify on site.
Step 6: Express it as a band, not a date
Write the answer as a range with a confidence note, e.g. "18-22 years, high confidence, original roof" or "8-14 years, low confidence, can't-tell imagery." That honesty is not weakness; it is what keeps your reps from walking up and confidently announcing a wrong number to a homeowner who knows exactly when they re-roofed.
Here is the same workflow as a quick reference checklist:
- Pull year built (ceiling)
- Search roofing permits (youth floor)
- Spot-check recent listings (youth floor)
- Read current oblique imagery, compare to neighbors
- Scrub historical imagery for a re-roof event
- Reconcile signals into a range + confidence
- Assign action: knock / mail / skip
Doing it at scale: why the manual method breaks
The workflow above is sound. The problem is arithmetic. Reading one roof carefully takes a few minutes. A neighborhood is a few hundred homes. A territory is thousands. A serious outbound operation wants to evaluate tens of thousands of addresses, refresh them as new imagery and storms come in, and do it again next quarter. Hand-reading does not survive contact with that volume.
This is where contractors split into three camps, and it is worth being honest about the tradeoffs of each:
| Approach | What you get | Where it breaks |
|---|---|---|
| Year-built lists (cheap mailing lists) | Fast, cheap, huge coverage | Re-roofs invisible; you pay to reach new roofs; low conversion |
| Manual imagery reading | Accurate per house, real age signal | Does not scale past a small route; ties up skilled people |
| Measurement tools (aerial measurement reports) | Precise squares, pitch, footprint | Measures the roof; does not tell you its age or whether to knock it |
| Automated age + condition scoring | Age range per address at scale, refreshable | Still a probability, not a guarantee; needs ground truth to stay honest |
That third row deserves a flag because contractors mix it up constantly. Aerial measurement products are excellent at what they do — they tell you how big a roof is and how it is shaped so you can quote and order material. They are a different category from age and condition. "How big is this roof" and "which roof should I even be standing on" are two different questions. Measurement answers the first. Nothing in a measurement report tells you the homeowner is anywhere near needing you.
The fourth row is the category that maps to the actual outbound problem: which roofs are due, scored across an entire area, refreshed as conditions change.
Where RoofPredict fits
This is the problem RoofPredict is built around. The core output is a roof-age range per address — derived from aerial imagery the same way a trained estimator would read it, but applied across an entire area instead of one street at a time — paired with storm physics modeled for that specific roof. Instead of hand-scrubbing historical imagery on three hundred houses, you get every roof in your area sorted by how likely it is to be due, so your crews knock and mail the worn-out ones and skip the new ones.
The part that separates it from a plain age list is the storm side, and it is worth being precise about what that means. A hail map shows you where it hailed — a colored blob over a county. That tells you a storm passed, not which roofs it wore out. RoofPredict models hail trajectory and wind on each roof and scores the impact house by house, then pairs that with the roof's age. The reason that pairing matters: a 4-year-old roof that took a few hits is a very different conversation from a 21-year-old roof that took the same hits and was already near the end. The age range tells you the second roof is the one to walk up to.
What that does for the four people reading this:
- Owners stop paying to mail new roofs. The age range filters the list before a stamp is bought.
- Sales managers build routes around the aging band instead of guessing, and hand reps a real per-home reason to knock.
- Storm-restoration leads see which damaged roofs were already aging out — the surgical version of working a storm instead of carpet-knocking the whole ZIP.
- Green canvassers show up with a documented condition and age range, which makes a brand-new hire sound like a veteran without climbing a ladder, and reps who knock doors that actually convert tend to stick around.
Now the honest limits, because anyone who has read this far knows the imagery is not magic. The output is a range, not a birth certificate — a roof scored at 18-22 years might be 17 or might be 24. The storm model gives you odds that a roof took damage worth inspecting, not proof that it did; somebody still has to get on the roof and document it. Imagery cannot see decking, underlayment, or a leak that started yesterday. And none of this touches the insurance process: the roofer documents the conditions and writes the estimate, the insurer decides coverage, and the homeowner owns the claim. RoofPredict points you at the right roofs and hands you documentation. It does not file, handle, or negotiate anybody's claim, and it makes no promise about what a carrier will do.
Used for what it is — a probability sharpener that turns a whole area's worth of roofs into a ranked list of who is actually due — it does the thing the manual workflow does, at the scale the manual workflow cannot survive. That is the entire pitch, and the limits above are part of it.
What pros get wrong
Having watched a lot of contractors try to do this, the same mistakes show up over and over. Avoiding them is most of the edge.
Mistake 1: Trusting year built as roof age
Covered above, but it bears repeating because it is the most expensive error. A list built on year built alone sends mail and crews to the homes most likely to have already re-roofed. If your "targeting" is just sorting by construction date, you are not targeting, you are guessing with extra steps.
Mistake 2: Reading a single image in isolation
Lighting, image processing, sun angle, and time of day swing how a roof's color reads. Judging one roof against an absolute mental standard of "new roof color" produces wild errors. Always compare against other roofs in the same imagery pass. Relative reads are reliable; absolute reads are not.
Mistake 3: Skipping the historical imagery slider
The time machine is the single highest-value, lowest-effort move, and most people never touch it. One scrub through past imagery passes can date a re-roof, confirm an old roof, or catch a recent replacement that the current frame made ambiguous. If you read imagery and never check history, you are leaving the best signal on the table.
Mistake 4: Pretending the answer is exact
The contractor who tells a homeowner "our records show your roof is exactly 19 years old" is one re-roof memory away from being called a liar at the door. The homeowner often knows the real story. Lead with a range and a reason — "roofs in your neighborhood from this era are usually in the range where we start seeing wind and granule problems" — and you are credible no matter what the real number is.
Mistake 5: Confusing measurement with age
Buying an aerial measurement report and thinking it told you whether to knock the house. It told you the roof is 28 squares with a 6:12 pitch. It said nothing about age or condition. Different tool, different question.
Mistake 6: Ignoring regional weathering differences
Algae streaking, granule loss, and fading all run on different clocks in different climates. A roof in humid Gulf-coast air streaks years faster than the same roof in dry high-desert sun. UV load in the Southwest cooks roofs faster than a cloudy northern climate. If you read every region against the same mental ruler, you will systematically misjudge age. Calibrate to local roofs.
Mistake 7: Treating odds as proof, especially on storms
A storm model that says a roof probably took damage is a reason to inspect, not a finding of damage. Reps who walk up and announce "you have hail damage" before anyone has been on the roof create legal and credibility problems. The honest line is "roofs in your area took a hit worth getting eyes on," then you document what is actually there.
Calibration: keep your method honest with ground truth
Any age-estimation method — your eyes, a checklist, or an automated system — drifts unless you check it against reality. The discipline that separates pros from guessers is feeding inspection results back into the read.
Run this loop:
- Log your prediction before you knock. Record the range and confidence you assigned from imagery: "18-22, high confidence."
- Record the truth when you get it. When a rep gets on the roof, talks to the homeowner, or pulls a permit, log what the roof actually was: "homeowner says re-roofed 2015, so ~9 years."
- Score the miss. Was the real age inside your range? If not, by how much, and in which direction?
- Find the pattern. If you are consistently calling roofs older than they are in a certain neighborhood, maybe the imagery there is shot in harsh light, or the local algae makes everything look ancient. Adjust.
- Track your hit rate by band. You will usually find your extreme calls (clearly new, clearly old) are nearly always right and your mid-life calls are where the misses cluster. That tells you where to lean on records and historical imagery instead of a single-frame read.
The practical payoff: over a few hundred logged predictions you learn your own error bars, and you can set route priority by confidence. High-confidence-old roofs get knocked. Low-confidence-middle roofs get a mailer instead of a rep's afternoon. That is how you turn a fuzzy estimate into a disciplined resource-allocation tool.
A quick worked example of the loop paying off: a sales manager notices that in one older subdivision, every "clearly old" call keeps coming back as a roof the homeowner re-roofed five years ago. He scrubs the historical imagery and realizes the whole tract was hit by a hailstorm in that window and re-roofed en masse — the current roofs are tired-looking because they are cheap builder-grade shingles, not because they are old. He re-bands the whole subdivision down and stops wasting routes there. No automated system handed him that; the calibration loop did. The same loop is what keeps an automated age model honest too — ground truth in, better ranges out.
Turning the age range into a route
An age estimate that sits in a spreadsheet does nothing. The point is to convert it into where the crew goes Monday. Here is a simple, defensible way to translate ranges into action.
Tier the list by age band and confidence:
| Tier | Age read | Confidence | Action |
|---|---|---|---|
| A | 18+ years, original | High | Knock first; condition-forward opener |
| B | 14-18 years | Medium-high | Knock or strong mailer |
| C | 10-14 years | Medium | Mailer; revisit after storms |
| D | Under 10 years | Any | Skip for now; suppress from mail |
| X | Can't-tell | Low | Mail light; let response self-select |
Layer storm data on top. After a wind or hail event, promote any roof in Tiers A through C that the storm model flags as likely-impacted. A 20-year roof that just took hail jumps to the top of the knock list. A 6-year roof in the same blob stays suppressed unless the impact read is severe — and even then it is an inspection, not a claim.
Give the rep the one line. For each door, hand the canvasser a single, honest, non-overpromising opener tied to the data: "Roofs in your stretch from this era are usually in the range where we start seeing granule loss and wind lift — mind if I take a quick look?" No fake exact age, no promise of damage, no claim talk. Just a real reason to be there.
Suppress aggressively. The discipline most operations lack is removing the new roofs from every channel. A Tier D house should never get a knock, a mailer, or a call. The money you save by not touching new roofs is as real as the money you make from the old ones, and it shows up faster.
Sequence the week so reps stay productive. A route built purely on age still wastes a rep's day if the Tier A houses are scattered across town. Cluster the knock list geographically inside each tier so a canvasser works a tight grid of high-probability doors instead of driving twenty minutes between good ones. The age data picks the houses; basic route density decides whether your rep gets thirty quality knocks in an afternoon or twelve. A green rep who knocks a dense block of genuinely-due roofs has real conversations, closes something, and comes back tomorrow. A rep sent on a sparse, low-probability route quits in three weeks. Targeting and routing together are a retention tool, not only a conversion tool.
Re-band the list on a cadence. Roofs age, imagery refreshes, and storms hit. A tier list built in spring is stale by next spring — Tier B roofs roll into Tier A, new re-roofs drop houses out of contention, and a summer hail event reshuffles everything in its path. Re-score on a regular cadence rather than treating the list as a one-time pull, or you will keep working a snapshot of a neighborhood that has moved on.
Edge cases that trip people up
A few situations break the standard read. Know them so they do not embarrass you at the door.
Tile, metal, and flat roofs
The color-fade and granule-loss cues are asphalt-shingle cues. Tile can sit for fifty years and look the same from the air while the underlayment beneath it fails on a normal shingle clock — the visible age tells you almost nothing about whether it needs work. Metal weathers differently (chalking, fade, rust at fasteners) and lasts far longer. Low-slope and flat membrane roofs show their age through ponding stains, seams, and patches, not granules. Do not apply the shingle playbook to a non-shingle roof.
Recently cleaned roofs
A roof that was just soft-washed to remove algae streaks can look years younger than it is in fresh imagery. If a roof looks suspiciously clean for its neighborhood and era, check historical imagery — you may catch the streaks in an earlier pass and the cleaning event in between. Cleaning resets the appearance clock, not the actual age.
Partial and slope-by-slope replacements
A roof where one plane is fresh and another is tired is not a single age. It often means a prior insurance job paid for the damaged slopes only, or a leak repair. This is a strong targeting signal — that homeowner has roof history — but do not band it as one number. Flag it as mixed and let the rep sort it out.
New construction and tract uniformity
A subdivision built all at once re-roofs all at once-ish, often clustered around a storm year. When you see a whole tract that looks the same age, your per-house reads are less independent than they look — one dated storm event may explain the entire block. Use historical imagery to find the cohort event rather than reading three hundred roofs as three hundred independent guesses.
Stale imagery
The imagery you are looking at has a date, and it might be three years old. A roof can be re-roofed, or wrecked by a storm, after the last imagery pass. Always note the imagery date, and treat the read as "age as of that date plus the years since." When the imagery is old, your confidence should drop, and a fresh storm in the gap is exactly the kind of thing imagery cannot have captured.
Solar panels and rooftop clutter
A roof covered in solar panels hides most of the field you would read for age, and it also tells you something: panels were usually installed on a roof the homeowner expected to keep a while, and reputable solar installs often go on a recently replaced roof. Read the exposed sections around the array, and weight the read toward "probably not ancient" unless the visible edges look shot. Skylights, large HVAC curbs on low-slope roofs, and heavy satellite-dish clutter similarly block field reads — work with the slopes you can see and lower your confidence accordingly.
Two roofs that share a wall
Townhomes, duplexes, and rowhouses can have one continuous roof across multiple owners or separate roofs that were replaced at different times. A crisp color seam running along a property line is a tell that one unit re-roofed and the neighbor did not. Do not assume a shared-wall building is one age; read each unit's plane separately, because the buying conversation is per owner.
A realistic accuracy expectation
Let's be straight about how good this gets, because overselling accuracy is how the whole approach loses credibility.
At the extremes, a careful imagery read plus records is very reliable. Distinguishing a clearly new roof from a clearly old roof is something a trained eye, or a well-built model, gets right the large majority of the time. That alone is enormously valuable, because the entire goal is to suppress the new ones and concentrate on the old ones.
In the mid-life middle, you are estimating a band, and the honest band is often plus or minus a few years. A roof you call "15-19" might truly be 13 or 21. That is fine — it is still squarely in "worth a mailer, maybe a knock" territory, and the action does not change much within that band. Trouble only comes when someone pretends the band is a point.
What you should expect:
- High reliability sorting roofs into new / mid / old buckets.
- Moderate precision on the exact band in the middle, expressed as a few-year range.
- Low reliability on anything imagery physically cannot see — decking, underlayment, interior leaks, very recent changes.
- Calibration-dependent accuracy: your method is only as honest as your ground-truth loop keeps it.
Set expectations there with your team and your homeowners and the data stays a trusted tool. Oversell it as exact and the first homeowner who knows their real re-roof date will torch your credibility.
Putting it together
The roofers who win the outbound game are not the ones with secret imagery. They are looking at the same Google, Bing, and county aerials as everyone else. They win because they have a method: they treat year built as a ceiling and never as the answer, they pull permits and listings as youth anchors, they read current imagery by comparing roofs against their neighbors instead of an imaginary standard, they scrub historical imagery to date re-roofs, and they write the result as an honest range with a confidence note instead of a fake exact date. Then they tier the list, suppress the new roofs, layer storm impact on top, and send crews to the doors where the conversation has somewhere to go.
That method works by hand on one street and falls apart across a territory, which is the whole reason age-and-condition scoring exists as a product category — to run the same logic across every roof in an area and keep it refreshed as imagery and storms change. RoofPredict is one way to do that: a roof-age range per address from aerial imagery, paired with storm physics modeled per roof, so you knock and mail the worn-out houses and skip the new ones. It is a probability sharpener, not a crystal ball — a range, not a date; odds a roof is worth inspecting, not proof of damage; a pointer to the right doors and the documentation to walk up with, while the homeowner and their carrier own whatever happens with a claim.
If you take one thing from all of this, make it this: roof age is the most useful number you can attach to an address, almost nobody on your street has it, and the public records actively mislead you about it. The contractor who builds an honest age range — by hand on a key street, or at scale across a whole area — and points the crew at the old roofs while suppressing the new ones is going to spend less and close more than the one mailing the entire ZIP and hoping. Know which roofs are due, and the rest of the sales motion gets a lot easier.
FAQ
Can you really estimate roof age from satellite imagery?
You can estimate a roof-age range, not an exact date. High-resolution aerial and oblique imagery shows weathering cues — color fading, algae streaking, granule loss, patches, sagging — that let a trained eye or a model sort roofs into new, mid-life, or old buckets reliably. The extremes are easy to call; the mid-life middle is a few-year range. Combine the imagery read with year built, permits, and historical imagery passes for the most accurate band.
Why can't I just use the year built from Zillow or the county?
Year built is when the house was constructed, not when the roof was last replaced. A 1995 home may be on its second or third roof, and re-roofs almost never update the public construction record. Year built only tells you the oldest a roof could be. Used alone it points you at homes that have most likely already re-roofed, which is backwards from what you want.
What is the difference between satellite and aerial imagery for this?
True satellite imagery is shot from orbit and is usually too coarse to read shingle condition. Aerial imagery is shot from planes at far higher resolution — often a few inches per pixel — and includes the angled oblique views where weathering shows up best. When roofers say 'satellite,' they usually mean the high-resolution aerial overhead and oblique images they can pull for an address.
What visual cues show a roof is old in an aerial photo?
Stack several cues: faded, blotchy, uneven color compared to fresh roofs in the same imagery pass; dark algae streaking; smooth, washed-out areas where granules have worn off, especially near valleys and bottom courses; tarps, patches, or mixed-color sections; and sagging or wavy roof planes. No single cue is conclusive — you compare against neighboring roofs and combine signals.
How accurate is a roof age estimate from imagery?
Sorting roofs into new, mid-life, and old buckets is highly reliable. The exact band in the middle is usually accurate within a few years — a roof called 15-19 years might truly be 13 or 21. Imagery cannot see decking, underlayment, interior leaks, or changes made after the imagery date. Accuracy stays honest only if you feed real inspection results back into your method to calibrate it.
What is the historical imagery 'time machine' trick?
Tools like Google Earth's historical slider and some county GIS portals let you scrub the same roof across multiple years of imagery. If a roof changes from old-and-streaked to fresh-and-dark between two passes, you have dated the re-roof to a tight window without any permit. If it looks the same tired shade across a decade, it is an old original roof. It is the highest-value, lowest-effort step and most contractors skip it.
Isn't this the same as an aerial measurement report like EagleView?
No. Aerial measurement reports tell you how big and what shape a roof is — squares, pitch, footprint — so you can quote and order material. They say nothing about the roof's age or whether the homeowner is anywhere near needing you. Measurement answers 'how big is this roof.' Age and condition scoring answers 'which roof should I even be standing on.' They are different categories.
How does roof age help after a storm?
A hail map shows where it hailed, not which roofs were worn out. Pairing per-roof storm impact with roof age tells you which damaged roofs were already near end-of-life — a straightforward inspection conversation — versus a new roof that took a few hits. It makes storm work surgical instead of carpet-knocking a whole ZIP. The storm read is odds a roof is worth inspecting, not proof of damage; someone still has to get on the roof and document it.
How do I turn an age estimate into who my crew knocks?
Tier the list by age band and confidence. High-confidence roofs around 18-plus years get knocked first with a condition-forward opener. Mid-life roofs get mailers and post-storm revisits. Roofs under about 10 years get suppressed from every channel. Layer storm impact on top to promote aged roofs that just took a hit. Give each rep one honest, range-based opener — no fake exact age and no promise of damage.
Does using this data put me at risk with insurance rules?
Not if you stay in your lane. Age and storm data point you at roofs to inspect and give you documentation of conditions to support an estimate. The roofer documents conditions and writes the estimate; the insurer decides coverage; the homeowner owns the claim. Do not file, handle, or negotiate the claim, do not promise approval or anything about deductibles, and never present a storm probability as proof of damage.
The Roofline by RoofPredict
Stay Ahead of Roofing Market Changes
Join The Roofline by RoofPredict for weekly roofing intelligence: material price signals, storm demand, insurance and regulatory updates, sales tactics, and local contractor opportunities.
Sources
- National Roofing Contractors Association — nrca.net
- Insurance Institute for Business & Home Safety (IBHS) — ibhs.org
- NOAA National Weather Service — weather.gov
- NOAA Storm Prediction Center — spc.noaa.gov
- NOAA National Centers for Environmental Information - Storm Events Database — ncdc.noaa.gov
- USGS EarthExplorer (aerial and satellite imagery) — usgs.gov
- USDA National Agriculture Imagery Program (NAIP) — arcgis.com
- International Code Council - International Residential Code (IRC) — iccsafe.org
- OSHA - Fall Protection in Residential Construction — osha.gov
- U.S. Census Bureau - Building Permits Survey — census.gov
- Federal Trade Commission - Advertising and Marketing Basics — ftc.gov
- Texas Department of Insurance - Roof Damage and Claims — tdi.texas.gov
- U.S. Bureau of Labor Statistics - Roofers Occupational Outlook — bls.gov
- RoofPredict — roofpredict.com
Related Articles
Drip Edge as a Code Item: How to Document and Estimate It So It Stays on the Roof
Drip edge is the line item crews most often forget and adjusters most often cut. Here is how to prove it's code-required, document it on the roof, and price it right.
Overhead and Profit (O&P) on a Roofing Insurance Estimate: What It Is and When It Belongs
A practitioner's breakdown of overhead and profit on roof insurance estimates: what the 10-and-10 actually pays for, when carriers owe it, how to document and justify it, and the line you can't cross.
How to Request a Reinspection on a Denied Roof Claim: What to Document
A denied roof claim is not the end of the road. Here is the documentation a roofer can put together so a reinspection is decided on facts, not on a five-minute glance from the ground.