Connecticut Payroll & Pension - State Employee and Retiree Pay avatar

Connecticut Payroll & Pension - State Employee and Retiree Pay

Pricing

from $0.03 / 1,000 connecticut payroll or pension records

Go to Apify Store
Connecticut Payroll & Pension - State Employee and Retiree Pay

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

Wenhao Yang

Maintained by Community

Actor 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 agency is complete - use agency for 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-10 and 2023-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.2M
Correction 2.5M