For the most part, decoders all work OK. Some have different extra features to help get balky high current locomotives running, or to make the speed the same going up a hill, etc. In Z, we usually have to hunt down the responsible CV codes to turn off those features or our locomotives might take off like a rocket suddenly, run way too fast all the time, or not be able to fully stop. Then there are other features like the ability to add super cap inputs, which help a loco run while loosing electrical pickup, and keep lights from flickering. There's transponding and rail com which send pings out to tell special detectors where the locomotive is on our layout. Then there are extra lights, various special flashing light effects like ditch lights or beacons, and in larger decoders there is sound. So people often select decoders by the features they want. In Z, we often focus on the smallest size instead of features, but I look for the balance, and ease of programming. I avoid decoders that are difficult to program like Tran decoders, even though they have the smallest size. Turning off those special motor functions that turn Z Scale low current locomotives into ballistic mode rockets is a priority for me. And they can be difficult to find.