Every chart the Connecticut town pages have in common — what it plots, and which dataset it needs to draw.
The Connecticut town pages on this site are built from shared chart bodies, reading the same statewide files. 66 charts live in 9 shared bodies, each drawing the subject town’s own row out of a statewide dataset. A body ships on every town page that includes it — 168 or all 169, since Colchester keeps hand-built pages of its own on most of these subjects; each section below gives its own count. This page lists what each chart plots, what data has to exist for it to draw, and where to download that data.
The catalog is generated from the shared bodies at build time, so it cannot drift from the site. A chart’s title, description and source note here are the ones its town pages print; the dataset behind it is matched from the identifiers that source note names.
One row per file the browser fetches. Coverage is the range the file itself carries — where a chart’s years look short, this table is usually why.
| Dataset | Published by | Coverage | Towns | Charts | File |
|---|---|---|---|---|---|
Municipal Fiscal Indicators/data/ct_ucoa_town_indicators.json
|
CT Office of Policy and Management — Municipal Fiscal Indicators (Uniform Chart of Accounts program) ej6f-y2wf | FY 13-14 – FY 22-23 | 170 | 31 | 408 KB |
EdSight enrollment and staffing/data/towns/<town>/edsight_history.json
|
Connecticut State Department of Education (EdSight) source | 2007-08 – 2025-26 | one file per town | 15 | see below |
Adopted municipal budgets/data/ct_adopted_budgets.json
|
CT Office of Policy and Management — Summary Financial Information from Adopted Municipal Budgets pcg4-s5rc | 2022–2026 | 169 | 8 | 491 KB |
District staffing and administration spending/data/edsight/administration.json
|
— | — | national | 7 | 669 KB |
Net grand list by class/data/ct_grand_list_classes.json
|
CT Office of Policy and Management — Net Grand List by Town webp-fgt3 | 2011–2024 | 169 | 6 | 667 KB |
Mill rates/data/ct_mill_rates.json
|
CT Office of Policy and Management — Mill Rates emyx-j53e | 2014–2026 | 169 | 5 | 305 KB |
School results, demographics and need-weighted spending/data/school_performance_page.json
|
— | — | 169 | 5 | 885 KB |
Equalized grand list and levy/data/ct_equalized_rates.json
|
CT Office of Policy and Management | 2019–2026 | 169 | 4 | 403 KB |
ACS income, population, home value/data/ct_town_income.json
|
US Census Bureau, American Community Survey 5-year estimates source | 2021–2024 | 169 | 4 | 127 KB |
Consumer prices (CPI-U)/data/us_cpi_u.json
|
U.S. Bureau of Labor Statistics — Consumer Price Index for All Urban Consumers (CPI-U), U.S. city average, all items, not seasonally adjusted source | 2000–2025 | national | 3 | 2 KB |
Spending by function (UCOA)/data/ct_ucoa_function_totals.json
|
CT Office of Policy and Management — Municipal Fiscal Indicators, Uniform Chart of Accounts e2qt-k238 | FY 19-20 – FY 22-23 | 168 | 2 | 715 KB |
Statutory state aid, incl. ECS/data/ct_statutory_aid.json
|
CT Office of Policy and Management — Estimates of Statutory Aid to Municipalities sdcm-adr4 | 2025–2027 | 169 | 2 | 334 KB |
Revaluation schedule and sales ratios/data/ct_revaluation.json
|
CT Office of Policy and Management | 2011–2024 | 169 | 2 | 365 KB |
Parcel records: what a revaluation did/data/towns/<town>/revaluation_detail.json
|
CT Office of Policy and Management, parcel and CAMA data | — | one file per town | 2 | see below |
Tax-exempt share of assessed property (OPM indicators)/data/ct_tax_exempt_share.json
|
CT Office of Policy and Management, Municipal Finance Services xgef-f6jp | 2020–2023 | 169 | 1 | 55 KB |
Establishments and jobs (QCEW)/data/ct_qcew_towns.json
|
Connecticut Department of Labor, Office of Research — Quarterly Census of Employment and Wages (QCEW) 7zu6-8dcr | 2000–2016 | 169 | 1 | 799 KB |
ACS households and occupancy/data/ct_town_households.json
|
US Census Bureau, American Community Survey 5-year estimates | 2009–2024 | 169 | 1 | 923 KB |
Rule-based peer sets/data/towns/<town>/peer_sets.json
|
CT Office of Policy and Management — Municipal Fiscal Indicators (Uniform Chart of Accounts program) ej6f-y2wf | FY 22-23 (OPM fiscal_year_end 2023) | one file per town | 1 | see below |
Two files are not one statewide table: enrollment and staffing, and the rule-based peer sets, are written one file per town, and the coverage shown is the one every town’s file carries. Consumer prices are national. Enrollment and staffing are filed by school district, which is not always the same thing as a town. The Municipal Fiscal Indicators file carries 170 rows rather than 169: Groton (city) files with the state separately from the town of Groton, and the charts that count or rank all towns leave that row out, so the same place is not counted twice.
Every file these charts read is plain JSON served from this site — no API, no key, no login. Download one, and you can check any figure on any town page yourself, or build something else with it.
One file covering every town. These are the same files the pages fetch; the table above links each one, with its size.
/data/ct_ucoa_town_indicators.json /data/ct_adopted_budgets.json /data/edsight/administration.json /data/ct_grand_list_classes.json /data/ct_mill_rates.json /data/school_performance_page.json /data/ct_equalized_rates.json /data/ct_town_income.json /data/us_cpi_u.json /data/ct_ucoa_function_totals.json /data/ct_statutory_aid.json /data/ct_revaluation.json /data/ct_tax_exempt_share.json /data/ct_qcew_towns.json /data/ct_town_households.json Some data is written a town at a time. Pick a town to get its files; the path pattern is /data/towns/<town>/<file>, so they can also be fetched in a loop.
/data/towns/andover/edsight_history.json /data/towns/andover/peer_sets.json /data/towns/andover/revaluation_detail.json /data/towns/andover/sales_history.json /data/towns/andover/ucoa_function_detail.json /data/towns/andover/ucoa_indicators.json A file missing for a town is missing on purpose: Colchester’s peer sets, sales history and function detail are not published, because its pages on those subjects are hand-built from its own budget books rather than from the statewide table. Every file carries a metadata block naming its source, the script that produced it, and the caveats that come with it. Reuse is welcome; please cite the state agency that published the underlying data, not this site.
Type a word from a chart title, a canvas id, a dataset name or a field name. Without JavaScript the full list below is already complete.
Audited year-end expenditures by fiscal year, in millions of dollars. Education expenditures and municipal operating expenditures are the two components of total expenditures, so the full height of each bar is that year’s total spending. Nominal dollars, not adjusted for inflation.
Source: CT OPM Municipal Fiscal Indicators, ej6f-y2wf (education_expenditures, operating_expenditures, total_expenditures). Audited actuals. See the recipe at the bottom of this page.
Each series is set to 100 in the first fiscal year shown, so the three can be compared on one scale regardless of their size in dollars. A value of 130 means that series stands 30 percent above its own starting level.
Source: CT OPM Municipal Fiscal Indicators, ej6f-y2wf (total_expenditures, operating_expenditures, education_expenditures), each indexed to its own first reported year.
The same expenditures divided by the town’s population that year, split into the education and municipal shares. This adjusts for a changing number of residents but not for inflation.
Source: CT OPM Municipal Fiscal Indicators, ej6f-y2wf (education_expenditures and operating_expenditures, each ÷ population_state_dept_of_public_health).
Two different measures of the same town, drawn as separate bars and never combined. The adopted bar is total expenditures a town appropriates in its general fund for the year ahead. The audited actual bar is total expenditures across all governmental funds at year end. The audited series ends earlier, because audits are filed after a year closes while budgets are adopted before it opens. Nominal dollars, not adjusted for inflation.
Sources (two, on different bases): adopted — CT OPM Summary Financial Information from Adopted Municipal Budgets, pcg4-s5rc (total_expenditures, by fiscal_period_of_budget, where the budget year ends June 30 of the year shown); audited — CT OPM Municipal Fiscal Indicators, ej6f-y2wf (total_expenditures). The two fields share a name and do not share a definition.
Each bar is one adopted budget year, split into the five revenue categories the state collects. Each segment is that category divided by the same year’s total adopted revenue, so every bar totals 100 percent and the years can be compared regardless of budget size. A category the source leaves blank is one the town budgeted nothing in that year, and the categories it does report still account for the full 100 percent.
Source: CT OPM Summary Financial Information from Adopted Municipal Budgets, pcg4-s5rc (property_tax_revenue, revenues_from_state_of_ct, revenues_from_federal, use_of_fund_balance and all_other_revenue, each ÷ total_revenue for the same budget year). Adopted budget only — a different basis from the audited actuals charted earlier on this page.
Total audited expenditures, with every town rescaled to 100 in the first year the state reports, so towns of very different sizes can be compared on growth alone. Each thin grey line is one surrounding town; the dashed line is the group median; the heavy line is this town. Higher means faster cumulative growth. Nominal dollars — not adjusted for inflation, population or enrollment.
Source: CT OPM Municipal Fiscal Indicators, ej6f-y2wf (total_expenditures), each town’s series divided by its own first-year value. The dashed median line is the median of the individual index lines shown behind it — the middle town’s cumulative growth in each year, not the growth of any one town across all years.
The same measure and the same construction, against the state’s demographic peer group instead of the geographic neighbors. Total audited expenditures, each town rescaled to 100 in the first reported year.
Source: CT OPM Municipal Fiscal Indicators, ej6f-y2wf (total_expenditures), indexed per town. Group membership: CT State Department of Education District Reference Groups, 2006 assignment.
Operating expenditures — total spending minus education — indexed to 100 in the first reported year. This is the town-government side of the budget: public works, public safety, general government, land use, libraries, parks.
Source: CT OPM Municipal Fiscal Indicators, ej6f-y2wf (operating_expenditures). Each town’s own series is indexed to 100 at its first reported year; the two dashed lines are the median taken across the peer towns’ indexed series, year by year. Group medians exclude the subject town.
Education expenditures only, indexed to 100 in the first reported year. On this all-funds basis education includes state and federal grants that pass through the town’s books, so it is larger than the locally appropriated school budget.
Source: CT OPM Municipal Fiscal Indicators, ej6f-y2wf (education_expenditures). Each town’s own series is indexed to 100 at its first reported year; the two dashed lines are the median taken across the peer towns’ indexed series, year by year. Group medians exclude the subject town. Towns that belong to a regional school district book their education costs differently from towns that run their own schools; that affects comparisons on this measure.
Total audited expenditures divided by population, each year. Where the charts above show how fast spending grew, this one shows the level — how many dollars were spent per resident. It moves when spending changes and when population changes.
Source: CT OPM Municipal Fiscal Indicators, ej6f-y2wf (total_expenditures ÷ population_state_dept_of_public_health). Nominal dollars, not inflation-adjusted. Population is the CT Department of Public Health estimate carried in the same dataset.
Every town in both peer groups, sorted from lowest to highest spending per resident in the most recent year the state reports. Bar color marks which group a town belongs to.
Source: CT OPM Municipal Fiscal Indicators, ej6f-y2wf (total_expenditures ÷ population_state_dept_of_public_health), most recent reported fiscal year. Towns the source does not report for that year are omitted rather than charted at zero. Differences between towns reflect what services a town delivers directly as well as how much it spends: education arrangements, regional districts, fire and ambulance service, water and sewer authorities all vary from town to town.
Education expenditures divided by total expenditures, each year. A share can move because education spending changed, because everything else changed, or both — the chart does not separate the three.
Source: CT OPM Municipal Fiscal Indicators, ej6f-y2wf (education_expenditures ÷ total_expenditures). Each peer town’s own share is computed first; the two dashed lines are the median taken across those shares, year by year. Group medians exclude the subject town. All-funds basis, so grant-funded education spending is included in both the numerator and the total.
Education expenditures divided by average enrollment, each year, against the median of the surrounding towns and the median of the District Reference Group peers. This is a division of two OPM fields — it is not the state Department of Education’s published Net Current Expenditures Per Pupil, which is compiled on a different basis and is not shown on this page. The line moves when spending changes, when enrollment changes, or both. Nominal dollars, not adjusted for inflation.
Source: CT OPM Municipal Fiscal Indicators, ej6f-y2wf (education_expenditures ÷ school_enrollment_average). The denominator is average membership — the average number of students on the rolls across the year — not the single-day October headcount the state Department of Education reports. Each peer town’s own per-pupil figure is computed first; the two dashed lines are the median taken across those per-town figures, year by year, and exclude the subject town. Derived per-pupil, not CSDE Net Current Expenditures Per Pupil. Towns belonging to a regional school district for some or all grades report spending for the grades they run themselves, so their per-pupil figures are not on the same basis as a town running its own district across every grade.
Percent change in derived per-pupil spending between each town’s own first and last reported year. The source drops whole town-years, so a town’s span can be shorter than the axis of the chart above; each bar names the years it was measured over when hovered. Nominal dollars, not adjusted for inflation.
Source: CT OPM Municipal Fiscal Indicators, ej6f-y2wf (education_expenditures ÷ school_enrollment_average), each town indexed off its own first and last reported values rather than off fixed endpoints. Derived per-pupil, not CSDE Net Current Expenditures Per Pupil. Regional-district towns report the grades they run themselves, so their per-pupil basis differs from that of a town running its own district across every grade. A change in this measure can come from the spending side, the enrollment side, or both; the chart does not separate them.
Every town in both peer groups, sorted from lowest to highest derived per-pupil spending in the most recent year the state reports. Bar color marks which group a town belongs to.
Source: CT OPM Municipal Fiscal Indicators, ej6f-y2wf (education_expenditures ÷ school_enrollment_average), most recent reported fiscal year. The denominator is average membership — the average number of students on the rolls across the year — not the single-day October headcount the state Department of Education reports. Towns the source does not report both fields for in that year are omitted rather than charted at zero. Derived per-pupil, not CSDE Net Current Expenditures Per Pupil. Towns in a regional school district for some or all grades report only the grades they run, so their bars are not on the same basis as a town running its own district across every grade; district size, grade span, transportation distance and special-education needs also differ from town to town.
One point per town that reports both figures: median household income on the horizontal axis, derived per-pupil spending on the vertical axis. The subject town is marked, the two peer groups are colored, and every other town is shown in grey for context. The dashed line is a least-squares fit through the points.
Source: vertical axis — CT OPM Municipal Fiscal Indicators, ej6f-y2wf (education_expenditures ÷ school_enrollment_average), most recent reported fiscal year. Horizontal axis — US Census Bureau American Community Survey 5-year estimates, table B19013 (median_household_income), most recent release carried in /data/ct_town_income.json. The two axes come from different sources on different year bases: the spending figure is a single audited fiscal year, while an ACS 5-year estimate pools five calendar years and is expressed in dollars of its release year, so the two are not aligned in time and the chart does not claim they are. The dashed line is a least-squares fit describing the pattern across the towns plotted; it is a description of those points, not a prediction for any town and not evidence that either measure causes the other. ACS figures carry margins of error that are not shown here. Derived per-pupil, not CSDE Net Current Expenditures Per Pupil; regional-district towns report only the grades they run.
Education expenditures divided by total expenditures, each year, against both peer medians. A share can move because education spending changed, because everything else changed, or both — the chart does not separate the three.
Source: CT OPM Municipal Fiscal Indicators, ej6f-y2wf (education_expenditures ÷ total_expenditures). Each peer town’s own share is computed first; the two dashed lines are the median taken across those shares, year by year, and exclude the subject town. This is an all-funds figure: state and federal education grants are counted in the education number and in the total alike. Those grants are not part of the adopted general-fund budget, so this share is not comparable to the education share of the budget a town adopts, which is a different measure and is not shown here.
The state’s Education Cost Sharing grant divided by average enrollment, for the subject town and both peer groups. Education Cost Sharing is a state education grant distributed to municipalities under Conn. Gen. Stat. § 10-262h, and one component of a town’s intergovernmental revenue rather than the whole of it. The dataset behind this chart carries only a few fiscal years — the insight box below names them — which supports a comparison of the current estimate across towns and does not support a trend; no trend is shown or implied here.
Source: numerator — CT OPM, Estimates of Statutory Aid to Municipalities, sdcm-adr4 (education_cost_sharing). These are OPM estimates of statutory aid, not audited receipts; a town’s books can differ and the estimate is revised. The dataset carries only a few fiscal years and no education-aid history beyond them — the insight box below names them — so it supports a current-year comparison rather than a trend. Education Cost Sharing is one component of intergovernmental revenue, not the whole of it. Denominator — CT OPM Municipal Fiscal Indicators, ej6f-y2wf (school_enrollment_average). The two datasets do not cover the same fiscal years; the insight box names the aid year and the enrollment year separately rather than implying they match. Regional-district towns and towns running their own districts count students differently for this purpose, and the grant is set by a statutory formula that is not a per-pupil rate.
Each line is set to 100 in the first school year its district reports both figures, so the chart shows movement from a common starting point rather than counts. Enrollment is the October 1 count. Staffing is every assignment category the state reports for that district, added together, in full-time equivalent positions. The two series are shown side by side over the same school years; the chart does not establish that either one caused the other.
Source: CT State Department of Education, EdSight — the enrollment dashboard (enrollment.total_enrollment, the October 1 count) and the FTE staffing report (the fte value of every category under fte_staffing.categories, summed). Read one school year at a time. FTE staffing is reported by the district that employs the staff, so a district’s line covers only the positions that district employs. A school year the source has no row for is a gap, left as a break in the line rather than plotted as zero.
One bar per school year for the district this town runs itself, each bar drawn to full height, so the bars show how the reported positions divide up rather than how many there are. A segment can widen when that group’s own count rises, when another group’s falls, or both. The groups combine the state’s own assignment categories; the source note names every category in each group.
Source: CT State Department of Education, EdSight FTE staffing report (the fte value of each category under fte_staffing.categories, as a share of the same year’s reported total). Read one school year at a time. Category names are the state’s own and their wording has changed over the years covered; the grouping below is this site’s editorial decision and the file makes no grouping of its own. A category with no row in a given year is a gap in the source rather than a zero, so a year missing a category is a share of the categories that year reports.
Percent change from each group’s own first reported year for the district this town runs itself, in four of the groups shown in the chart above: administrators, coordinators and department chairs; general education teachers; special education teachers; and instructional specialists who support teachers. The other groups the state reports for this district are not charted here — the insight box below names them, and the composition chart above shows every group. The flat line at zero marks the starting level. A line above it means more reported positions than in the base year, a line below it means fewer. The administrator line combines two of the state’s own categories, named word for word in the source note.
Source: CT State Department of Education, EdSight FTE staffing report (the fte value of the categories under fte_staffing.categories named here: ). Read one school year at a time. Combining the two administrator categories into one line is this site’s editorial decision; the state reports them separately. Percent change is computed off each group’s own first reported year, and the insight box names those years. A group is a count of positions, not of people or of spending, and it says nothing about what those positions are paid.
The October 1 enrollment count divided by the reported full-time equivalent positions in the state’s general education teacher category, school year by school year. This is not a class size. It is a ratio of two reported totals; it leaves out special education teachers, paraprofessionals and every other category, and it does not account for how positions are deployed across buildings, grades, subjects or programs.
Source: numerator — CT State Department of Education, EdSight enrollment dashboard (enrollment.total_enrollment, the October 1 count). Denominator — EdSight FTE staffing report (the fte value of the general education teacher category under fte_staffing.categories). Read one school year at a time. Both figures come from the same district and the same school year, and both are reported by the district that employs the staff. This ratio is not a class size, not an average class size, and not a figure the state publishes; the state does not report class sizes here and this page does not estimate them.
This town's equalized mill rate against the median of its surrounding towns and the median of its DRG peer group, for every fiscal year OPM reports. The equalized rate is used here because it is not reset by a revaluation.
Source: CT OPM Municipal Fiscal Indicators (ej6f-y2wf), field equalized_mill_rate, from data.ct.gov. Peer lines are the median of each group, not a total or an average. This town is excluded from its own group medians.
The rate the town posts each year, against the median of the posted rates in its surrounding towns and in its DRG peer group. This series runs to , later than the audited-actuals file behind the equalized chart above, so the most recent years here have no equalized counterpart on this page. This is not a burden trend. A posted rate steps down in the year a revaluation takes effect without the tax burden changing, and the peer medians are medians of other towns' posted rates, so the distance between the lines moves with where each town sits in its revaluation cycle as well as with tax decisions. The equalized chart above is the comparable one.
Source: CT OPM Mill Rates (emyx-j53e), fields real_estate_personal and grand_list_year, from data.ct.gov, as packaged in /data/ct_mill_rates.json. Peer lines are the median of each group's own posted rates, not a ratio of medians; this town is excluded from its own group medians. Where OPM files a rate of zero, that town-year is carried as missing rather than charted as zero; some of those gaps are filled from OPM's adopted-budget summary (pcg4-s5rc), and every filled cell names that dataset in the payload. Where this file and the Municipal Fiscal Indicators file disagree on a town-year, both figures are published in the payload metadata and neither is silently preferred.
Each peer town's posted (nominal) mill rate next to its equalized rate for the most recent fiscal year OPM reports, sorted by equalized rate. The two differ because a town's nominal rate steps down in the year it revalues — assessments rise, so the same tax levy needs fewer mills — while the equalized rate restates every town's rate against market value. The equalized rate is the one that can be compared across towns. Bars are colored by group: this town, its surrounding towns, and its DRG peers.
Source: CT OPM Municipal Fiscal Indicators (ej6f-y2wf), fields mill_rate_real_estate_personal (nominal) and equalized_mill_rate, from data.ct.gov. Towns with no equalized rate reported for this year are omitted.
Each peer town's posted real-estate mill rate for , the most recent year the rate file publishes, lowest first. This is a later year than the equalized chart above can reach. Read it as posted rates, not as relative tax burden: each town's rate is laid against its own grand list, and a town that revalued recently posts a lower rate for the same levy than a town that has not. The nominal-vs-equalized chart above is the like-for-like comparison. Bars are colored by group: this town, its surrounding towns, and its DRG peers.
Source: CT OPM Mill Rates (emyx-j53e), fields real_estate_personal and grand_list_year, from data.ct.gov, as packaged in /data/ct_mill_rates.json. Peer towns with no rate published for this year are omitted. Hover a bar for the October 1 grand list the rate is laid against. Some cells in this file are filled from OPM's adopted-budget summary (pcg4-s5rc), and every filled cell names that dataset in the payload. Where this file and the Municipal Fiscal Indicators file disagree on a town-year, both figures are published in the payload metadata and neither is silently preferred.
Every town in the state ranked by equalized mill rate for the most recent fiscal year OPM reports, lowest rate first. Bars are shaded light to dark by quartile of rate level, which is a scale and not a rating; this town's bar carries a dark border and its label is bold. Hover any bar for that town's nominal rate and its revaluation factor (equalized ÷ nominal). A statewide ranking does not hold income, density, or service mix constant, so it is context rather than a like-for-like comparison — the peer chart above is the closer comparison.
Source: CT OPM Municipal Fiscal Indicators (ej6f-y2wf), fields equalized_mill_rate and mill_rate_real_estate_personal, from data.ct.gov. Groton (City) is excluded: it is a sub-municipality reported separately from Groton and has no equalized rate reported. Towns with no equalized rate reported for this year are also omitted, so the count of ranked towns can be below 169. A revaluation factor near 0.70 indicates a grand list set at a recent revaluation; a lower factor indicates market values have risen since the town last revalued, a higher factor that they have fallen.
What the town's taxable property is made of, as a share of the assessed value on each grand list. Residential covers houses and apartments; commercial covers commercial, industrial and public-utility property; land is vacant, land-use and ten-mill land; then registered motor vehicles and business personal property.
Source: CT OPM Net Grand List by Town (webp-fgt3), fields residential, commercial, land, motor_vehicle, personal and class_total, from data.ct.gov. Shares are taken against class_total — the five classes summed — and not against net_grand_list.
The assessed value of property that pays no property tax — owned by the state, by the town itself, or by colleges, hospitals, religious bodies and other nonprofits — as a share of all assessed property in the town, exempt and taxable together, on each October 1 grand list. The dashed lines are the medians of the surrounding towns, of the DRG peer towns and of every Connecticut town.
Source: CT OPM Municipal Fiscal Indicators: Economic and Grand List Data (xgef-f6jp), metrics Tax exempt property assessment and Total exempt and taxable property assessment, from data.ct.gov, packaged as tax_exempt_share_pct in /data/ct_tax_exempt_share.json, an extract of the whole dataset at /data/ct_grand_list_indicators.json. Both figures are assessed value on the October 1 grand list named on the axis. Each median is taken across towns’ own shares, one share per town, with this town left out of its two peer medians; the statewide median counts every Connecticut town, this one included.
The same five assessment classes as the chart above, stacked as index points instead of shares: each segment is that class’s assessed value measured against the town’s first published grand list, so the top of the stack is the whole list and 100 is where it started. The dashed line is the US consumer price index over the same calendar years, also starting at 100. Where the stack sits below the line the list grew slower than consumer prices; where it sits above, faster.
Source: CT OPM Net Grand List by Town (webp-fgt3), fields residential, commercial, land, motor_vehicle, personal, class_total and net_grand_list, from data.ct.gov; inflation from US Bureau of Labor Statistics CPI-U, US city average, all items, not seasonally adjusted, series CUUR0000SA0 (data.bls.gov), annual averages only, packaged as /data/us_cpi_u.json. The index is built on class_total — the five classes summed — because that is the only denominator the class columns reconcile against; the same window measured on net_grand_list is reported in the box above wherever the source publishes it at both ends.
Why the shape is a staircase rather than a slope. Connecticut freezes a property’s assessed value between revaluations: under CGS §12-62a the assessment does not follow the market until the town revalues, and CGS §12-62 requires a revaluation every five years. In between, a town’s list can only grow from new construction, newly registered vehicles and business personal property. A revaluation then resets every property at once — upward or downward, depending on what the market did since the last one. So a grand list moves in occasional steps while consumer prices move every year, and the two lines can sit far apart in the middle of a cycle without either one having done anything unusual.
The same taxable property on its two bases, one grand list year per point. Net taxable grand list is the assessed value the mill rate is applied to, and it holds still between revaluations for the reason set out above. Equalized grand list is CT OPM’s estimate of that property at full market value in every year, which is why it can move while assessments stand still. The two sit at different levels by design — 70% of value against 100% — so what the chart compares is the shape of the two lines, not the distance between them. Where the town’s own revaluation file is published, the grand lists set at a revaluation are drawn as larger points. A larger grand list is not by itself a higher or a lower tax bill: the levy is set by the adopted budget, and the mill rate is laid against whatever the list is.
Source: assessed figures from CT OPM Net Grand List by Town (webp-fgt3), field net_grand_list, from data.ct.gov; market-value figures from CT OPM Equalized Net Grand List by Town (8rr8-a322), field equalized_grand_list, as packaged in /data/ct_equalized_rates.json. Both are keyed to the October 1 grand list year on the axis, not to a fiscal year. This chart uses net_grand_list, which subtracts the exemptions the class columns above are gross of, so it is a different measure of the list from the one the two charts above index. Neither series is adjusted for inflation; the chart above sets the assessed list against consumer prices.
One point per Connecticut town. Across the bottom is median household income from the most recent American Community Survey five-year release (). Up the side is the property tax levy per resident for — the town's net grand list taxed at its posted real-estate mill rate on the non-vehicle share of that list and at its capped motor-vehicle mill rate on the vehicle share, divided by its population, with the grand list, both rates and the population taken from that same fiscal year. This town is drawn large; its surrounding towns and DRG peers are colored by group and every other town is neutral gray. The two axes come from different periods: the ACS release pools five years of survey responses and is not the same window as the fiscal year of the levy.
Source: levy from CT OPM Municipal Fiscal Indicators (ej6f-y2wf), fields net_grand_list and population_state_dept_of_public_health, and CT OPM Mill Rates (emyx-j53e), fields real_estate_personal and motor_vehicle; the vehicle share of the list from CT OPM Net Grand List by Town (webp-fgt3), fields motor_vehicle and class_total; income from US Census ACS 5-year table B19013 (variable B19013_001E), packaged as median_household_income in /data/ct_town_income.json. The levy is computed by splitting the net grand list into its motor-vehicle share and the rest, applying real_estate_personal to the non-vehicle part and motor_vehicle to the vehicle part, then dividing the two together by 1,000 and by population. Connecticut caps the motor-vehicle mill rate by statute, separately from the real-estate rate, which is why the two rates are applied to their own shares of the list; the shares are read from the October 1 grand list each rate is laid against. The result is the amount the rates lay against the taxable list, not the amount a town collected, and it excludes special-district rates. A town is plotted only where the grand list, the rate, the population and the income figure all exist for the same fiscal year. Some rate cells are filled from OPM's adopted-budget summary (pcg4-s5rc), and every filled cell names that dataset in the payload; where the rate file and the Municipal Fiscal Indicators file disagree on a town-year, both figures are published in the payload metadata and neither is silently preferred. The dashed line is a least-squares fit through the plotted points — a summary of the scatter, not a prediction for any town.
The same levy per resident, divided by the town's median household income and shown as a percentage, with every town ranked lowest first. The measure divides a town-wide levy — residential, commercial, land and vehicles together — by a household median, so it is an indicator of relative load rather than any household's actual bill: households differ in size, in what they own, and in whether they own at all.
Source: the same inputs as the chart above — CT OPM Municipal Fiscal Indicators (ej6f-y2wf), fields net_grand_list and population_state_dept_of_public_health; CT OPM Mill Rates (emyx-j53e), fields real_estate_personal and motor_vehicle; CT OPM Net Grand List by Town (webp-fgt3), fields motor_vehicle and class_total, for the vehicle share of the list; US Census ACS 5-year table B19013, field median_household_income. The levy applies the posted real-estate rate to the non-vehicle share of the grand list and the motor-vehicle rate to the vehicle share, because Connecticut caps the motor-vehicle mill rate by statute, separately from the real-estate rate. Numerator and denominator are per-resident and per-household respectively, so the ratio is a comparison index rather than an effective tax rate on income. Some rate cells are filled from OPM's adopted-budget summary (pcg4-s5rc), and every filled cell names that dataset in the payload; where the rate file and the Municipal Fiscal Indicators file disagree on a town-year, both figures are published in the payload metadata and neither is silently preferred.
What share of the property tax this town billed each fiscal year fell on real property (land and buildings), on personal property (business equipment and the like), on the motor vehicles on its October 1 list, and on supplemental motor-vehicle bills. The solid bar is this town; the lighter bar beside it is the statewide median share of each type in the same year. This is a split of what was billed, not of who paid it: a business’s building is real property, and a renter’s home is billed to the landlord.
Source: CT OPM Tax Levy by Municipality and Special Tax District (he33-brru), fields net_real_property_tax_levy, net_personal_prop_tax_levy, net_motor_vehicle_tax_levy and supplemental_mv, from data.ct.gov, packaged in /data/ct_equalized_rates.json. Each share is that figure divided by the four summed, so the supplemental motor-vehicle bills, which the state reports beside the town’s total rather than inside it, are counted with the rest. The statewide median is taken one property type at a time across every town with a breakdown that year, this town included, so the four medians need not add to exactly 100. A year is left blank where the state’s town-wide row was a zero, a blank or a partial filing (a consolidated city billing most of its levy through internal districts); in the payload the town’s total for such a year is filled from OPM’s adopted-budget summary (pcg4-s5rc), which has no breakdown. Where the state’s three property-type figures do not add to its own total for a town-year, the payload lists the row and the shares here are taken over the three figures themselves. Special taxing districts are not included.
This town's median household income across the American Community Survey five-year releases, against the median of its surrounding towns and the median of its DRG peers, with the town's median home value on the right-hand axis. Each release pools five years of responses, so adjacent points overlap by four years and the change between them is not annual change. The dollars are those of each release year and are not adjusted for inflation, so part of any rise is price level rather than purchasing power.
Source: US Census Bureau, American Community Survey 5-year estimates, tables B19013 (variable B19013_001E, packaged as median_household_income) and B25077 (variable B25077_001E, packaged as median_home_value), in /data/ct_town_income.json. Peer lines are the median of each group's own town values; this town is excluded from its own group medians. Home value is the median value of owner-occupied housing units and is not a sale price.
A household is an occupied housing unit — one household per occupied home, whoever lives in it. The solid lines are the town’s estimated household count and the number of those households with one or more people under 18 living in them. The shaded bands are the Census Bureau’s own 90% margin of error on each estimate, and they are the point of the chart as much as the lines are: these come from a survey of a sample of addresses, not a count of all of them, and for a town of a few thousand households the margin is often about as large as the change between two releases.
Source: US Census Bureau, American Community Survey 5-year estimates, tables B11001 (household type), B11005 (households by presence of people under 18) and B25002 (occupancy status), for Census county subdivisions, which in Connecticut are the towns — packaged as /data/ct_town_households.json by Data/fetch_ct_town_households.py. Estimates are published with a 90% margin of error and both are carried; the bands are those margins. Whether two estimates are called distinguishable here is decided by the simplest available rule — whether their 90% intervals overlap. That rule is deliberately conservative and is not a formal significance test; the Census Bureau advises against testing overlapping five-year releases against each other at all, which is a further reason to read small movements as unmeasured rather than as change.
Three things this chart is not. It is not a count of people — average household size has fallen for decades, so a town can hold population steady, have fewer children, and still gain households. It is not school enrollment — a household with children counts one household whether it has one child or four, and counts children who are not in the district’s schools. And consecutive points are not independent: a five-year estimate labeled the latest release pools survey responses from the five years ending there, so neighboring releases share four of their five years and the gap between them is not one year of change.
Establishments are the bars, on the left axis; jobs are the line, on the right. Unlike the household estimates above, this is a census rather than a survey — it comes from the filings every employer covered by unemployment insurance is required to make, so there is no sampling error and a difference between two years is a real difference in what was filed.
Source: Connecticut Department of Labor, Office of Research — Quarterly Census of Employment and Wages, dataset 7zu6-8dcr ("QCEW by NAICS (2 level) and Towns") on data.ct.gov, fields annavgestabs, annavgemp and naics2, packaged as /data/ct_qcew_towns.json. The totals use the source’s "Total — All Industries" row (naics2 00); that row and "Total — All Private Industries" (05) are totals rather than sectors, so the sector breakdown excludes both and the sectors do not sum to the total.
What is inside the count and what is outside it. An establishment is a worksite, not a business: a firm with three locations in town counts three times, and a firm based elsewhere with one office in town counts once. Coverage is limited to employment covered by unemployment insurance, so sole proprietors and partners without employees, most independent contractors, and some agricultural and domestic work are absent — the self-employed do not appear here at all. And these are jobs located in the town, not jobs held by its residents: people who commute out are not counted, and people who commute in are.
A sales ratio is assessed value as a percentage of market value, measured by CT OPM from the sales that actually took place in that town and that class of property. Connecticut’s statutory target is 70%: a class sitting below the target line is assessed at less than 70% of what it sells for, and the town’s next revaluation puts it back on 70. Between revaluations the lines fall away from the target as the market moves and assessments hold still; in a revaluation year OPM files the ratio as exactly 70, which is the step back up visible in the line. The distance from the target line is the size of the step the next revaluation applies — and homes and commercial property drift at their own rates, which is what changes each one’s share of the tax base when the reset comes.
Source: CT OPM Equalized Net Grand List by Town (8rr8-a322), fields residential_ratio and cip_ratio, packaged as /data/ct_revaluation.json by Data/fetch_ct_revaluation.py. cip_ratio covers commercial, industrial and public-utility property together. The statewide line is the median of every town’s own residential ratio in that grand list year; this town is excluded from it. Ratios are keyed to the October 1 grand list year on the axis, not to a fiscal year. A ratio is measured from the sales that happened, so in a small town, or a class with few sales, it rests on very few transactions and OPM publishes no count of them here. Ratios outside 10–200 are treated as too thin to stand for a whole class and are not plotted.
A revaluation does not raise the levy. The town still collects what its adopted budget requires, so when the grand list steps up the mill rate steps down by about as much. What a revaluation changes is each class’s share of the list: a class that drifted further than the town average pays a larger share afterwards, and a class that drifted less pays a smaller one. Motor vehicles and personal property are valued or declared every year, so a revaluation does not reset them and they dilute the step. The bars put every class change through that arithmetic and report what is left — the change in a bill for a property that moved exactly with its own class, with the levy held flat.
Source: CT OPM Equalized Net Grand List by Town (8rr8-a322) for the class assessed values (residential_net, apartments_net, cip_net, vacant_net, land_use_net, ten_mill_net, total_personal_property_mvpp) and the sales ratio each carries; CT OPM Revaluation Years by Town, 2023–2037 (2se9-jnuq) for the scheduled year — both packaged as /data/ct_revaluation.json by Data/fetch_ct_revaluation.py. Each real-property class is stepped by 70 ÷ its own sales ratio; motor vehicle and personal property are carried unchanged. The bill change is the class assessment factor times the property-rate factor. The new property rate preserves the levy with vehicle revenue calculated separately using matching-year OPM mill rates (emyx-j53e) and net vehicle assessments (webp-fgt3). Vehicle rates cannot exceed 32.46 mills or an already lower published vehicle ceiling; special-district rates are excluded. Peer and statewide bars are the median of each town’s own figure computed the same way; this town is excluded from every median it is compared against. The schedule is the schedule as published, and revaluations do move — the legislature deferred several in 2020.
This is a measurement carried forward, not a forecast. The drift is already in the record; the flat levy is an assumption, stated so the redistribution can be seen on its own. Four things it cannot know: the market keeps moving after the last measured grand list year, so a town revaluing later faces a larger step than this; the levy is set by a budget nobody has adopted yet; every figure is a class average, so a property that moved differently from its class moves differently from this; and a town that has just revalued shows no drift, because it has not had time to accumulate any.
This is a record, not a projection. The other revaluation charts on this site carry drift forward on a stated assumption. This one does not assume anything: both numbers behind every bar are assessments the town actually filed, before and after. It measures assessments and not bills. A bill also needs the mill rate, which a budget sets, and no budget is in this file. The break-even is the bridge between the two: a home that rose by more than the break-even pays a larger share afterwards, one that rose by less pays a smaller share, and that holds before any budget change is added on top.
Source: CT OPM parcel and CAMA data — i7xw-titi, pqrn-qghw and rny9-6ak2 — reduced to revaluation_detail.json by Data/fetch_ct_cama.py. Each property is matched to itself across the revaluation using the identifier named below, and the figure is the change in its assessment. Homes are sorted by what they were assessed at before the reset and cut into ten equal groups; each bar is the median change within its group. A property counts only where it is a home in both files, and new construction is excluded by year built, because a house that did not exist before did not have its assessment reset. Which towns can be measured this way is decided by Data/check_cama_coverage.py and recorded in Data/cama_coverage.json.
Every bar is a median within its group. Half the homes in a group moved more than its bar and half moved less, and a property that moved differently from its group moved differently from this chart. The spread inside each group is real and is not drawn here.
Type is recorded by each town’s assessor, and towns do not record it the same way. Some file every dwelling as “residential” and can carry no breakdown at all; others separate single-family from condominium, two-family and mobile home. The chart shows what this town recorded, and nothing is inferred where a town recorded nothing.
Source: the same CT OPM parcel and CAMA files and the same matched properties as the chart above, grouped by the property type the town’s own assessor recorded rather than by any category imposed here. Type labels vary between towns and are normalized by Data/cama_use.py. A type is shown only where at least 20 matched homes carry it, so a handful of properties never becomes a published median. Towns that file every dwelling without a type do not carry this chart at all.
Type and value are not independent. Where a type moved further than the rest, it is usually also among the cheaper stock in that town, so this chart and the one above are two views of one pattern rather than two separate findings. Each bar carries the median assessment its type held before the reset, so the two can be read together.
A mill rate is the levy divided by the base. When the base grows faster than the levy the rate can fall while the town still collects more; when the levy grows faster the rate has to rise even if nothing is added to the budget in real terms. Neither line is good or bad on its own. A base growing quickly can mean new construction, or it can mean a housing market that has priced out the people already living there.
Source: CT OPM Municipal Fiscal Indicators (ej6f-y2wf), fields equalized_net_grand_list and property_tax_revenues. The base shown is the equalized grand list, OPM’s estimate of everything the town taxes at full market value, and not the assessed list the mill rate is applied to. That choice matters: a revaluation resets assessed values in one step, so a growth rate taken across a revaluation measures the reset rather than the base and can even change its sign. Both series are indexed to their first year so the two rates can be compared; the levels are different quantities and are never plotted on one axis.
The base here is measured at market value rather than at assessed value, because assessed values are reset in one step at each revaluation and a growth rate taken across a reset would measure the reset. The trade is that the mill rate is applied to the assessed list, not this one, so the two lines describe the pressure on a rate rather than computing it.
Aid and the levy are the two ways a town budget gets funded. A dollar of aid that does not arrive is a dollar the levy has to raise instead, if the town spends the same. That is the whole reason this belongs on a page about a tax bill: the figure is set in Hartford and lands on a local bill.
Source: CT OPM statutory formula aid by town (sdcm-adr4), packaged as /data/ct_statutory_aid.json. These are appropriated figures for fiscal years the town has not finished billing, which is what makes them forward-looking; they are what the legislature has enacted, not what a town has received. Appropriations are revised, and a mid-year rescission or a new budget can change them. Education Cost Sharing is shown apart from the rest because it is the largest single grant and moves on its own formula.
The dashed line is arithmetic, not a plan. No town has adopted it, and budgets are decided one year at a time in public. It answers one narrow question: if the recent rate simply continued, where would it land? A town that has just settled a contract, opened a building or lost a grant has every reason to depart from it.
Source: CT OPM adopted municipal budgets (pcg4-s5rc), packaged as /data/ct_adopted_budgets.json, with US CPI-U annual averages (/data/us_cpi_u.json) for the inflation comparison. Solid segments are adopted budgets the town actually voted. The dashed segment is the same series continued at the town’s own average annual rate over the adopted years shown, and it is an illustration of that rate rather than anything the town has decided. CPI-U is a consumer price index, not a municipal cost index, and government costs have generally run above it.
Share of total revenues by source, across the years covered. “Other local” is total revenues minus property taxes and intergovernmental aid — permits, fees, charges for service, investment earnings.
Source: CT OPM Municipal Fiscal Indicators, ej6f-y2wf (property_tax_revenues, intergovernmental_revenues, total_revenues). See the recipe at the bottom of this page.
Intergovernmental revenues divided by total revenues. A higher share means more of the town’s income comes from outside the property tax; a lower share means more is raised locally.
Source: CT OPM Municipal Fiscal Indicators, ej6f-y2wf (intergovernmental_revenues ÷ total_revenues). Aid includes education grants (ECS and others) that pass through the town’s books. Each peer line is the median of the individual towns’ own shares, not the ratio of the group’s median amounts.
Reserves as a share of total expenditures, on two measures. Total fund balance (solid lines) counts restricted, committed, assigned, and unassigned amounts together, and is the measure available for every town. Unassigned (dotted line, this town only) counts just the portion carrying no designation. The two answer different questions and land in different places, so both are shown.
Source: CT OPM Municipal Fiscal Indicators, ej6f-y2wf (total_fund_balance and unassigned, each ÷ total_expenditures). On the commonly cited 17% benchmark: the GFOA’s published general recommendation is that a government hold no less than two months — about 17% — of general fund operating revenues or expenditures as unrestricted fund balance. Neither line on this chart is that measure: unassigned balance is narrower than unrestricted (unrestricted also counts committed and assigned amounts), and this chart’s denominator is all-funds expenditures rather than general fund alone. The guideline therefore cannot be read off either line as met or unmet, and is shown here only as a sense of scale. It is a general professional guideline in any case, not a state requirement.
Outstanding bonded debt divided by population. Debt rises when a town borrows for a capital project and falls as principal is repaid, so the line is expected to step up and then decline.
Source: CT OPM Municipal Fiscal Indicators, ej6f-y2wf (bonded_long_term_debt ÷ population_state_dept_of_public_health). Nominal dollars, not inflation-adjusted. Each peer line is the median of the individual towns’ own per-resident figures.
Principal and interest paid each year, divided by total expenditures — the share of the budget committed to past borrowing.
Source: CT OPM Municipal Fiscal Indicators, ej6f-y2wf (annual_debt_service ÷ total_expenditures). Each peer line is the median of the individual towns’ own shares, not the ratio of the group’s median amounts.
Net pension liability plus net OPEB (retiree health) liability, per resident, in the most recent year covered, across the town and both peer groups.
Source: CT OPM Municipal Fiscal Indicators, ej6f-y2wf (net_pension_liability + net_opeb_liability, ÷ population), most recent year covered. Read this one carefully: these figures reflect the plans a town runs on its own books. Connecticut teachers are in the state-run Teachers’ Retirement System, whose unfunded liability sits with the state and does not appear on any town’s balance sheet, and many towns place other employees in the state MERS plan or in defined-contribution plans. A low number here means a town carries little of this obligation directly — it does not mean no obligation exists for its employees.
The most recent year reported audited expenditures by function, split into salaries and wages, employee benefits, and all other costs. Function labels are the source’s own, and they cover all funds rather than the general fund alone. Where a town sends some or all grades to a regional school district, education costs may appear differently in its filing than in a town that runs its own schools.
Source: CT OPM Municipal Fiscal Indicators — Uniform Chart of Accounts, e2qt-k238 (salaries_wages, employee_benefits, other), most recent year reported, function-level subtotal rows only so nothing is double counted.
Employee benefits divided by wages plus benefits, in the most recent year reported, across the town and both peer groups. This is the share of every compensation dollar that goes to health insurance, pensions, and other benefits rather than to pay.
Source: CT OPM Municipal Fiscal Indicators — Uniform Chart of Accounts, e2qt-k238, “Total Expenditures” row per town, most recent year reported. Towns differ in how they book some costs — a town that pays part of its benefits out of an internal service fund or charges them to a different function can report a different split for the same underlying compensation. Because of those booking differences, small gaps between towns should not be read as meaningful. Two kinds of town are omitted rather than charted at zero: those the source does not report for that year at all, and those whose filing reports wages but no employee-benefit amount at the total level (their benefit costs appear inside another category). Charting the second group at 0% would assert they spend nothing on benefits, which the source does not support, and would pull down the group median. The omitted towns are named in the box above.
Percentile rank on each measure, latest matched year. 0 is the lowest town in Connecticut, 100 the highest, 50 the statewide median. No peer group is involved, so no selection choice affects these.
Source: CT OPM Municipal Fiscal Indicators (ej6f-y2wf), the latest matched fiscal year. Higher is not better or worse — it is only higher. A high rank on reserves and a high rank on mill rate mean very different things, and this chart takes no position on either. The per-pupil figure here is OPM education expenditures ÷ enrollment (audited, all funds); it is not the CSDE Net Current Expenditure Per Pupil series, and the two are not interchangeable. OPM education expenditures cover only the grades a town itself operates, so for a town that belongs to a regional school district for some of its grades the per-pupil rank is not on the same basis as a town running its own K-12 district.
Total expenditures per resident, latest matched year. The same figure for this town against four different reference points — the reason this page exists.
Source: CT OPM Municipal Fiscal Indicators (ej6f-y2wf), total_expenditures ÷ population, the latest matched fiscal year. Every group median excludes this town, so the town is never part of its own benchmark. District Reference Group assignments were last made in 2006. The rule-based bar uses a peer set built by this site from CT OPM data by Data/build_peer_sets.py, not an official state grouping.
Each point is a district: how far its students moved toward their growth targets in English language arts (grades 4–8, three-year mean) against what it spent per need-weighted pupil (five-year mean). Only the district’s fifteen nearest peers are drawn, and no line is fitted through them.
Source: CSDE EdSight GrowthModelExport (Average Percentage of Target Achieved, ELA, all students, All Grades Combined), mean of the latest three reported school years; EdSight EFS total expenditures ÷ total need students, where total need students = resident students + 30% of FRPM-eligible + 15% of FRPM-eligible above 60% of enrollment + 25% of multilingual learners (CGS §10-262f(25)), five-year mean. Peers are the fifteen districts of the same grade-span type nearest on six demographic variables and enrollment (Ohio Department of Education similar-districts method), chosen by formula in Data/build_school_peer_model.py. Growth is a percentage of target, not a score: 100 would mean every student reached an ambitious one-year target. No line is fitted because fifteen points cannot support one.
The same picture for mathematics.
Source: as above, Math. CSDE EdSight GrowthModelExport, three-year mean; EFS spending per need-weighted pupil, five-year mean.
Every modeled Connecticut district: the ELA Performance Index its students earned (vertical) against the index a regression on six family-circumstance variables predicts for a district with its demographics (horizontal). On the diagonal, results match the prediction; the dashed lines mark the 90% band, inside which a district cannot be told apart from the line.
Source: CSDE EdSight PerformanceIndexExport (ELA Performance Index, all students, 0–100), mean of the latest three reported school years. Prediction = ordinary least squares of that index on: share of students eligible for free or reduced-price meals, share of English learners, share of students with disabilities (EdSight October 1 enrollment), and log median household income, share of adults with a bachelor’s degree, share of children living with one parent (ACS 5-year, the district’s own Census geography where one exists, else its town). One observation per district, unweighted; coefficients and R² are in school_performance_model.json. The residual is relative (the residuals average to zero across districts, so a large share sit below the line) and correlational. Districts with fewer than 20 tested students are not shown; fewer than 500 are marked for sample size.
The same district’s spending five ways, each beside the median of its peers. Which definition is used changes the figure and can change the rank; all five are shown so that no single one is the headline.
Source: CSDE EdSight EFS EFSDistrictLevelbyFunctionExport total expenditures (district self-reported, unaudited; excludes debt service, capital and food service), five-year mean ending in the latest reported year. Per pupil = EFS pupils. Per need-weighted pupil = CGS §10-262f(25) weights applied to October 1 FRPM and multilingual-learner counts. Special-education tuition removed = the EFS Special Education Tuition line subtracted first. Wage-adjusted = divided by the NCES Comparable Wage Index for Teachers for the district. Constant dollars = CPI-U to the latest year. Peer medians exclude the district itself. The town’s own Net Current Expenditure per pupil is a different basis (CGS §10-261) and is shown in the overview, not here.
Students who live in this town, by the type of school they attend, latest school year. A district’s figures above describe the students it teaches; this describes the town’s own residents, wherever they are taught.
Source: CSDE EdSight Resident Town Dashboard (report notes: Report Notes_Choice-Town.pdf), read for every town by Data/fetch_edsight_resident_town.py. “Public Schools” is the town’s own local district; “Regional Schools” its regional district. A cell the state suppresses (counts of 5 or fewer; rates below 20 students) reads “suppressed”; a school type with no such students is not listed. These are town-of-residence figures and are not the same population as the operating-district figures above, even for a town whose residents mostly attend its own schools.
The two administrator categories added together, divided by every staff category the district reported that school year. The dashed lines are the medians across the districts teaching the surrounding towns and the districts teaching the District Reference Group peer towns, each computed from those districts’ own shares and excluding this one. A share can move because administrator positions changed, because other positions changed, or both.
Source: EdSight FTE Staffing report via administration.json (staffing.groups.admin_central + admin_school, divided by every reported group). Full-time equivalent positions on an October 1 school-year basis. Grouping the state’s twelve assignment categories is this site’s editorial decision; the payload carries the exact source categories behind every group, and the insight box below names the ones in the numerator. A category with no row in a year is a gap in the source, so a year’s share is of the categories that year reports and is not adjusted for the ones it does not.
The counts behind the share above, kept apart because they answer different questions. Central-office positions are the superintendent’s office and the district-level directors and coordinators; school-level positions are principals, assistant principals and school-level department chairs, and they scale with the number of school buildings rather than with the budget. Full-time equivalent positions, so a half-time position counts as 0.5.
Source: EdSight FTE Staffing report via administration.json (staffing.groups.admin_central and admin_school, the state’s categories carried separately). A one-year step in either bar can be a staffing change or a change in how a position was classified that year; the source offers no way to tell the two apart, and the insight box names any step large enough to be worth that caution.
October 1 enrollment divided by the administrator count, and by the teacher count, school year by school year. Both lines rise when enrollment grows faster than positions and fall when it does not. Neither is a class size or a caseload — they are ratios of two reported totals and say nothing about how positions are deployed across buildings, grades or programs.
Source: EdSight via administration.json — numerator staffing.enrollment (the October 1 headcount, not the average membership the OPM finance files use); denominators the administrator categories and the two teacher categories, for the same district and the same school year. The two lines are on different scales of the same axis and are not comparable to each other in level; what each shows is its own movement.
One point per district: October 1 enrollment on the horizontal axis (a logarithmic scale, because enrollment runs from a few dozen students to almost twenty thousand), administrator share of staff on the vertical. This district is marked, the districts teaching the two peer groups are colored, and every other district is grey. The dashed line is a least-squares fit of the share on the logarithm of enrollment. It describes the points plotted; it is not a target, and a district above it is not thereby overstaffed.
Source: both axes from EdSight via administration.json, same district and same school year on each point — vertical, the administrator share described above; horizontal, staffing.enrollment. The fit is a description of these points and not a prediction for any district. The box below also gives the size question without a model, as the observed median share in each quarter of districts by enrollment, so a reader is not asked to take a fitted slope on trust. The statewide version of this chart, with every district ranked, is on the administration ranking page.
The same measure in the most recent school year for this district and for every district that teaches one of the surrounding or District Reference Group peer towns, sorted lowest to highest. Bar color marks which group a district is here for. A district teaching peer towns from both groups appears once.
Source: EdSight FTE Staffing report via administration.json, most recent school year the district reports. Peer towns come from this town’s own comparison groups; each is mapped to the district that operates its schools, so a regional district serving several peer towns is one bar, not several. Districts with no reported staffing that year are omitted rather than charted at zero, and the insight box names them.
General administration — the board of education and the superintendent’s office — plus school-based administration, the principals’ offices, divided by total expenditures, fiscal year by fiscal year, against both peer-group medians. A different source and a different year basis from every chart above: these are dollars filed through the state’s uniform chart of accounts, not October 1 positions. These two functions pay for more than administrators — the clerical staff in those offices, and their supplies and purchased services, are inside them too.
Source: CT State Department of Education, Education Financial System, Per Pupil Expenditures by Function (District), via administration.json (spending.general_admin + school_admin ÷ spending.total). The functions are defined identically for every district by the state’s chart of accounts; how a district organises and staffs those offices is not. The peer medians are the median across the peer districts’ own shares, excluding this district. This series covers fewer years than the staffing charts above, and starts later; each chart shows the years its own source publishes.
The same two functions in dollars per pupil in the most recent reported fiscal year, split into general administration and school-based administration so the two can be read apart. Sorted by the total of the two. Nominal dollars, not adjusted for inflation and not adjusted for the differences in wage levels across the state.
Source: EdSight Education Financial System via administration.json (spending.general_admin and school_admin, each divided by spending.pupils, the pupil count the same file reports for the same district and year). The pupil basis is the state’s for this report and is not the October 1 headcount used by the staffing charts above, so a per-pupil figure here and a per-student ratio there rest on different denominators and are not two versions of one number.
Charts built on one town’s own budget books — Colchester’s insurance lines, its health fund, its school capacity work — are not here. They are not shared, because the documents behind them have been read for one town only. The Data Coverage page reports what has been collected for each town, dataset by dataset.
A chart in this catalog still draws only where the data exists. Where a town has no value, the page says so in words rather than plotting a zero or leaving an unexplained gap.