Where does the income data come from?

The data are the most current income statistics from the US Census Bureau.

Most folks are familiar with the US Census Bureau's Decennial Census (2010) that sends a survey out to all (ideally!) US households. But what's not as well known, is that the US Census Bureau also collects data each year from a much smaller sample of US households. They use this annual data to produce a dataset called the American Community Survey.

The most current data available from the US Census Bureau for zip codes/ZCTAs is from a dataset called the 2014-2018 American Community Survey. The US Census Bureau has taken American Community Survey data collected in 2014, 2015, 2016, 2017 and 2018 and uses this data to produce demographic estimates for zip codes/ZCTAs for 2018.  When the Census Bureau collects income data in 2014 and then use that 2014 data to estimate the 2018 income, they adjust the income reported in 2014 to 2018 dollars to account for inflation.

At the bottom of all the zip code pages, there's a section called "About the Data" that has the full citations.

Furthermore, you can read the "Income in the Past 12 Months" section in the Census’ Subject Definitions document.