That’s still small but bigger than I see (with PLA).
I’m wondering if it might be something else though. I use Fusion for my design work and when outputting stl files there is always an option to set “refinement” which is just how close it approximates what you draw. Other programs probably have something similar since it is an important function.
What it does is trade off between file size (number of triangles used to approximate your model as an stl file), and how closely it follows the shape/walls. With convex curves like a sphere, those approximations would produce some geometric figure that fits inside the model’s outer envelope. If you can see facets on your sphere, that is likely a refinement setting not being tuned up enough and could also explain the slightly smaller models.
If they average out those deviations with some parts outside the envelope with an equal number inside the above could be bogus too.
I expect print accuracy to be about 0.2-0.4 mm, but ABS and other high temperature filaments are prone to shrinkage. You can compensate for shrinkage in the filament profile:
Be aware that compensation can produce exact outside dimensions, or exact inside dimensions, but usually one will be more accurate than the other.
2.5% is high for ABS, but not out of the expected.
It should only be measurable in X and Y, not in Z, else you have different problems.
As first defense you can try using the “Shrinkage” control in the filament section. I’ve found you need to followup with small adjustments to XY-contour/XY-hole as well but you gotta feel that out from fitment.
As an aside, if you use a GF or CF impregnated ABS, it should eliminate the VAST majority of shrinkage.