ACS retirement imputations

IPUMS reports 999999 for some adults who do not report retirement income, but only for people who are not typical retirement age.

For adults 65+ there are no 9999999 values and no missing observations, but there are many $0, so many that it must be wrong (compared to administrative data like IRS SOI totals). It seems more likely that a lot of respondents left ‘retirement income’ blank (missing) than that every single respondent reported $0 or greater. Can it be that non reporting among 65+ is immediately cataloged as $0 instead of imputed? That contradicts the editing procedure notes for the variable incretir :

If retirement earnings ([INCRETIR]) is missing, it will be allocated from someone with a similar value for race, age, marital status, if they worked last year, and if they received social security income. If that does not result in allocated values, the allocated values will be drawn from someone with similar sex and age.

The universe for INCRETIR is persons age 15 and older. Only persons under the age of 15 (and a very small number of people over the age of 15 whose ages were allocated as per QAGE) have values of 999999 for INCRETIR. You can crosstab INCRETIR with QINCRETI to see how many of the 0 values were unaltered versus allocated for persons aged 65 and older (I get about 10% when pooling all years of ACS data). I am not familiar with IRS data, but wonder if those totals include social security income; social security income is not included in INCRETIR (this is available through INCSS).

Thank you for the quick response and for running a quick crosstab yourself.