I would say your confusion comes from unrealistic expectations. Let’s break things down and compare them to some known averages, shall we?
You say your average position #3 in the search results, right? So let’s use the known statistics for the average CTR of position #3. The best data to ever be publicly released (leaked AOL data) shows that, on average, position #3 receives about 4.6% CTR. You are reporting 5%, so that puts you slightly above average. No apparent problem there.
Now the number of impressions could be different than you expected for a number of reasons. In your post, you did not mention if the search volume of 20k was global or local search volume. If it was global volume then that could easily be the reason you are seeing fewer impressions than you expected. There are other possible causes such as variances caused by personalized search results as well as geo-targeted local searches.