Sounds right. Keep in mind that you pay for Bits per second and windows measures the speed in Bytes per second. So 31,000,000bps / 8 = 3,875,000Bps
Dividing 3875000 by 1024 to get KiloBytes = 3784.2KB
3784.2/1024 to get MegaBytes = 3.7MB
So 3.53 is certainly in the ballpark for the speed you pay for.