Reading Illinois Public Salary Data Without Losing Your Mind

The Illinois salary transparency portal spits out raw data that looks straightforward until you actually try to do something useful with it. I pulled the dataset last month for a compensation benchmarking project covering roughly 80,000 state employees across eighteen different agencies, and the first thing you need to understand is that the data is not clean. It never is. The core file is available as a CSV download directly from the Illinois Department of Central Management Services website, usually posted on a quarterly or semi-annual basis depending on their internal review cycle. The direct download link is always buried somewhere under the Open Government or Data Portal section rather than linked from the main page. When I need it, I search for "Illinois salary data" on the CMS portal, sort by date, and grab the most recent file. The file is typically around 120 to 160 megabytes depending on which quarter it is. Here is the practical structure of what you are working with. You get employee identifiers stripped of names, agency codes, job classification titles, annual base salary, step or grade placement, and sometimes overtime or bonus line items if they chose to include them. Each row is one employee at one point in time. That means if someone changed positions mid-year, you get two rows. If they worked multiple appointments, you might get three or four. A single engineer at the Illinois Department of Transportation could show up as five separate rows across a fiscal year report.

The field most people look at first is base salary, and the field most people get wrong is also base salary. What the database reports is the stated annual rate for a full-time position, but it does not capture the actual earnings in a meaningful way. A teacher on a 10-month contract shows the same annual figure as an employee on a 12-month contract, even though the monthly cash flow is fundamentally different. I once spent three days trying to build a compensation model where the numbers refused to align because I had not accounted for this before running regression analysis. The fix was straightforward once I found it: cross-reference the report dates against each employee's appointment duration code, which is included in the raw data but easy to miss if you are skimming the column headers. That code tells you whether the person is actually paid on a 9, 10, or 12-month basis. The second thing that trips people up is the aggregation problem. Job titles in the Illinois system are not standardized the way you would expect. "Programmer" and "Computer Programmer" and "Information Systems Programmer II" all appear as distinct categories even though they sit in the same pay band under the state's classification system. If you are grouping by title to find market rates, you need to map those variations yourself. I built a lookup table by pulling the official Illinois state job classification manual and matching each variant to its corresponding pay grade. That mapping exercise took about forty-five minutes and it completely changed the results of my analysis. One counter-intuitive pattern that shows up in this data is that higher base salary does not always correlate with higher total compensation when overtime and shift differentials are considered. I was looking at corrections and emergency services data and found that a significant portion of the actual take-home pay for those roles comes from differentials that are not captured in the base salary field at all. The database makes it easy to assume you are seeing the full picture when you are not. If you need total compensation for those types of roles, you have to layer in separate datasets from the respective agency budgets or use employee counts reported in their strategic plans to estimate the differential pool. It is not elegant but it works.

Another thing beginners miss is how the grade and step system skews your expectations. Illinois state pay uses a structured grid where each job class has a range with multiple steps. Moving from step five to step six might represent a two percent increase that looks meaningless in isolation. But if you are comparing across agencies, the step distribution tells you something about hiring conditions. Agencies that are newer or understaffed tend to have employees clustered at the lower steps because they are hiring into entry-level grades. Agencies with stable workforces show a flatter distribution across the middle steps. I used this pattern to flag which agencies were experiencing rapid growth or turnover during a period when I was tracking departmental expansion for a consulting project. The data has real limitations that you should factor into any analysis. The dataset does not include performance ratings, so you cannot tell whether high earners are outliers or typical for their class. It does not include geographic cost-of-living adjustments beyond the base pay grid, which matters if you are doing anything that compares Chicago-based positions to rural postings. It also lags by several weeks after the reporting period closes, so if you are using it for current hiring decisions, you are looking at data that is already stale. For those situations, I recommend supplementing with the Bureau of Labor Statistics data for Illinois metropolitan areas or checking individual agency career pages, which post salary ranges for open positions in real time. If you want to work with this data efficiently, skip trying to parse it in a spreadsheet beyond about fifteen thousand rows and move it into a lightweight database or Python environment immediately. The CSV parser in Excel handles small extracts fine but it will choke on date formats and embedded commas in job titles once the file gets large. I use a quick pandas import with explicit encoding and dtype specifications, which brings a full quarterly file down to load time in under thirty seconds on a standard laptop. From there, you can join, group, and cross-reference without fighting the software.

Get the Full Details

Salary Data - The Illinois Office of Comptroller
Salary Data - The Illinois Office of Comptroller

The download itself remains freely available to anyone. There is no paywall, no registration requirement, no need to submit a freedom of information request just to access the basic dataset. That openness is unusual compared to other states and it makes Illinois a relatively good case study for anyone working on public sector compensation transparency. The effort is not in getting the data. The effort is in recognizing what the data does not show you and adjusting your methodology accordingly before you present findings that look clean but are built on incomplete numbers.