Trend data with categorical independent variables

I have 4 time points (future timepoints will be added shortly) measured for each company (about n=150). Each company is associated with one of 20 regions which is associated with one of six cities. At each time point, a % injured is calculated that was converted to a specific rate. I think running a regression treating each company as an observation would work and using the time points as the independent variable. Is this correct? The main goal is to see if the rate decreases over time. However, a comparison of companies and regions is desired. I think running some sort of post hoc is way too much for 150 companies and even 20+ regions. To me, running a regression using the rates as y and time point as x makes sense using all 150 as n, but then how do I test to see which companies have differences or even region differences. Thank you very much.