While a mechanical timepiece will never be as accurate as a battery operated quartz watch, excellent accuracy can be obtained from a quality spring powered timepiece (depending on the quality of the movement of course).
In general a high grade watch will keep time within a few seconds a day. A medium grade watch will vary up to 20 seconds a day. A low grade watch may loose/gain several minutes a day. There are many factors that affect the quality of a watch, but the jewel count of a typical American made watch will usually be a good indicator of quality. Higher quality watches tend to have up to 23 jewels, medium 15-17 jewels. A watch with 7 jewels is considered average, and anything under 7 jewels is typical a poor time keeper. Also, older watches with older cylinder escapements, and “dollar” watches with pin/pallet escapement will not be very reliable. (These numbers are for time only watches…watches with complications such as calendars and automatic winding will have a higher jewel count)
There are other factors to be considered, including temperature, and isochronism (the ability to keep constant time throughout the wind cycle of the mainspring). The higher quality the watch, the better it can be adjusted for these variables.
Accuracy also depends on how the watch is worn (sometimes called a personal error). For example a pocket watch that is laying on your nightstand most of the time will run at a different rate than if you use it everyday (i.e. On its back or ‘dial up’ during the night, and ‘pendant up’ in your pocket most of the day). The same type of rate variation is observed for a wrist watch, although the positions are a bit different. While some variation in rate may be observed over short periods of time, this is often smoothed out over a 24 hour period as the watch is moved between positions. Here again, the higher quality the watch, the easier it is to adjust for positions. High grade watches will not very more than 10 seconds or so between 5 to 6 positions, while the 7 jeweled watch typically will vary up to 1 minute between the stem up and dial up positions.
And any watch that is not maintained well will loose it’s accuracy over the years. And of course as the bearing surfaces wear (worn jewels and pivots, and gear teeth), then the accuracy will also worsen as the piece ages. However I have seen high grade watches over 150 years old still keeping excellent time if they have been maintained well.