Shortest Day!

Today is the shortest day of the year. Today is also the day on which the sun enters Capricorn. This is not a coincidence. It is not really possible to calculate when the sun enters a particular Zodiac sign, so it was arbitrarily decided that it would be calculated from the day of the equinoxes and the solistices.
Now, Makara Sankranti is on January 14th. It is the day on which the sun enters the Makara Rashi (i.e., Capricorn) It is also the day on which Uttarayana is supposed to start – i.e, the northerly movement of the sun. So January 14th is supposed to be the shortest day according to the Hindu calendar.
What accounts for this descrepancy discrepancy of about 23 days?