Have you wondered how Google calculates those sometimes kinda/sorta/maybe accurate estimated time of arrival quotes on Google Maps? Of course you have, I know I have and thanks to Quora and former ex-Google engineer Matt Laroche (via BGR), we have something of an answer:
Like in similar products, Google maps ETAs are based on a variety of things, depending on the data available in a particular area. These things range from official speed limits and recommended speeds, likely speeds derived from road types, historical average speed data over certain time periods (sometimes just averages, sometimes at particular times of day), actual travel times from previous users, and real-time traffic information. They mix data from whichever sources they have, and come up with the best prediction they can make.
Most companies who do live traffic compare their predictions against actual time in traffic to tune their algorithms and data sources. The likely result of this is that the companies who have access to the best usage data (ie those who are best able to compare their predictions against reality, which means those who have the most usage) are likely to end up with the best predictions in the medium to long term.
However, don’t expect the best predictions to be accurate any time soon. Calculating ETAs is a future-prediction problem, and traffic, while it follows certain patterns, is inherently unpredictable. Even if you had complete knowledge of current traffic conditions and known changes (eg roadworks starting or a football match finishing), there’s nothing that can predict a crash or a slow truck changing route.
So, to answer the sub-question in the question details: “Is it based on speed limits or actual travel time by previous users?” – the answer is “yes”. :-)