While a mechanical timepiece will never be as accurate as a battery operated quartz watch, reasonable accuracy can be obtained from a quality spring powered timepiece.
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 contemporary “dollar” watches with pin/pallet escapement will not be very reliable.
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 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). While some variation in rate may be observed over short periods of time, this is often smoothed out over a 24 hour period. Here again, the higher quality the watch, the easier it is to adjust for positions. High grade railroad watches will not very more than 10 seconds or so between 5 to 6 positions, while the lowly 7 jeweled watch typically will may 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.