Flashing failure
A roof almost never gives out in the open field. It gives out at the transitions — where shingle meets chimney, wall, or vent — because those joints depend on metal flashing and sealant, and on the Front Range the daily temperature swing works every one of those joints season after season.
Why the joints go first
Metal expands and contracts more than the shingle around it, so every hard swing between warm afternoon and freezing night shifts the flashing a fraction against its sealant. The sealant, meanwhile, is ageing in the same altitude sun that ages the shingles. The joint that was watertight for fifteen years opens a hairline, and the leak that follows shows up indoors somewhere else entirely — water travels along framing before it drips.
This is also the honest reason “the roof leaks” and “the roof is worn out” are different diagnoses. A failed step flashing on a mid-life roof is a flashing problem; the same failure on a covering that is brittle and granule-bare is the roof telling you its age. Distinguishing the two is most of what a good inspection is for.