Skip to main content

How to Tell a Roof's Age From Aerial Imagery

Emily Crawford, Home Maintenance Editor··33 min readRoofing Technical Authority
On this page

Every roofing estimator has done the parking-lot math: you pull up to a street, eyeball a few roofs, and try to guess which homes are five years from a tear-off and which are twenty. From the ground you can only see the two slopes facing the road, and you're squinting through tree cover and glare. Aerial imagery flips that problem. From overhead you see the whole roof plane, the granule wear, the patch jobs, the moss line on the north slope, and the shadows that tell you how the roof actually sits. With practice, you can read a roof's age from a top-down image with surprising confidence, and you can do it for a thousand homes before you fill up your truck.

This guide is the working playbook I wish I'd had when I started reading roofs from imagery instead of from a ladder. It covers what aerial photos can and can't tell you about roof age, the specific visual signals that correlate with age, how to turn those signals into a defensible age range, the data sources and tools that make it scalable, and the mistakes that burn estimators who trust a pretty picture too much. We'll work through real examples, build a scoring checklist you can use tomorrow, and talk honestly about where this method breaks down.

One thing up front, because it matters for how you sell and how you stay out of trouble: aerial imagery gives you a roof-age range, not a birth certificate. You will not read "installed June 2014" off a satellite photo. What you can do is sort a neighborhood into "newer than 8 years," "probably 12 to 18," and "this thing is cooked," and that sorting is enough to decide which doors are worth knocking. Treat every estimate as a range, document why you landed where you did, and verify on site before you put a number on a contract. Do that and aerial age-reading becomes one of the highest-leverage skills in your sales operation.

Why roof age is the number that drives the whole sale

Before we get into pixels, it's worth being clear about why you'd bother. Roof age is the single best cheap predictor of whether a homeowner is a buyer right now.

Asphalt shingles, which cover the overwhelming majority of U.S. steep-slope residential roofs, are consumable. A standard 3-tab roof from the early 2000s was commonly sold on a 20-to-25-year warranty but in the field often gives 15 to 20 years of real service depending on climate, ventilation, and slope orientation. Architectural (dimensional/laminate) shingles, which took over the market through the 2000s and 2010s, carry longer warranties and typically deliver 20 to 30 years in moderate climates, less in high-heat or high-hail regions. The National Roofing Contractors Association is blunt that "lifespan" numbers are estimates that vary widely with installation quality, attic ventilation, and exposure, which is exactly why a range is the honest output.

What that means operationally: a roof installed around the time a home was built or last sold is a clock you can read. If you know a neighborhood went up in 1998 and the original roofs haven't been replaced, every one of those homes is on borrowed time. If you can tell from imagery which ones have been replaced and which haven't, you've just split a subdivision into "ready now" and "come back in three years" without leaving your desk.

Roof age also sets the conversation. A 22-year-old roof doesn't need a hard sell; it needs an honest inspection and a homeowner who understands what end-of-life looks like. A 6-year-old roof that took a hail core doesn't need an age pitch at all; it needs storm documentation. Knowing roughly how old the roof is before you knock tells you which conversation you're walking into.

What aerial imagery actually is (and why the type matters)

"Aerial imagery" is a loose term that covers several very different products, and the differences decide what you can and can't see. Reading age well starts with knowing which kind of picture you're looking at.

Satellite imagery

True satellite imagery (the base layer in most consumer mapping apps for rural and suburban areas) is captured from orbit, often by providers like Maxar/DigitalGlobe or Planet. Resolution for the best commercial satellites is roughly 30 to 50 cm per pixel. That's good enough to see a roof's shape, large patches, big tarps, and gross color differences, but not good enough to resolve individual shingle granule wear or small repairs. Satellite shots also tend to be older, less frequently refreshed, and captured at higher sun angles that flatten the texture you need for age reading.

Aerial (aircraft) orthoimagery

Most of the crisp "satellite" view you see over cities and suburbs is actually flown by aircraft at low altitude, then orthorectified (geometrically corrected so it's true top-down with consistent scale). Providers like Nearmap, Vexcel, EagleView, and Hexagon, plus government programs like USDA's National Agriculture Imagery Program (NAIP), fly this. Resolution commonly runs 7.5 cm to 30 cm per pixel. At 7.5 cm you can see granule loss, individual shingle courses, flashing, pipe boots, and small patches. This is the workhorse layer for age reading.

Oblique imagery

Oblique imagery is shot at an angle (typically ~40-45 degrees) from four compass directions, so you see the roof faces themselves, not only the top-down plane. EagleView and Nearmap both offer obliques. For age reading this is the most useful single view: you get to see the actual shingle surface the way you would from a cherry picker, including streaking, curling at the edges of slopes, and the condition of the slope that faces away from the sun.

Drone imagery

If you fly your own drone, you control resolution, angle, and timing. Sub-centimeter detail is achievable. The tradeoff is that drones don't scale; you're flying one roof at a time, which is great for the inspection step and useless for sorting a whole ZIP code. (And if you fly commercially, you're operating under FAA Part 107, which means a certificated remote pilot and airspace awareness.)

Historical imagery: the secret weapon

Here's the capability most estimators underuse. Several aerial providers maintain a time series: the same address flown every 6 to 12 months going back a decade or more. Nearmap, Vexcel, and EagleView all keep historical captures, and Google Earth Pro (free desktop app) has a "historical imagery" time slider that, while lower resolution, often goes back to the early 2000s.

Time-series imagery is the difference-maker because it lets you spot the event rather than only the current state. If a roof is dark and uniform in the April 2016 capture and bright and patch-free in the October 2016 capture, you've just bracketed a replacement to a six-month window. That's the closest thing to a real install date you'll ever get from the sky, and it's far more defensible than reading granule wear. We'll build a whole workflow around this below.

Imagery type Typical resolution Sees granule wear? Sees roof faces? Scales to a neighborhood? Best use
Satellite 30-50 cm/px No No Yes Gross sorting, rural
Aerial ortho 7.5-30 cm/px At 7.5-15 cm, yes No Yes Primary age reading
Oblique ~7.5-15 cm/px Yes Yes Yes (provider) Confirming condition
Drone <1 cm/px Yes Yes No Single-roof inspection
Historical series Varies Sometimes Sometimes Yes Bracketing the install date

The visual signals: how to actually read age from a top-down image

This is the core skill. None of these signals is decisive on its own; you're building a case from converging evidence, the way an appraiser does. I'll go through each signal, what it looks like from overhead, and how strongly it weighs.

1. Granule loss and color uniformity

Asphalt shingles are protected by mineral granules. As the roof ages, UV exposure, thermal cycling, and rain wash granules into the gutters. From a high-resolution top-down image, granule loss shows up as:

  • Lightening and color drift. A new architectural roof is deep and uniform: rich charcoal, weathered wood, slate gray. As granules thin, the darker asphalt mat partially shows through unevenly, and the roof reads lighter and blotchier. A roof that looks "faded" or "chalky" from above is usually past the halfway mark of its life.
  • Mottling and "salt-and-pepper" texture. Uneven granule loss creates a speckled look, lighter patches mixed with darker remnants. Fresh roofs are smooth-toned; mottling is a mid-to-late-life signal.
  • Shiny or dark streaks down the slope. Where granules are nearly gone, the exposed asphalt can look slightly glossy or very dark in raking light. Combined with mottling, this points to an aging roof.

Strength: High, when imagery is 7.5-15 cm and the sun angle gives you texture. Low when resolution is coarse or the shot is washed out at midday.

2. Streaking from algae (Gloeocapsa magma)

Those black streaks running down roofs are a cyanobacterium (commonly Gloeocapsa magma) feeding on limestone filler in the shingles. Streaking is extremely visible from above as dark vertical runs, usually heaviest on north- and shaded slopes.

The nuance: algae streaking correlates with time and moisture exposure, not strictly with shingle wear. A 10-year-old roof in a humid, shaded lot can be heavily streaked while a 15-year-old roof in dry full sun is clean. So streaking is a useful "this roof has been up a while and isn't new" signal, but it's a weak precise-age signal. It also raises a sales angle: heavy streaking is what homeowners notice and hate, which makes those roofs easier conversations even when structural life remains.

Strength: Medium as an age proxy; high as a "not-new" and "homeowner-motivated" signal.

3. Curling, cupping, and lifted edges

Late in life, shingles lose volatiles and the asphalt embrittles. Edges curl up (curling) or the center dishes (cupping). From straight overhead this is subtle, but it shows up as:

  • A roughened, irregular surface texture instead of clean parallel courses.
  • Shadow lines along shingle butts where edges have lifted (most readable when the sun is low).
  • A "shaggy" or "scaly" appearance, especially on 3-tab roofs near end of life.

This is where oblique imagery earns its keep, because curling is far more obvious from a 45-degree angle than from straight down. A roof showing clear curling from oblique view is typically in the last few years of its service life.

Strength: High for "end of life" classification, especially from obliques.

4. Patches, repairs, and mismatched shingles

A roof that's been partially repaired tells a story. From above you'll see:

  • Color-mismatched rectangles or strips where shingles were swapped after a leak or a few blown-off tabs. Even "matching" replacement shingles weather differently and read as a slightly different tone.
  • Tarps (blue/brown), which scream active leak and recent damage.
  • Reroof "lines" where one section was redone and the rest wasn't.

Patches complicate age reading because the roof is now a mix of ages. But they're a strong buying signal: a patched roof is a roof the homeowner has already paid to keep alive, which often means they're closer to accepting a full replacement.

Strength: High as a condition/intent signal; complicates pure age reading.

5. Multiple shingle layers (the overlay tell)

Many older homes have a second layer of shingles installed over the first (a practice the IRC limits and that many jurisdictions now restrict to no more than two layers). A roof with an overlay sits noticeably thicker, and from oblique imagery you can sometimes see a double shadow line at the eave and rake edges, or an unusually thick fascia/drip line.

Why it matters for age: an overlay means the visible shingle surface might be 12 years old while the structure underneath is 30+ years old and at the legal layer limit, so the next job is a full tear-off (more labor, more money, and often a homeowner who didn't realize it). Spotting overlay candidates from imagery flags higher-ticket jobs.

Strength: Medium-high, mostly via obliques and edge shadows.

6. Roof color and shingle generation

Shingle styles have generational fingerprints. Heavy 3-tab uniformity with crisp horizontal lines and no dimensional shadow suggests an older roof (3-tab dominated before architectural shingles took over). Strong dimensional shadowing and varied granule blends suggest a newer architectural roof. This won't give you a year, but "this is a 3-tab roof on a 1995 house with original-looking granules" is a strong aging signal, while "this is a crisp architectural roof on that same 1995 house" tells you it's been redone.

Strength: Medium, best combined with build-year data.

7. Flashing, vents, and accessory wear

Penetrations age visibly. Rusty or discolored flashing, deteriorated pipe-boot collars, and weathered ridge vents read as dark or corroded spots from above and indicate a roof that's been exposed for many seasons. New roofs have clean, uniform accessories. This is a corroborating signal more than a primary one.

Strength: Low-medium, corroborating.

8. Moss and vegetation (climate-dependent)

In the Pacific Northwest, Northeast, and other damp-shaded regions, moss colonizes aging roofs, especially on north slopes and under tree cover. Visible green moss mats from above indicate a roof that's both old enough and moist enough to host growth, and moss actively shortens roof life by holding water. In arid climates this signal is nearly absent, so weight it by region.

Strength: Medium in wet climates, near zero in dry ones.

Turning signals into a defensible age range

Reading individual signals is the easy part. The skill is combining them into a range you'd defend to a sales manager or, frankly, to a homeowner who asks "how do you know?" Here's the method I use.

Step 1: Anchor with the build/sale year

Start with hard data, not pixels. The roof age question is really "is this the original roof, or has it been replaced, and if so roughly when?" County assessor and parcel records give you the year the home was built and often the last sale date. Many counties publish this free; aggregators surface it too. Build year is your anchor:

  • If the house is from 1996 and the roof shows heavy aging signals consistent with original material, your range is "original roof, ~28 years, end of life."
  • If the house is from 1996 but the roof looks crisp and uniform, it's been redone, and now your job is to bracket when.

Build year alone is not roof age (this is the single biggest beginner error), but it bounds the problem.

Step 2: Bracket with historical imagery

This is the highest-value move and the one most estimators skip. Open the historical time series (Google Earth Pro slider, or a provider's history panel) and scrub backward. You're looking for the transition frame: the capture where the roof suddenly goes from aged/streaked/patched to clean/dark/uniform. That transition brackets the replacement.

Worked example: a home is built in 1994. In Google Earth Pro you scrub the slider:

  • 2007 capture: roof is dark, original-looking, some streaking starting.
  • 2013 capture: heavily streaked, mottled, clearly aged.
  • 2015 capture: bright, uniform, no streaking, sharp new dimensional shadows.
  • 2022 capture: still uniform, light streaking returning.

Conclusion: the roof was replaced between the 2013 and 2015 captures, so as of 2026 it's roughly 11-13 years old, mid-life, not a near-term tear-off but worth a storm check. That's a far tighter and more defensible range than you'd get from current granule wear alone, and it took ninety seconds.

When you can't find a transition (the roof looks aged in every historical frame going back to before the imagery starts), that itself is informative: the roof is older than your earliest capture and is very likely original. Combine with build year for the range.

Step 3: Score current condition

Now read the current high-res image (and oblique if available) for the eight signals above. I use a simple weighted tally:

Signal Newer (0) Mid (1) Aged (2)
Granule/color uniformity Deep, uniform Some mottling Faded, blotchy, shiny streaks
Algae streaking None Light Heavy north-slope streaks
Curling/cupping (oblique) Flat, crisp courses Slight roughness Clear curling/shadows
Patches/tarps None Minor repairs Tarps or major patching
Layers/overlay Single, normal edge Unclear Thick edge / double shadow
Accessory wear Clean Some discoloration Rusted flashing/boots
Moss (wet climates) None Spotting Mats present

Sum it. A roof scoring 0-3 reads "newer half of life." 4-8 reads "mid-life, inspect." 9+ reads "late life / end of life." Calibrate the thresholds to your market; a Phoenix roof and a Seattle roof age on different curves.

Step 4: Apply the climate and orientation modifier

Identical shingles age at very different rates depending on environment. Adjust your range:

  • High heat / high UV (Southwest, Gulf): roofs age faster; shave years off your estimate.
  • High hail frequency (Hail Alley: TX, OK, KS, CO, NE): roofs may have been replaced more recently due to storm claims, and surfaces wear faster. Lean on historical imagery here because replacement cycles are short and irregular.
  • Wet/shaded (PNW, Northeast): moss and algae accelerate; north slopes fail first.
  • Slope orientation: south- and west-facing slopes take the most sun and degrade first. If the sun-facing slope looks shot but the north slope looks decent, the roof is near end of life even if half of it photographs okay.

Step 5: Write the range, not the date

Your output should always be a band with a reason. "12-16 years, mid-life: historical imagery brackets replacement to 2010-2012, current granules mid-wear, light streaking, no curling." That's defensible. "Roof is 14 years old" is not, and it'll get you in trouble the first time you're wrong in front of a customer.

The neighborhood workflow: from imagery to a knock list

Reading one roof is a party trick. Reading a whole farm area and walking out with a prioritized door list is the actual business value. Here's the workflow that scales.

  1. Pick a target geography. Start with subdivisions of a known vintage. Tract neighborhoods built in a tight window (say 1999-2002) are ideal because the homes share an install clock; whichever roofs are still original are all aging out together.
  2. Pull parcel data for the area. Get build years and last-sale dates for every parcel. This is your anchor layer.
  3. Sort by "original-roof probability." Homes whose build year puts an original roof near or past end of life go to the top of the candidate list.
  4. Screen with current aerial. Open high-res ortho and quickly bin each candidate roof: clearly newer (skip or note for later), clearly aged (knock), ambiguous (check history).
  5. Bracket the ambiguous ones with historical imagery. Spend your time-series effort only where it changes the decision.
  6. Layer storm history. Cross-reference which roofs sit under recent significant hail or wind swaths (more on this below). A 9-year-old roof under a 2-inch hail core may be a better door than a 20-year-old roof that's never been hit, because the storm one has both motivation and a possible insurance path.
  7. Confirm condition on obliques. For your top doors, pull obliques to verify curling, patches, and slope-facing wear before you spend gas.
  8. Build the route. Sequence the confirmed doors geographically so the crew knocks efficiently.
  9. Verify on site. The imagery picked the door; the ladder confirms the age and condition before any number goes on paper.

That's the loop. The slow, manual version of it (assessor portal in one tab, Google Earth in another, a spreadsheet on the side) genuinely works and costs nothing but time. The bottleneck is step 5 and step 6 at scale: scrubbing history and overlaying storms across thousands of parcels by hand is where a person's day disappears.

Where RoofPredict fits

Everything above is doable by hand, and you should learn to do it by hand because it builds the judgment that keeps you from trusting bad pixels. But once you've read a few hundred roofs manually, the manual workflow stops being a skill and starts being a tax. Scrubbing historical imagery parcel by parcel, eyeballing granule wear, and then separately trying to figure out which roofs a storm actually worked over does not scale across a metro.

This is the problem RoofPredict was built for. It ranks roofs by which ones are due, address by address, so you spend your screening time on the doors most likely to convert instead of scrubbing imagery one parcel at a time. Two pieces of what it does map directly onto the manual method in this guide:

  • A roof-age range per address, from aerial imagery. Same idea as the manual read (anchor on build data, bracket with imagery, score condition), produced as a range across the parcels in your target area rather than one roof at a time. It's the screening step at neighborhood scale, so your manual judgment goes to the close decisions instead of the obvious ones.
  • Storm physics modeled per roof. Instead of "this ZIP got hail," it models the storm on each individual roof, accounting for where the energy actually landed, so your knock list reflects the roofs a storm likely wore out rather than every house inside a county-sized polygon. The slogan we use internally is "we model the storm on each roof, not only where it passed," and that distinction is the whole point: storm swaths are blunt, and a roof's exposure depends on its specific location, slope, and the storm's structure.

Put together, that's the same "age it, then weight it by storm" logic from the neighborhood workflow above, run across a whole market and ranked so the best doors float to the top.

Two honest limits, because you should hear them from me and not discover them the hard way. First, a roof-age range is still a range: RoofPredict narrows and prioritizes, it does not hand you a manufacture date, and you still verify on the ladder before you quote. Second, storm modeling is odds, not proof. Modeling that a roof was likely in a damaging hail core is a reason to inspect and document that specific roof; it is not, by itself, evidence that damage exists or that any claim should be paid. The homeowner owns their claim, the insurer decides coverage, and your job is to inspect honestly and document what's actually on the roof. Treat the data as a smarter way to decide where to point the truck, not as a verdict.

Layering storm history onto age (and staying honest about it)

Age tells you which roofs are tired. Storm history tells you which tired roofs (and which not-so-tired ones) have a near-term reason to act. Combining them is where the best knock lists come from.

The public backbone here is NOAA's Storm Prediction Center and National Weather Service storm reports, which log hail and wind events with size and location. IBHS (the Insurance Institute for Business & Home Safety) publishes excellent research on hail damage thresholds and roof performance. The crude approach is to draw a polygon around a reported storm and treat every roof inside as "hit." That's blunt and wrong at the edges, because real hail falls in streaks and cores, not uniform circles, and the damaging stones can miss half the homes inside a warning polygon.

This is exactly the gap between "where the storm passed" and "what the storm did to this roof." A reported 1.75-inch hail event might have dropped damaging stones on one side of a street and pea-sized hail on the other. Per-roof storm modeling exists to resolve that, and it's why the per-roof framing matters more than the polygon.

Two guardrails when you work the storm angle:

  1. Modeled exposure is a reason to inspect, never proof of damage. Whether a roof is actually damaged is determined on the roof, by a competent inspection, and whether anything is covered is determined by the insurer under the homeowner's policy. You document conditions and provide an estimate; you don't adjudicate claims, promise a covered roof, or promise to cover a deductible. State insurance regulators and the FTC take a dim view of contractors who blur those lines, and several states' departments of insurance (Texas's TDI among them) have explicit guidance on roofing-and-insurance conduct.
  2. Don't pitch the forecast as the damage. "Our model says you were in the hail core" is a reason to offer a free inspection. It is not "you have hail damage." Keep the forecast-as-odds and the on-roof-findings-as-evidence cleanly separated, in your pitch and on paper.

Get those two right and storm-layered age targeting is both more effective and more defensible than the old drive-the-neighborhood-after-a-storm approach.

Tools and data sources, ranked by what they're good for

Here's the practical stack, from free to paid, with what each is actually for.

Free / low-cost

  • Google Earth Pro (desktop). Free. The historical imagery slider is the single best free tool for bracketing replacements. Lower resolution than paid aerial, but the time series is the killer feature.
  • County assessor / parcel portals. Free. Build year, last sale, square footage, sometimes permit history. Your anchor data.
  • County permit records. Underused. A pulled reroof permit is the closest thing to a documented install date that exists. Many counties have searchable permit databases; a reroof permit in 2019 settles the age question outright. (Not every reroof is permitted, so absence of a permit isn't proof of an old roof.)
  • USDA NAIP imagery. Free aerial, refreshed every couple of years, decent resolution for gross screening over wide rural areas.
  • NOAA SPC / NWS storm reports. Free hail and wind event data for the storm layer.
  • Nearmap. Frequent recaptures (multiple times per year in many metros), high-res ortho and oblique, strong historical archive. Good for both screening and condition.
  • EagleView. Known for measurement reports and obliques; widely used in roofing for ordering accurate roof measurements off imagery.
  • Vexcel. High-res aerial with a deep historical library, including post-storm "gray sky" captures flown shortly after major events, which are genuinely useful for storm work.
  • Hexagon / others. Regional aerial providers with similar capabilities.

Roofing-specific intelligence

  • RoofPredict. Ranks roofs by which are due (age range per address from aerial imagery) and models storm physics per roof, so the screening-and-storm-weighting steps run at metro scale and surface a prioritized door list. Sits on top of the imagery layer rather than replacing your on-site verification.

A reasonable starter stack that costs almost nothing: parcel portal + permit search + Google Earth Pro + NWS storm reports. Add a paid aerial subscription when your volume justifies it, and add per-roof ranking when manual screening becomes your bottleneck rather than your skill-builder.

Worked examples

Let's run three roofs end to end so the method is concrete.

Example A: The obvious tear-off

  • Parcel: Built 1997, last sold 2003, no reroof permit on file.
  • Current ortho (10 cm): Faded, blotchy granules; heavy black streaking on the north slope; visible mismatched patch near a valley.
  • Oblique: Clear curling along the south-slope butts; rusted pipe boots.
  • Historical (Google Earth): Roof looks aged and progressively streakier in every capture back to 2005; no transition frame.
  • Read: Original 1997 roof, ~27 years, late life. Score 11/14. No bracket needed; history confirms no replacement. Range: 25-28 years, end of life. Top-priority door.

Example B: The deceiver

  • Parcel: Built 1992, last sold 2016.
  • Current ortho: Crisp, dark, uniform architectural shingles; sharp dimensional shadows; no streaking.
  • Historical: 2014 capture shows an aged, streaked roof; 2017 capture shows the current clean roof.
  • Read: Roof was replaced 2014-2017, almost certainly at or just after the 2016 sale (common: buyers or sellers reroof at transaction). As of 2026, roughly 9-11 years old, mid-life. Build year (1992) would have fooled you into a tear-off pitch; history saved you. Action: not an age door; check storm history before knocking.

Example C: The storm wildcard

  • Parcel: Built 2011, original-looking roof, only ~13 years on the shingles.
  • Current ortho: Mostly uniform but with a faint dimpled, bruised texture on the west slope; a few small dark spots.
  • Storm layer: NWS reports a 2.25-inch hail event two miles away last spring; per-roof modeling suggests this address sat near the damaging core, while the next street over likely got smaller stones.
  • Read: Young roof, so not an age play. But modeled storm exposure plus a suspicious surface texture makes this a high-value inspection (not a damage claim, an inspection). Document what's actually on the roof; let the homeowner and insurer take it from there. Action: knock, inspect, document honestly.

Notice that the three best doors came from three different signals: pure age (A), corrected age via history (B avoided wasting a knock), and storm exposure on a young roof (C). A good targeting system weighs all three.

Common mistakes that burn estimators

The failure modes here are predictable. Avoid these and you're ahead of most of the people reading roofs from a screen.

  1. Treating build year as roof age. The number-one error. A 30-year-old house can have a 2-year-old roof. Always check for a replacement before you assume original.
  2. Trusting a single washed-out image. Midday, high-sun captures flatten texture and hide granule wear and curling. If the only image you have is blown out, get a different capture date or an oblique before you classify.
  3. Reading only the sun-facing slope. The slope you can see from the street and the slope that ages fastest may not be the same. North slopes hide algae and moss; south/west slopes hide the worst UV wear. Read all slopes.
  4. Ignoring stale imagery. That "current" satellite layer might be four years old. A roof can be replaced or destroyed in four years. Check the capture date before you rely on it.
  5. Confusing shadow, staining, or solar panels with damage or wear. Tree shadows mimic streaking; chimney shadows mimic patches; a clean rectangle might be a removed skylight, not a repair. Solar arrays hide the roof underneath entirely. Sanity-check ambiguous features against another angle or date.
  6. Skipping permit records. A two-minute permit search can settle an age question that you'd otherwise spend ten minutes guessing at from pixels.
  7. Selling the forecast as proof. Modeled storm exposure is a reason to inspect. The moment you tell a homeowner they "have damage" or are getting "a free roof" before anyone has been on the roof, you've crossed from sales into a compliance problem. Inspect first, document, stay in your lane.
  8. One image, one verdict. Age reading is a convergence-of-evidence exercise. Any single signal can mislead; the range comes from stacking parcel data, history, current condition, and climate. Don't bet a pitch on one pixel pattern.

A field-ready checklist

Print this. Run it on every roof before it goes on a knock list.

  • Pulled build year and last-sale date from parcel data.
  • Searched county permit records for a reroof permit.
  • Confirmed the capture date of the "current" image (is it actually recent?).
  • Scrubbed historical imagery for a replacement transition frame.
  • Read all roof slopes, not only the street-facing one.
  • Scored current condition (granules, streaking, curling, patches, layers, accessories, moss).
  • Applied the climate/orientation modifier for the region.
  • Cross-checked storm history for the parcel (and per-roof exposure if available).
  • Wrote the output as a range with a reason, not a date.
  • Flagged the door for on-site verification before any quote.

Material-by-material: age reading isn't one-size-fits-all

Everything above leans on asphalt shingles because that's most of the residential market. But you'll work plenty of roofs that aren't asphalt, and each material ages differently from the air. Misreading the material is one more way to blow an age estimate, so here's how the common ones present overhead.

Asphalt 3-tab vs. architectural

Worth separating because they age on different curves and photograph differently. 3-tab roofs show crisp, repetitive horizontal lines with no dimensional shadow, a flat uniform plane. They were the budget standard for decades and dominated through the 1990s, so a 3-tab roof on an older home is very often original. They also tend to fail sooner (often 15-20 years of real service) and show curling and granule loss earlier. Architectural/laminate shingles have a varied, layered look with real dimensional shadowing from above; they took over the market through the 2000s. A crisp architectural roof on a 1990s house is almost always a replacement, which is a useful instant tell.

Wood shake and shingle

Wood roofs read as a warm, irregular, plank-like texture from above, and they age toward gray as the wood weathers. From oblique you'll see splitting, cupping, and missing shakes. Heavy moss is common and very visible. Wood roofs have largely been phased out in wildfire-prone regions and by many insurers, so an aging wood roof is frequently both a replacement candidate and an insurability conversation. Age reading here leans more on weathering color and missing/curled pieces than on granules (there are none).

Tile (clay and concrete)

Tile is the trap. Clay and concrete tile roofs can last 50+ years, and the tiles themselves barely age in a way you can read from the sky. But the underlayment beneath them typically lasts only 20-30 years, and that's what actually fails. So a tile roof that looks pristine from above can still be due for an underlayment replacement (a tear-and-reset, which is labor-heavy and high-ticket). From imagery you can spot cracked or slipped tiles, color fade on concrete tile, and patch areas, but you cannot read underlayment age at all. For tile, lean hard on build year and permit history, and treat the imagery as condition-only.

Metal

Standing-seam and metal-panel roofs read as long, clean, parallel lines with strong specular glare (they can look almost white where they catch the sun). They last 40-70 years, so age-out targeting mostly doesn't apply; what you're watching for is rust streaking, fastener-line staining on exposed-fastener systems, oil-canning, and storm dents from oblique. Metal is more often a storm-and-condition conversation than an age conversation.

Flat / low-slope (modified bitumen, TPO, EPDM)

On residential you'll hit these on additions, porches, and modern flat-roof designs. From above they read as smooth, seamed membranes. Age signals are ponding stains, blistering, seam separation, and patch coverage. These run on shorter cycles (often 15-25 years) and the failure is usually at seams and flashings, which obliques read better than top-down.

Material Typical service life Best age signal from air Imagery limitation
Asphalt 3-tab 15-20 yr Granules, curling, streaking Needs hi-res
Asphalt architectural 20-30 yr Granules, mottling, generation tell Needs hi-res
Wood shake 20-40 yr Graying, splits, missing pieces, moss No granules to read
Tile (clay/concrete) 50+ yr (tile), 20-30 yr (underlayment) Cracked/slipped tiles only Can't read underlayment age
Metal 40-70 yr Rust, fastener stains, dents Age rarely the play
Flat/low-slope 15-25 yr Ponding, blisters, seam/patch Top-down hides seams

The practical takeaway: match your age-reading method to the material. Granule-and-streak reading is an asphalt skill. For tile and metal, the imagery is mostly a condition and storm tool, and your age anchor shifts almost entirely to parcel and permit data.

How sun angle, season, and capture conditions change what you see

Two captures of the same roof, taken months apart, can tell different stories. If you read imagery seriously, you have to read the conditions of the capture, not only the roof.

Sun angle and time of day. Low-angle sun (morning, evening, or winter captures) rakes across the roof and throws shadows that reveal texture: curled shingle butts, lifted edges, uneven planes, blistering. High-angle midday sun flattens everything and washes out color, hiding exactly the wear you're hunting for. If a roof looks suspiciously pristine, check whether you're looking at a blown-out high-noon summer capture, then find a lower-angle one before you classify it as new.

Season. Winter and early-spring captures in northern climates can carry snow, frost, or wet-darkened surfaces that mask granule color and streaking. A rain-soaked roof photographs darker and more uniform than the same roof dry, which can make an aged roof look newer than it is. Deciduous tree cover also changes by season: a summer capture may hide a third of the roof under leaf canopy that a winter capture reveals. When tree cover blocks a slope, find a leaf-off capture or an oblique from a clear direction.

Shadows that lie. Chimneys, dormers, adjacent trees, and neighboring two-stories throw shadows that mimic patches, streaking, or damage. A long tree shadow down a slope looks a lot like algae streaking until you check a different time of day and watch it move. Train yourself to ask "is that on the roof or above it?" for any dark feature, and confirm against a second capture date or angle.

Resolution and provider. A 30 cm satellite pixel and a 7.5 cm aerial pixel are different instruments. Don't try to read granule wear off coarse imagery; you'll invent detail that isn't there. Match the claim to the resolution: coarse imagery is for gross sorting (shape, big patches, tarps), high-res ortho and obliques are for condition.

Capture recency. Bears repeating because it's the quiet killer: every image has a date, and the "current" base layer in a free mapping app can be years stale. A roof can be reroofed, storm-destroyed, or tarped in the gap. Before any image drives a decision, know when it was flown.

The discipline here is simple to state and easy to skip: treat each image as evidence with metadata. A confident read off a bad capture is worse than no read, because it sends a crew to the wrong door with false certainty.

The honest limits of reading roofs from the sky

I'll close where I opened, because it's the thing that keeps you credible. Aerial imagery is a screening and prioritization tool. It is outstanding at sorting a market into "ready," "soon," and "not yet," and at telling you where to point the truck. It is not a substitute for getting on the roof.

What imagery cannot reliably tell you: the true manufacture date, the exact remaining service life, whether the decking is sound, the condition of the underlayment and flashing details, whether prior repairs were done correctly, or whether storm marks on the surface are functional damage or cosmetic. Those are ladder-and-eyes questions. Anyone selling aerial reads as a replacement for inspection is overselling, and homeowners can smell it.

Used correctly, though, the leverage is real. You can read a thousand roofs from your desk, bracket replacements to within a year or two using historical imagery, weight the list by per-roof storm exposure, and walk out with a route of doors where the conversation is going to land, before you've burned a tank of gas. The estimators who win the next decade are the ones who treat imagery as the front of the funnel and their on-roof expertise as the close, and who are scrupulously honest about which is which.

Read the roofs from above. Verify them from the ladder. Sell the ones that are actually due. That's the whole game, and now you have the playbook to run it.

If you want the screening-and-storm-weighting steps to run across your whole market instead of one parcel at a time, that's what RoofPredict does: a roof-age range per address from aerial imagery, storm physics modeled per roof, ranked so the doors most likely to be due rise to the top of your list. It points the truck; you still climb the ladder. See how it ranks your market at https://roofpredict.com/.

FAQ

Can you really tell a roof's exact age from aerial imagery?

No. Aerial imagery gives you a defensible age range, not an install date. You can confidently sort roofs into bands like 'newer than 8 years,' 'mid-life 12-18,' or 'end of life,' and historical time-series imagery can bracket a replacement to within a year or two by spotting the capture where the roof goes from aged to new. But the true manufacture date comes from permit records or an on-site verification, not from a photo.

What resolution of aerial imagery do I need to read roof age?

For granule wear, curling, and small patches you want high-resolution aerial orthoimagery at roughly 7.5 to 15 cm per pixel, which is what providers like Nearmap, Vexcel, and EagleView fly. Coarse satellite imagery at 30 to 50 cm per pixel is only good for gross sorting: roof shape, big tarps, and large patches. Don't try to read shingle wear off coarse imagery or you'll invent detail that isn't there.

What visual signals indicate an older roof from above?

The main signals are faded or blotchy granule color, salt-and-pepper mottling, shiny exposed-asphalt streaks, heavy black algae streaking (especially on north slopes), curling or cupping shingles (best seen on oblique imagery), color-mismatched patches, tarps, rusted flashing and pipe boots, and moss in wet climates. No single signal is decisive; you build a case from several converging signals plus parcel and historical data.

Does the home's build year tell me the roof's age?

Only as a starting anchor, not as the answer. A 30-year-old house can have a 2-year-old roof. Treating build year as roof age is the single most common mistake. Use build year and last-sale date to bound the problem, then check historical imagery and permit records to determine whether and when the roof was actually replaced.

How does historical aerial imagery help estimate roof age?

Historical time-series imagery lets you scrub backward through captures and find the transition frame where a roof suddenly goes from aged and streaked to clean, dark, and uniform. That transition brackets the replacement to the window between two capture dates. Google Earth Pro's free historical slider often reaches back to the early 2000s, and paid providers keep deeper, higher-resolution archives.

What's the difference between 'where a storm passed' and per-roof storm modeling?

A storm warning polygon or a hail report is blunt: it treats every roof inside a large area as equally hit. Real hail falls in streaks and cores, so damaging stones can hit one side of a street and miss the other. Per-roof storm modeling estimates the storm's energy on each individual roof based on its location and the storm's structure, which produces a far more accurate sense of which roofs were likely worn out versus which sat at the edge of the event.

Can aerial imagery prove a roof has storm damage?

No, and you should never present it that way. Modeled storm exposure is a reason to offer an inspection, not proof of damage. Whether functional damage exists is determined on the roof by a competent inspection, and whether anything is covered is determined by the insurer under the homeowner's policy. The contractor documents conditions and provides an estimate; the homeowner owns the claim and the insurer decides coverage.

How do different roofing materials change aerial age reading?

Granule and streak reading is an asphalt-shingle skill. Wood roofs are read by graying, splits, and missing shakes. Tile is a trap: the tiles can last 50+ years while the underlayment beneath fails at 20-30 years, and you can't see underlayment from the air, so lean on permit and build data. Metal lasts 40-70 years, so it's usually a condition-and-storm conversation rather than an age one. Match your method to the material.

Does oblique imagery help more than top-down for age?

For some signals, yes. Curling, cupping, lifted shingle edges, overlay thickness at the eaves, and slope-facing wear are far more visible from a 40-45 degree oblique than from straight overhead. Top-down orthoimagery is better for granule color, mottling, and patch layout. Pros use both: ortho to screen, oblique to confirm condition before spending gas.

How can I read roof age across a whole neighborhood instead of one house at a time?

Anchor on parcel build and sale data for the whole area, screen current high-res aerial to bin roofs as newer, aged, or ambiguous, bracket the ambiguous ones with historical imagery, then layer storm exposure to prioritize. Doing this by hand works but is slow at scale. Tools like RoofPredict run the screening and per-roof storm weighting across a whole market and rank the addresses most likely to be due, so your manual judgment goes to the close calls and the on-site verification.

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.

By signing up, you agree to receive The Roofline by RoofPredict. Unsubscribe anytime.

Sources

  1. Roofing Materials and Their Service Lifenrca.net
  2. Hail Damage to Asphalt Shingle Roofs — IBHS Researchibhs.org
  3. NOAA Storm Prediction Center — Storm Reportsspc.noaa.gov
  4. National Weather Service — Severe Weather & Hailweather.gov
  5. USDA National Agriculture Imagery Program (NAIP)arcgis.com
  6. FAA Part 107 — Small Unmanned Aircraft (Drone) Rulesfaa.gov
  7. International Residential Code (IRC) — Roof Covering Provisionsiccsafe.org
  8. Texas Department of Insurance — Roof Damage and Insurancetdi.texas.gov
  9. FTC — Advertising and Marketing Guidance for Businessesftc.gov
  10. U.S. Census Bureau — Characteristics of New Housingcensus.gov
  11. EPA — Algae and Moss Growth on Roofs (Heat Island Resources)epa.gov
  12. USGS EarthExplorer — Aerial and Satellite Imagery Archiveusgs.gov
  13. NWS Storm Prediction Center — Severe Hail Climatologyspc.noaa.gov
  14. RoofPredictroofpredict.com

Related Articles