Connecticut Payroll & Pension - State Employee and Retiree Pay
Pricing
from $0.03 / 1,000 connecticut payroll or pension records
Connecticut Payroll & Pension - State Employee and Retiree Pay
Connecticut state employee payroll (29.9M rows, 2015-today) and open pension (8.15M rows, 2014-today) as public open data: agency, department, job, union, hire and termination dates, overtime and gross pay; plus tier, retirement type and pension wage. Filter by name, agency, union, year or amount.
Pricing
from $0.03 / 1,000 connecticut payroll or pension records
Rating
0.0
(0)
Developer
Wenhao Yang
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
Two registers of Connecticut state pay, straight from the State's open data:
- Payroll - 29.9 million rows, calendar 2010 to today (the source's own title says 2015; the file opens in 2010). One row per employee per pay period.
- Pension - 8.15 million rows, 2014 to today. One row per retiree per monthly pension payment.
Low cost
From $0.00005 per record, down to $0.00003 at Gold. Pay only for the records you actually receive - both registers stay queryable, you are never billed for the scan behind it.
What you get
Payroll (corpus="payroll", the default):
- The agency, the sub-department and the State's own job code
- The union and the full-time / part-time split
- Original hire date and termination date
- The whole money breakdown: annual rate, bi-weekly rate, salaries and wages, overtime, fringe, other pay, and total gross
- The employee's home city, ZIP and state
Pension (corpus="pension"):
- The retirement plan and tier - SERS, Teachers, MERS, Judges
- Why they are drawing - service, hazardous duty, disability, vested rights
- The bargaining unit, the retirement type code
- The pension wage paid that period
- The retiree's residence state (5.9M still in Connecticut; 805K in Florida)
Filter it
- By name -
lastName="Smith"works on both registers. - By agency -
agency="University of Connecticut"(5.2M payroll rows),"Correction"(2.5M),"Transportation". - By job -
jobCode="CorrectionOfficer". - By union - on either register.
- By retirement type -
retireTypeDescription="Hazardous Duty". - Where retirees live -
retirementState="FL". - By year, pay-date range, last-N-days and amount range.
Or roll it up
Set mode=aggregate for a server-side count by agency, department,
job indicator, check status or year on payroll; by tier,
bargaining unit, retirement type or residence state on pension.
Every group comes back - this mode is not cut off by maxResults.
Example inputs
Overtime at the Department of Correction - payroll rows for one agency.
{ "corpus": "payroll", "agency": "Correction", "year": 2025, "maxResults": 50 }
A retiree's pension payments - name filters work on both registers.
{ "corpus": "pension", "lastName": "DUGAN", "maxResults": 50 }
Pensions drawn on hazardous duty
{ "corpus": "pension", "retireTypeDescription": "Hazardous Duty", "maxResults": 50 }
Where retirees live - one row per state.
{ "mode": "aggregate", "corpus": "pension", "groupBy": "retirementState" }
Then answer real questions
- What does overtime cost the Department of Correction in a year?
- Which agency grew headcount, and which shrank?
- What is the age of the State's pension payroll by tier?
- How many Connecticut retirees draw a pension while living in another state?
- Who is a named individual state employee, and what are they paid?
Notes on the data, from the source
- The two registers cannot be joined to each other. Both carry a hashed employee id, and they are different hash spaces - sampling five ids from each and cross-querying both ways gives 0 of 10 matches, verified. They are offered side by side because they describe the same workforce at two ends of a career, not because they link.
- Department is only populated from 2024 onward (5.0M of 29.9M payroll
rows, 17%). For 2023 and earlier it is entirely blank while
agencyis complete - useagencyfor a filter that spans the whole register. - Refunds and adjustments are in here. 12,793 payroll rows are negative - the deepest is -$4,705,475.86, and in calendar 2026 alone they run to -$124,657.73 across 339 rows. Pension wage reaches -$404,282.72 (4,959 negative rows). Leave the minimum amount blank to include them, or set 0.01 for payments only.
checkStatus="R"marks 11,010 payroll rows as reversals - payments that were taken back.- The termination date is free text in two shapes (
2025-05-10and2023-08-11 00:00:00.0), exactly as the State holds it. - Some retirees are listed as
UNDISCLOSED- that is the State's own redaction, not a missing value.
Example output
One pension payment - corpus=pension, lastName=DUGAN returns payments
like the one below:
{"platform": "ct-payroll-pension","source": "ct-open-pension","mode": "rows","groupKey": "","groupCount": "","groupBy": "","firstName": "CARIANN","middleInitial": "P","lastName": "DUGAN","nameSuffix": "","employerAgency": "","employerDepartment": "","deptId": "","jobCode": "","employeeClass": "","jobIndicator": "","fullPart": "","unionDescription": "Correctional Officers (NP-4)","annualRate": "","biWeeklyRate": "","salariesWages": "","overtime": "","fringe": "","otherPay": "","totalGross": "","sersAmount": "","arpAmount": "","teachersAmount": "","judgesAmount": "","checkNumber": "","checkDate": "2026-08-31T00:00:00.000","checkOption": "","checkStatus": "","originalHireDate": "","terminationDate": "","city": "","postal": "","state": "NC","tierDescription": "SERS - TIER2","bargainingUnit": "08","retireType": "7","retireTypeDescription": "Hazardous Duty","pensionWage": "6491.77","payEndDate": "2026-08-31T00:00:00.000","corpus": "pension","calendarYear": "","fiscalYear": "","balanceYear": "2026","sourceUpdatedAt": "2026-09-02"}
mode=aggregate, corpus=payroll, groupBy=agency - the largest employers,
largest first:
University of Connecticut 5.2MCorrection 2.5M