Why is the printed object smaller than original model?
Are you using the stock firmware of your printer? Sounds like to me that you have 16 tooth pulleys and your firmware is set to 20 tooth i.e. 80 steps per mm

The calculation behind the steps per mm is $\frac{\text{Steps per Revolution} \times Microsteps}{Teeth \times Pitch}$. The reason for this is that one revolution of the pulley will move the belt the number of teeth times the pitch of the belt. Now take the total number of steps, Steps per Revolution times microsteps, and divide by the distance moved giving the steps per mm.

In $\underline{most}$ hobby 3D printers you have:


1.8 degrees steppers which equals $\frac{360}{1.8}=200$ steps per revolution , Less common is 0.9 degrees steppers $\frac{360}{0.9}=400$
GT2 is the most common belts now which have a pitch of 2mm
The two most common pulleys are 16 tooth and 20 tooth, 
Depending on what stepper drivers and or configuration you have


A4988 $\to$ 16 microsteps
DRV8825 $\to$ 32 microsteps
Trinamic $\to$ 16-256 mircosteps



In your situation I believe you have a 1.8 degree stepper with 16 microsteps, a gt2 belt, and a 16 tooth pulley. Which means your XY steps per mm should be $\frac{200 \times 16}{16 \times 2} = 100$. While your firmware is expecting 20 tooth pulleys, yielding $\frac{200 \times 16}{20 \times 2} = 80$. This would result in your prints being $\frac{100-80}{100} = 20\%$ smaller, which explains your results with the circles.

Generalizing, the steppers, microsteps, and pitch don't matter. To go between 16 tooth pulleys to 20 tooth, multiply by $0.8=\frac{16}{20}$. From 20 tooth to 16 tooth, multiply by $1.25=\frac{20}{16}$.