Interesting question, I’m hoping someone more qualified will step in but I’ll try anyway.
The easiest answer is that 100% of charge is when 204Wh (12V*17Ah) of energy can be drawn from the battery, and 0% is when 204Wh has been drawn. This of course requires a few assumptions, such as we ignore any aging affects and the battery is able to push reasonably large currents at near 12V (say 10.5V and above).
Maybe a more useful answer is that 100% corresponds to what a useful charger will say is charged, and 0% is the point at which most robots will no longer completely function (ie have difficulty driving/turning). Perhaps you could go one further and say 0% is when non-motor electronics start failing (such as the RoboRIO or the VRM) and have another point, say 10% which is when robots stop turning. ie 0% is when the robot can no longer “idle”. This one would require characterising some batteries in that you would need to find an amount of energy that you could draw before reaching this point.
An even simpler answer is that state of charge is just what a battery analyser such as the Battery Beak or the CBA will say. Does anyone know how the Battery Beak works out what it’s state of charge is?
Unless we can get an answer on how the CBA/Battery Beak defines state of charge, I’d suggest we go with the 0% - idle, 10% - motors, 100% - off chargers model for this discussion. Of course I’d be happy to be corrected by someone with a better understanding of lead acid batteries.