Weighted average for hours worked by occupation?

I am calculating average hours per workweek by occupation using 2016 ACS data for Oregon, employed workers only. That is, UHRSWORK for each OCC, where STATEFIP = 41 & EMPSTAT = 1.

I created a weighted average. I multiplied each person’s hours by PERWT, then summed these amounts for each occupation. Finally, I divided these totals by the total of PERWTs in each occupation.

Is this a good approach?

Yeah, although not seeing exactly the steps in this calculation, this sounds like a good approach. One way you can verify if you’ve done everything correctly, is to use the IPUMS USA online analysis tool. Since the statistics you are producing are relatively straightforward, you will be able to calculate these statistics using this tool. This might be a good idea, since even if your approach is correct, small errors can sometimes lead to big differences.