Kolkata (22°34′N) is south of the Tropic of Cancer (23°26′N). Therefore, the sun is **never directly overhead at noon** in Kolkata. The original premise is geographically incorrect.
The sun reaches the zenith (90° altitude) at solar noon **only for locations between the Tropic of Cancer (23°26′N) and Tropic of Capricorn (23°26′S)**. This happens twice a year at each latitude—on the dates when the sun's declination equals that latitude.
Cities **on or near the Tropic of Cancer** (passes through 8 Indian states):
Ahmedabad *almost* gets zenith sun (within 25′). Kolkata *does not*. The source claiming both do is wrong. Delhi (28°41′N) is far north—never close.
Latitude determines zenith sun. Kolkata misses it by ~50 km. Check a map: Tropic of Cancer runs through Gujarat, Rajasthan, MP, Chhattisgarh, Jharkhand, West Bengal (north of Kolkata), Tripura, Mizoram. Kolkata is just south of the line.