Yes, codes change across the years. There is just one “occ” variable. For example, run frequencies and some 3 digit occupational codes are left justified with one blank padding on the right. It would be helpful if all values were right justified and complete 4 digit (padded with zeros). Value labels particular to single-multiple year ACS samples would also help. The occ1990 is useful, but occ is far better for current useage.
Thank you for your comments. I believe you are using a multi-year file, since you mention that the codes change across years. Our OCC codes are based on the occupation codes in the original data, and our OCC codes change across years because the original occupation codes also change across years. Only the first three digits contained information prior to 2010, and so we dropped the ending zero. We retain all four digits starting in 2010 since the fourth offered additional detail beginning with that sample. You should find that codes are exclusively three digits or exclusively four digits within each MULTYEAR.
You can find labels for each occupation code here. Some occupation codes have different labels across different samples, and our system cannot produce different labels by sample. Further, most stats packages cannot accommodate multiple labels per value within each variable.