+1 for Garmin swim I have been using it for about 2 years now and I am very happy with it. The two things to be aware of that the stroke rate is single arm and the length count require a good push off the wall to activate it:
Common reasons for a miss count include:
1. waiting at the wall to long between lengths (there is a pause feature for this)
2. Moving down the wall before starting your next length
3. Having to change stroke mid length because the swimmer you were about to overtake has decided to veer across the lane
4. Having to change stroke because the swimmer in front of you has decided to swim the second half of their length along the bottom of the pool and you are unsure of the etiquette.