After weighing the sample with the hhwt variable, the counts I get are 10-15% off from the aggregate tables in Factfinder.
There are two details to note about comparing city level populations using public use data with the aggregated statistics in American Fact Finder. First, as noted on the Comparability Tab, in ACS samples, the protocol used for the CITY variable is to identify the city in which the majority of each PUMA’s population resided. Therefore, where a city is identified, it indicates that, for the PUMA in which the household resided, a majority of the PUMA’s population resided in the identified city. So, a household might not in fact have resided in its identified city, but given its PUMA’s population distribution, it is likely that the household resided in the city. Second, even when identification protocols include less opportunity for error, we do not necessarily expect to exactly match the official statistics reported on American Fact Finder. This is because public use data is restricted in a number of ways relating to confidentiality and the American Fact Finder uses unrestricted data to calculate official statistics.