Average age of passenger cars and light trucks in the United States since 1995. The gray area represents the possible variance of the trend line with 95% confidence.
In the last 16 years, there is a clear trend showing that people hold on to their cars and trucks longer than in the past. Two factors come to mind: 1) a less robust economy and 2) better made vehicles.
There are numerous sources of data which have indicated a poor economy in recent years. If this were true, then only recently would we see a trend in the average age of cars increasing. This is because the cars have to age first which obviously takes time. Although more pronounced in the light truck category, we do indeed see this trend starting around 2008. To the degree in which the economy improves, we should see a corresponding drop in the average age of cars.
Are vehicles better made? That is a separate question and requires a graph in its own right. However, a cursory internet search reveals that the overall dependability of newer vehicles is indeed better than in years past. For more information on this, visit http://jdpower.com/ for dependability ratings.
1) The average age trend is upward - will this continue if we have an economic boom?
2) A previous graph shows that the transportation sector is growing faster than any other - how will this affect the average age of vehicles?
3) The author's vehicle is nine years old - will he keep it another nine?
This graph was generated using the 'ggplot2' package within the R programming language:
ggplot(car.age.frame, aes(Year)) + geom_line(aes(y = Passenger.Cars, colour = "Passenger Cars"), size=1.1) + geom_line(aes(y = Light.Trucks, colour = "Light Trucks"), size=1.1) + geom_smooth(aes(y = Passenger.Cars, colour = "Passenger Cars"), size=1.1, method="lm", na.rm=FALSE) + geom_smooth(aes(y = Light.Trucks, colour = "Light Trucks"), size=1.1, method="lm", na.rm=FALSE) + ylab("Average Age") + xlab("Year") + opts(title="United States Average Vehicle Age", legend.title = theme_blank(), panel.background = theme_blank())