Our guy who does the stats for iScore does a pretty good job. His one downfall - or maybe it's the software? - is with stolen bases. Every time a runner tries to advance and is thrown out in any manner whatsoever, it shows up as a cs, so it looks like our stolen base percentage is ridiculously low and it looks like our catcher is a huge stud.
Can’t help ya with that one because I’ve never used IScore. I know it was a convoluted affair when I made my program account for them though.
One of the problems I had to overcome was something I see almost all inexperienced scorers do. FI, let’s say there’s a runner on 1st and 2nd and there’s a wild pitch allowing both runners to move up. Technically they both moved up because of the WP, but the program would count that as 2 WPs. One for the runner moved from 2nd to 3rd and another for the runner moving from 1st to 2nd. But the scoring rules don’t allow that.
OBR 10.13 (a) The official scorer shall charge a pitcher with a wild pitch when a legally delivered ball is so high, so wide or so low that the catcher does not stop and control the ball by ordinary effort, thereby permitting a runner or runners to advance.
I took the easy way out and move each runner individually. I move the most advanced runner on the WP and move the other(s) with the annotation “NR” meaning no reason. I could have also used a “FC’ for fielder’s choice, but since it’s only for me I didn’t bother. I also made provisions for a PO(straight pickoff), POCS(Runner is picked off but put out trying to advance which is a CS), and POSB(runner is picked off but makes it to the next base in the rundown) to allow a bit more flexibility.
I won’t put the knock on any other software, but those are just a couple reasons why I wrote my own.