Two Ways to Measure Per-Pupil Spending
Why this site prints the state Department of Education's per-pupil figure, how it differs from the one the site used to compute from OPM data, and the known problems with each, for every Connecticut town.
In short
There is more than one way to put a number on what a Connecticut town spends per student. This site has used two:
- Now: the state Department of Education’s Net Current Expenditures Per Pupil (NCEP), a figure the state defines in law and publishes for every town.
- Before: a figure this site computed itself from the Office of Policy and Management’s audited town finances (OPM): education spending divided by school enrollment.
For the 10 years both cover (2013-14 through 2022-23), this page sets the two side by side for all 169 towns: 1,690 town-years. It shows what the data says about why they differ, and it lists the known problems with each. Where the files cannot explain a difference, the page says so.
- The OPM figure is higher in 1,457 of 1,690 town-years (86%). The median gap is +9.3%, or +$1,632 per student.
- The student counts are almost always the same number. The gap comes from the spending side.
- The two measures put towns in a similar order, but individual towns move. In 53% of town-years a town’s rank differs by more than 10 places, and in 18% by more than 25.
- In 17 towns the OPM figure is usually the lower one, by a wide margin in several of the largest cities.
The two figures
| OPM education spending per student (no longer printed) | Net Current Expenditures Per Pupil (printed now) | |
|---|---|---|
| Publisher | CT Office of Policy and Management, Municipal Fiscal Indicators (ej6f-y2wf) | CT State Department of Education (CSDE), Bureau of Fiscal Services |
| Spending | Education expenditures: audited actual spending across all of the town’s governmental funds, grant money included | Net current expenditures (CGS § 10-261(a)(3)): total current education spending, less transportation, capital, debt service, adult education, nonpublic health services, tuition received from other towns, and food service and student activities paid from their own receipts. Tuition the town pays for its students educated elsewhere is counted. |
| Students | School enrollment average | Average daily membership (ADM): resident students the town pays for, averaged over the school year, including those in a regional district or tuitioned out |
| Regional districts | The town’s own books: what it spent on schools it runs, plus what it paid its regional district | The regional district’s costs are divided among its member towns by their share of its students. For a town whose regional district runs every grade, the state has printed only the district’s figure since 2017-18. |
| Years in the site’s files | 2013-14 to 2022-23 | 2007-08 to 2024-25 |
Both run July to June, so a year label means the same twelve months in each. Definitions of the terms: per-pupil spending and audited actuals.
Why this site prints NCEP
- It is the state’s own figure. NCEP is defined in statute (CGS § 10-261) and published by the Department of Education for every town. The state uses it to set the basic contribution in its special education excess cost grant. A reader can check any figure against the state’s own report.
- It puts every town on one basis. A town that sends some or all grades to a regional district has the district’s costs counted against it by its share of the students. The OPM figure depends on how each town books its payment to the district.
- It leaves out the same things everywhere. Transportation, capital and debt service can depend on a town’s geography and on when it built or renovated schools. NCEP removes them for every town by the same rule.
- It is the longer and more recent series. The site’s NCEP file runs 2007-08 to 2024-25; OPM’s audited figures run 2013-14 to 2022-23.
NCEP is not total school spending. It deliberately leaves costs out, and it has problems of its own, listed below. It is a different measure from the OPM figure, not a corrected version of it, and neither is wrong. A difference between the two says nothing about whether a town spends too much or too little.
How far apart they are
Across all 1,690 town-years, the OPM figure minus NCEP has a median of +9.3%. The middle half of town-years fall between +4.3% and +13.3%. One in ten is below −2.8%. The full range is −40.5% to +36.2%.
The two measures rank the towns in a broadly similar order: the rank correlation is between 0.86 and 0.91 each year (1.00 would be the same order). Single towns still move. 155 towns move more than 10 places in at least one year, and 90 move more than 25. Rank 1 is the lowest figure.
| Year | Towns | OPM higher | Median gap | 10th to 90th percentile | Rank correlation | Moved >10 places | Moved >25 places |
|---|---|---|---|---|---|---|---|
| 2013-14 | 169 | 145 | +8.9% | −2.2% to +13.8% | 0.88 | 90 | 26 |
| 2014-15 | 169 | 143 | +8.1% | −3.5% to +12.8% | 0.86 | 94 | 29 |
| 2015-16 | 169 | 143 | +8.0% | −2.7% to +12.7% | 0.87 | 92 | 27 |
| 2016-17 | 169 | 154 | +11.6% | +1.4% to +19.3% | 0.87 | 97 | 37 |
| 2017-18 | 169 | 155 | +12.8% | +0.8% to +20.8% | 0.87 | 93 | 36 |
| 2018-19 | 169 | 142 | +7.4% | −4.9% to +16.4% | 0.87 | 78 | 33 |
| 2019-20 | 169 | 154 | +11.9% | +0.9% to +18.8% | 0.90 | 79 | 25 |
| 2020-21 | 169 | 142 | +9.5% | −3.7% to +17.5% | 0.89 | 85 | 30 |
| 2021-22 | 169 | 132 | +7.6% | −6.9% to +14.9% | 0.87 | 94 | 40 |
| 2022-23 | 169 | 147 | +10.8% | −1.4% to +17.0% | 0.91 | 88 | 24 |
Which side of the division differs
A per-student figure is spending divided by students. The two sides can be compared separately for 1,570 town-years. The rest are K-12 regional towns in years when the state printed only the district’s row.
The student count is almost always the same
OPM’s school enrollment average equals the state’s average daily membership, to the hundredth of a student, in 1,414 of 1,570 town-years. In the other 156, the median difference is 1 student and the largest is 5.3%. OPM’s field appears to be the same resident-student count the state publishes, so it counts students in every grade, including those at a regional district or tuitioned out.
The spending side causes the gap
The spending side is the larger part of the gap in 1,566 of 1,570 town-years. OPM education spending divided by net current expenditures has a median of 1.10: OPM’s figure is usually about a tenth larger. The middle half runs from 1.05 to 1.14.
NCEP leaves out transportation, capital, debt service, adult education and some receipts. None of the site’s files break those exclusions out town by town, so no single town’s gap can be traced to a particular item.
By school-district arrangement
Towns are grouped by how their schools are organized, from the state’s own town-to-district table. The ten most populous towns are shown as a separate row and are also counted in their own group.
| Group | Towns | Town-years | OPM higher | Median gap | Middle half | OPM spending ÷ NCE | Median rank change |
|---|---|---|---|---|---|---|---|
| Own K-12 district | 103 | 1,030 | 861 (84%) | +10.1% | +4.1% to +14.2% | 1.10 | +6 |
| Regional district for some grades | 27 | 270 | 256 (95%) | +9.4% | +5.8% to +11.9% | 1.09 | 0 |
| K-12 regional district (NCEP is the district's row) | 20 | 200 | 172 (86%) | +5.1% | +1.6% to +9.1% | 1.05* | −5 |
| No high school; high school students tuitioned out | 19 | 190 | 168 (88%) | +9.5% | +6.5% to +13.0% | 1.10 | +5 |
| Ten most populous towns (overlaps the groups above) | 10 | 100 | 37 (37%) | −3.9% | −22.0% to +5.7% | 0.96 | −16 |
* Town-row years only. A positive rank change means the town’s OPM figure sits higher among all towns than its NCEP does.
Towns in a regional district for some grades
This site used to say that the OPM figure for these towns covered only the grades the town runs itself. The data does not support that for most of these towns:
- OPM’s student count equals the state’s, which includes the regional grades, in 256 of 270 town-years.
- OPM publishes a second, more detailed file for the four years 2019-20 to 2022-23. It splits education into the town’s own Board of Education and its payment to the regional district. In 68 of 90 town-years, the education figure used here equals the total including the regional payment. It equals the town’s own schools alone in 1 (Andover, 2019-20) and matches neither in 21.
- The regional payment is a median 44% of these towns’ education spending in that file. Leaving it out would lower the spending figure by about that much. The group’s median gap is +9.4%.
The result is that this group looks much like towns with their own K-12 district: median gap +9.4% against +10.1%, and OPM spending ÷ NCE between 1.06 and 1.12 by year against 1.07 to 1.15. The earlier years cannot be checked the same way, because the detailed file starts in 2019-20.
Towns whose regional district runs every grade
For these 20 towns, OPM education spending is the town’s payment to its district: in the detailed file it equals the regional-district line, with nothing for the town’s own schools, in 74 of 75 town-years. OPM divides that payment by the town’s own students.
From 2017-18 the state prints only the district’s own NCEP, dividing the whole district’s spending by all its students. A member town’s students are a median 39% of its district’s. So member towns share one NCEP while their OPM figures differ, because each town’s payment per student differs. The median gap is +5.1% in the years the state still printed a town row and +5.0% after.
Each district in 2022-23: one NCEP, each town’s OPM figure
| District | NCEP | Member towns: OPM figure (gap) |
|---|---|---|
| District No. 6 | $27,622 | Goshen $27,296 (−1.2%); Morris $24,936 (−9.7%); Warren $28,646 (+3.7%) |
| District No. 10 | $18,384 | Burlington $19,538 (+6.3%); Harwinton $19,220 (+4.5%) |
| District No. 12 | $35,513 | Bridgewater $35,219 (−0.8%); Roxbury $39,976 (+12.6%); Washington $39,568 (+11.4%) |
| District No. 13 | $26,253 | Durham $26,374 (+0.5%); Middlefield $27,008 (+2.9%) |
| District No. 14 | $24,508 | Bethlehem $25,682 (+4.8%); Woodbury $25,203 (+2.8%) |
| District No. 15 | $21,978 | Middlebury $21,832 (−0.7%); Southbury $22,291 (+1.4%) |
| District No. 16 | $18,982 | Beacon Falls $20,470 (+7.8%); Prospect $20,313 (+7.0%) |
| District No. 17 | $22,841 | Haddam $22,670 (−0.8%); Killingworth $23,067 (+1.0%) |
| District No. 18 | $23,118 | Lyme $25,352 (+9.7%); Old Lyme $25,768 (+11.5%) |
Not shown by the files: whether a town’s payment includes its share of the district’s debt service and capital, which NCEP leaves out. The files do not split a payment into parts.
Towns with no high school
These 19 towns pay tuition for their high school students to an endowed academy or a designated school. Both measures count that tuition. The median gap is +9.5%, close to the +10.1% for towns with their own K-12 district. The files show no separate effect of tuitioning out.
Where the OPM figure is lower
From the definitions alone, OPM’s all-funds spending would be expected to be at least as large as NCE, which is total current spending less a list of exclusions. In 17 towns the OPM figure is below NCEP in the median year. In several of the largest cities the difference is large. The student counts match, so the difference is in the spending.
| Town | Median gap | Range | OPM spending ÷ NCE | Median rank change | Education benefits ÷ salaries | Benefits booked under “Other” (largest year) | Largest difference between OPM’s two files |
|---|---|---|---|---|---|---|---|
| Waterbury | −36.2% | −40.5% to −27.5% | 0.64 | −33.5 | 100%–118% | none | $77 million |
| New Haven | −32.3% | −38.7% to −25.1% | 0.68 | −95 | 1.3% | $119 million | $0.7 million |
| Hartford | −21.5% | −29.0% to −12.6% | 0.78 | −104.5 | 31%–63% | $85 million | none |
| New London | −17.5% | −23.4% to −14.1% | 0.83 | −61 | 30%–36% | $12 million | $8.7 million |
| Hamden | −14.7% | −26.9% to −9.0% | 0.85 | −91.5 | 79%–108% | none | $57 million |
| Windham | −10.9% | −17.2% to −6.1% | 0.89 | −77 | 0.0%–75% | $3.5 million | none |
| Bridgeport | −8.2% | −15.2% to +2.5% | 0.92 | −9.5 | 75%–82% | none | $9.8 million |
| Meriden | −7.7% | −15.0% to +2.1% | 0.92 | −0.5 | 21%–51% | none | none |
| Winchester | −6.3% | −8.2% to +2.3% | 0.94 | −49.5 | 28%–31% | none | none |
| New Britain | −5.8% | −23.5% to +5.3% | 0.94 | 0 | no split | none | none |
| Norwich | −5.7% | −11.4% to +0.5% | 0.94 | −51 | 26%–42% | none | none |
| Bristol | −4.4% | −10.9% to +5.2% | 0.96 | −10 | 27%–62% | $34 million | none |
| Bloomfield | −3.4% | −8.0% to +0.5% | 0.97 | −30 | 0.0%–105% | $0.1 million | none |
| East Hartford | −2.7% | −6.3% to +7.5% | 0.97 | +2 | 29%–67% | $36 million | none |
| Norwalk | −0.8% | −4.3% to +8.7% | 0.99 | −34.5 | 24%–53% | none | none |
| Goshen | −0.6% | −15.2% to +6.6% | 1.04 | −13.5 | no split | none | none |
| Enfield | 0.0% | −5.5% to +6.1% | 1.00 | −5.5 | 28%–30% | $4.2 million | none |
The last three columns come from OPM’s detailed file (2019-20 to 2022-23), where it has a row for the town. Statewide, the median town records employee benefits in its education line equal to 32% of education salaries (435 town-years). “No split” means the town recorded all its education spending as one lump with no salaries or benefits. “None” means zero. A blank means the file has no row for the town.
These columns show where towns record costs, not whose costs they are. Some towns record large employee-benefit costs under OPM’s “Other” heading rather than under Education. In others, OPM’s two files disagree by tens of millions of dollars.
Not settled by the files: whether benefits recorded under “Other” belong to school employees, and why, in some of these towns, even the larger of OPM’s two figures stays below NCE. Answering either needs the towns’ own audited financial statements, which OPM’s figures are compiled from.
Known problems with the OPM figure
- Towns record costs in different places. Some record large employee-benefit costs under a general “Other” heading rather than under Education, and the files do not say whose they are (see above). Wherever school costs sit outside the education line, a per-student figure built from that line depends on bookkeeping as well as on spending.
- OPM’s two files do not always agree. For 2019-20 to 2022-23, the summary file this site used equals the detailed file’s education total in 502 of 607 town-years where both have a row. In the other 105 it does not.
- The figure moves in years when the state’s does not. The median one-year change in OPM education spending and in net current expenditures, by year:
| Year | 2014-15 | 2015-16 | 2016-17 | 2017-18 | 2018-19 | 2019-20 | 2020-21 | 2021-22 | 2022-23 |
|---|---|---|---|---|---|---|---|---|---|
| OPM education spending | +1.0% | +2.2% | +5.8% | +2.4% | −4.3% | +4.9% | +1.5% | +2.1% | +4.2% |
| Net current expenditures | +2.2% | +2.1% | +0.9% | +1.2% | +1.9% | +0.9% | +3.9% | +3.2% | +1.0% |
The files do not say what moved OPM’s figures in those years. OPM changed how the data was compiled in 2019-20 (towns report their own figures from then on), but the moves fall on both sides of that year.
- Regional arrangements show through. For a K-12 regional town the figure is the town’s payment to the district, so towns in one district get different figures (above).
- It ends earlier. Audited figures arrive about three years after the year closes; the site’s OPM file ends at 2022-23.
Known problems with NCEP
- It is not total spending. Transportation, capital, debt service, adult education and several receipts are left out by law. A town’s full cost of schooling is higher.
- The row changes for K-12 regional towns. From 2017-18 the state prints only the regional district’s figure for these towns. Before that it printed each town, and every member town of one district carried the same figure. Where the district’s first figure differs a lot from the towns’ last one, a line crossing that year shows a step: Regional School District 6 (Goshen, Morris, Warren) moved +22.0% that year, against a 2.9% median for the towns the state kept printing. The town pages name the district wherever they print its figure.
- Some years are missing. The state printed no figure for Goshen, Litchfield, Morris, Warren in 2023-24. CSDE's 2023-24 report lists District No. 20 with no figures and prints no row for Region 6 or Litchfield. A missing figure is missing, never zero.
- The sources change over time. 2007-08 to 2016-17: CSDE Connecticut Public School Expenditures Report, nceadm workbooks (portal.ct.gov, archived pages). 2017-18 to 2023-24: CSDE's NCEP PDFs as mirrored by the School + State Finance Project (schoolstatefinance.org); CSDE no longer posts these years. 2024-25: CSDE basiccon workbook, January 2026 revision (portal.ct.gov/sde/fiscal-services). The earliest years are rounded to the dollar.
- It counts resident students, not the students a district teaches. ADM counts the students a town pays for, wherever they attend. A town’s figure is not the cost per student in its own school buildings.
Where the OPM figure used to appear
Until September 2026 this site divided OPM education spending by enrollment and printed the result on each town’s Education Spending page, the per-pupil ranking, the education-vs-income ranking, the Spending vs. Peers headline figures, the statewide ranks table and the all-towns data file. All of them now print NCEP. Nothing on the site prints the OPM figure as a per-pupil number any more; this page keeps it only so the two can be compared.
A ranking or screenshot made from the older figure will not match the site today. The towns where the OPM figure is lower are the ones where the change moved a town furthest.
Every town, 2022-23
Both figures for each town in the latest year both cover, with each town’s rank on each (1 = lowest of 169; tied towns share the lowest position) and its median gap across all 10 years. Every year for every town is in the downloads.
| Town | Arrangement | OPM figure | NCEP | Gap | OPM rank | NCEP rank | Rank change | Median gap, 2013-14–2022-23 |
|---|---|---|---|---|---|---|---|---|
| Andover | Regional district for some grades | $26,707 | $22,816 | +17.1% | 131 | 118 | +13 | +8.7% |
| Ansonia | Own K-12 district | $16,740 | $17,674 | −5.3% | 11 | 22 | −11 | +2.4% |
| Ashford | Regional district for some grades | $26,724 | $23,388 | +14.3% | 133 | 129 | +4 | +12.3% |
| Avon | Own K-12 district | $23,982 | $19,644 | +22.1% | 104 | 66 | +38 | +18.3% |
| Barkhamsted | Regional district for some grades | $25,362 | $23,978 | +5.8% | 122 | 134 | −12 | +6.8% |
| Beacon Falls | K-12 regional district (NCEP is the district's row) (District No. 16) | $20,470 | $18,982 | +7.8% | 40 | 51 | −11 | +8.1% |
| Berlin | Own K-12 district | $22,886 | $20,664 | +10.8% | 91 | 87 | +4 | +8.7% |
| Bethany | Regional district for some grades | $21,843 | $18,948 | +15.3% | 68 | 49 | +19 | +16.0% |
| Bethel | Own K-12 district | $18,988 | $17,749 | +7.0% | 21 | 23 | −2 | +6.4% |
| Bethlehem | K-12 regional district (NCEP is the district's row) (District No. 14) | $25,682 | $24,508 | +4.8% | 123 | 137 | −14 | +0.4% |
| Bloomfield | Own K-12 district | $23,505 | $23,400 | +0.5% | 100 | 130 | −30 | −3.4% |
| Bolton | Own K-12 district | $24,093 | $20,679 | +16.5% | 107 | 88 | +19 | +14.2% |
| Bozrah | No high school; high school students tuitioned out | $27,168 | $24,663 | +10.2% | 137 | 139 | −2 | +10.0% |
| Branford | Own K-12 district | $25,957 | $22,656 | +14.6% | 126 | 115 | +11 | +14.2% |
| Bridgeport | Own K-12 district | $16,020 | $16,506 | −2.9% | 9 | 8 | +1 | −8.2% |
| Bridgewater | K-12 regional district (NCEP is the district's row) (District No. 12) | $35,219 | $35,513 | −0.8% | 163 | 163 | 0 | +10.7% |
| Bristol | Own K-12 district | $19,491 | $18,521 | +5.2% | 26 | 42 | −16 | −4.4% |
| Brookfield | Own K-12 district | $22,107 | $19,127 | +15.6% | 74 | 56 | +18 | +14.7% |
| Brooklyn | No high school; high school students tuitioned out | $18,885 | $16,531 | +14.2% | 20 | 9 | +11 | +10.1% |
| Burlington | K-12 regional district (NCEP is the district's row) (District No. 10) | $19,538 | $18,384 | +6.3% | 29 | 36 | −7 | +6.7% |
| Canaan | Regional district for some grades | $38,268 | $36,169 | +5.8% | 166 | 167 | −1 | +5.2% |
| Canterbury | No high school; high school students tuitioned out | $21,007 | $18,354 | +14.4% | 52 | 35 | +17 | +7.9% |
| Canton | Own K-12 district | $23,068 | $19,947 | +15.7% | 95 | 74 | +21 | +9.3% |
| Chaplin | Regional district for some grades | $28,249 | $26,683 | +5.9% | 147 | 148 | −1 | +9.5% |
| Cheshire | Own K-12 district | $22,317 | $19,187 | +16.3% | 78 | 59 | +19 | +15.0% |
| Chester | Regional district for some grades | $26,338 | $24,778 | +6.3% | 127 | 141 | −14 | +9.5% |
| Clinton | Own K-12 district | $26,670 | $23,105 | +15.4% | 130 | 125 | +5 | +12.7% |
| Colchester | Own K-12 district | $22,078 | $18,869 | +17.0% | 73 | 48 | +25 | +12.6% |
| Colebrook | Regional district for some grades | $28,584 | $27,449 | +4.1% | 149 | 151 | −2 | +7.2% |
| Columbia | No high school; high school students tuitioned out | $22,759 | $19,441 | +17.1% | 88 | 63 | +25 | +10.1% |
| Cornwall | Regional district for some grades | $36,693 | $37,019 | −0.9% | 164 | 168 | −4 | +8.1% |
| Coventry | Own K-12 district | $20,599 | $17,932 | +14.9% | 44 | 28 | +16 | +12.6% |
| Cromwell | Own K-12 district | $20,167 | $18,328 | +10.0% | 35 | 33 | +2 | +8.3% |
| Danbury | Own K-12 district | $13,682 | $14,647 | −6.6% | 2 | 1 | +1 | +2.7% |
| Darien | Own K-12 district | $27,893 | $24,065 | +15.9% | 144 | 135 | +9 | +12.3% |
| Deep River | Regional district for some grades | $27,226 | $26,974 | +0.9% | 138 | 150 | −12 | +6.8% |
| Derby | Own K-12 district | $23,204 | $20,647 | +12.4% | 96 | 86 | +10 | +4.5% |
| Durham | K-12 regional district (NCEP is the district's row) (District No. 13) | $26,374 | $26,253 | +0.5% | 128 | 145 | −17 | +3.9% |
| East Granby | Own K-12 district | $23,801 | $21,675 | +9.8% | 102 | 103 | −1 | +4.5% |
| East Haddam | Own K-12 district | $26,393 | $23,483 | +12.4% | 129 | 131 | −2 | +11.3% |
| East Hampton | Own K-12 district | $22,437 | $20,198 | +11.1% | 81 | 80 | +1 | +11.7% |
| East Hartford | Own K-12 district | $15,035 | $15,837 | −5.1% | 6 | 5 | +1 | −2.7% |
| East Haven | Own K-12 district | $18,161 | $17,252 | +5.3% | 17 | 20 | −3 | +1.8% |
| East Lyme | Own K-12 district | $22,487 | $20,689 | +8.7% | 82 | 89 | −7 | +20.6% |
| East Windsor | Own K-12 district | $27,408 | $24,437 | +12.2% | 141 | 136 | +5 | +7.0% |
| Eastford | No high school; high school students tuitioned out | $21,954 | $22,440 | −2.2% | 70 | 110 | −40 | +8.7% |
| Easton | Regional district for some grades | $25,197 | $22,941 | +9.8% | 119 | 121 | −2 | +9.9% |
| Ellington | Own K-12 district | $19,679 | $17,081 | +15.2% | 30 | 15 | +15 | +13.8% |
| Enfield | Own K-12 district | $15,833 | $16,747 | −5.5% | 8 | 12 | −4 | 0.0% |
| Essex | Regional district for some grades | $29,376 | $27,919 | +5.2% | 151 | 156 | −5 | +9.0% |
| Fairfield | Own K-12 district | $24,880 | $22,452 | +10.8% | 116 | 112 | +4 | +10.3% |
| Farmington | Own K-12 district | $21,205 | $19,443 | +9.1% | 56 | 64 | −8 | +9.0% |
| Franklin | No high school; high school students tuitioned out | $22,351 | $19,381 | +15.3% | 79 | 61 | +18 | +14.7% |
| Glastonbury | Own K-12 district | $20,627 | $20,048 | +2.9% | 45 | 76 | −31 | +11.2% |
| Goshen | K-12 regional district (NCEP is the district's row) (District No. 6) | $27,296 | $27,622 | −1.2% | 140 | 153 | −13 | −0.6% |
| Granby | Own K-12 district | $23,454 | $19,961 | +17.5% | 99 | 75 | +24 | +14.1% |
| Greenwich | Own K-12 district | $30,472 | $26,812 | +13.7% | 157 | 149 | +8 | +10.4% |
| Griswold | Own K-12 district | $21,975 | $16,916 | +29.9% | 71 | 14 | +57 | +20.2% |
| Groton | Own K-12 district | $20,843 | $17,917 | +16.3% | 48 | 27 | +21 | +13.0% |
| Guilford | Own K-12 district | $24,196 | $20,695 | +16.9% | 111 | 91 | +20 | +13.3% |
| Haddam | K-12 regional district (NCEP is the district's row) (District No. 17) | $22,670 | $22,841 | −0.8% | 86 | 119 | −33 | +6.5% |
| Hamden | Own K-12 district | $17,907 | $21,798 | −17.9% | 16 | 104 | −88 | −14.7% |
| Hampton | Regional district for some grades | $31,954 | $28,438 | +12.4% | 159 | 157 | +2 | +5.2% |
| Hartford | Own K-12 district | $17,686 | $22,037 | −19.8% | 15 | 107 | −92 | −21.5% |
| Hartland | No high school; high school students tuitioned out | $29,498 | $27,543 | +7.1% | 152 | 152 | 0 | +8.0% |
| Harwinton | K-12 regional district (NCEP is the district's row) (District No. 10) | $19,220 | $18,384 | +4.5% | 24 | 36 | −12 | +6.7% |
| Hebron | Regional district for some grades | $20,891 | $20,693 | +1.0% | 49 | 90 | −41 | +10.9% |
| Kent | Regional district for some grades | $38,086 | $35,652 | +6.8% | 165 | 166 | −1 | +8.6% |
| Killingly | Own K-12 district | $21,909 | $18,799 | +16.5% | 69 | 47 | +22 | +13.3% |
| Killingworth | K-12 regional district (NCEP is the district's row) (District No. 17) | $23,067 | $22,841 | +1.0% | 94 | 119 | −25 | +7.8% |
| Lebanon | Own K-12 district | $27,245 | $22,980 | +18.6% | 139 | 122 | +17 | +14.6% |
| Ledyard | Own K-12 district | $17,260 | $17,129 | +0.8% | 13 | 18 | −5 | +1.1% |
| Lisbon | No high school; high school students tuitioned out | $20,232 | $17,897 | +13.1% | 37 | 26 | +11 | +9.9% |
| Litchfield | Own K-12 district | $28,213 | $23,016 | +22.6% | 146 | 123 | +23 | +19.0% |
| Lyme | K-12 regional district (NCEP is the district's row) (District No. 18) | $25,352 | $23,118 | +9.7% | 121 | 126 | −5 | +18.2% |
| Madison | Own K-12 district | $27,412 | $23,556 | +16.4% | 142 | 132 | +10 | +12.9% |
| Manchester | Own K-12 district | $19,169 | $18,434 | +4.0% | 22 | 39 | −17 | +4.9% |
| Mansfield | Regional district for some grades | $24,115 | $22,443 | +7.5% | 108 | 111 | −3 | +7.4% |
| Marlborough | Regional district for some grades | $22,489 | $19,681 | +14.3% | 83 | 68 | +15 | +11.1% |
| Meriden | Own K-12 district | $13,825 | $14,992 | −7.8% | 3 | 2 | +1 | −7.7% |
| Middlebury | K-12 regional district (NCEP is the district's row) (District No. 15) | $21,832 | $21,978 | −0.7% | 67 | 105 | −38 | +1.1% |
| Middlefield | K-12 regional district (NCEP is the district's row) (District No. 13) | $27,008 | $26,253 | +2.9% | 135 | 145 | −10 | +3.6% |
| Middletown | Own K-12 district | $23,654 | $22,465 | +5.3% | 101 | 113 | −12 | +5.1% |
| Milford | Own K-12 district | $27,026 | $23,741 | +13.8% | 136 | 133 | +3 | +12.0% |
| Monroe | Own K-12 district | $21,666 | $18,452 | +17.4% | 65 | 40 | +25 | +15.2% |
| Montville | Own K-12 district | $22,061 | $18,759 | +17.6% | 72 | 45 | +27 | +16.3% |
| Morris | K-12 regional district (NCEP is the district's row) (District No. 6) | $24,936 | $27,622 | −9.7% | 117 | 153 | −36 | +1.4% |
| Naugatuck | Own K-12 district | $16,030 | $15,734 | +1.9% | 10 | 3 | +7 | +1.6% |
| New Britain | Own K-12 district | $14,188 | $15,773 | −10.1% | 4 | 4 | 0 | −5.8% |
| New Canaan | Own K-12 district | $26,982 | $23,073 | +16.9% | 134 | 124 | +10 | +14.5% |
| New Fairfield | Own K-12 district | $21,655 | $21,332 | +1.5% | 64 | 98 | −34 | +0.8% |
| New Hartford | Regional district for some grades | $24,333 | $22,766 | +6.9% | 113 | 117 | −4 | +9.0% |
| New Haven | Own K-12 district | $14,226 | $19,405 | −26.7% | 5 | 62 | −57 | −32.3% |
| New London | Own K-12 district | $16,754 | $20,226 | −17.2% | 12 | 81 | −69 | −17.5% |
| New Milford | Own K-12 district | $21,203 | $18,201 | +16.5% | 55 | 30 | +25 | +17.2% |
| Newington | Own K-12 district | $23,063 | $20,062 | +15.0% | 93 | 77 | +16 | +12.0% |
| Newtown | Own K-12 district | $23,345 | $20,728 | +12.6% | 98 | 92 | +6 | +9.9% |
| Norfolk | Regional district for some grades | $32,477 | $31,691 | +2.5% | 160 | 162 | −2 | +6.4% |
| North Branford | Own K-12 district | $24,496 | $20,845 | +17.5% | 114 | 94 | +20 | +18.0% |
| North Canaan | Regional district for some grades | $30,214 | $28,911 | +4.5% | 156 | 159 | −3 | +4.6% |
| North Haven | Own K-12 district | $21,402 | $18,953 | +12.9% | 59 | 50 | +9 | +11.6% |
| North Stonington | Own K-12 district | $22,310 | $17,831 | +25.1% | 76 | 24 | +52 | +22.0% |
| Norwalk | Own K-12 district | $21,496 | $20,352 | +5.6% | 61 | 83 | −22 | −0.8% |
| Norwich | No high school; high school students tuitioned out | $19,706 | $20,845 | −5.5% | 31 | 94 | −63 | −5.7% |
| Old Lyme | K-12 regional district (NCEP is the district's row) (District No. 18) | $25,768 | $23,118 | +11.5% | 124 | 126 | −2 | +17.8% |
| Old Saybrook | Own K-12 district | $29,863 | $25,765 | +15.9% | 155 | 144 | +11 | +13.2% |
| Orange | Regional district for some grades | $23,319 | $19,688 | +18.4% | 97 | 69 | +28 | +12.4% |
| Oxford | Own K-12 district | $21,359 | $19,057 | +12.1% | 58 | 54 | +4 | +12.0% |
| Plainfield | Own K-12 district | $20,778 | $17,090 | +21.6% | 47 | 16 | +31 | +20.4% |
| Plainville | Own K-12 district | $20,651 | $19,015 | +8.6% | 46 | 53 | −7 | +6.1% |
| Plymouth | Own K-12 district | $20,432 | $18,752 | +9.0% | 39 | 44 | −5 | +11.1% |
| Pomfret | No high school; high school students tuitioned out | $21,466 | $19,271 | +11.4% | 60 | 60 | 0 | +10.1% |
| Portland | Own K-12 district | $21,338 | $20,510 | +4.0% | 57 | 85 | −28 | +7.2% |
| Preston | No high school; high school students tuitioned out | $22,877 | $19,765 | +15.8% | 90 | 72 | +18 | +13.3% |
| Prospect | K-12 regional district (NCEP is the district's row) (District No. 16) | $20,313 | $18,982 | +7.0% | 38 | 51 | −13 | +6.3% |
| Putnam | Own K-12 district | $20,196 | $18,349 | +10.1% | 36 | 34 | +2 | +0.5% |
| Redding | Regional district for some grades | $32,946 | $28,642 | +15.0% | 161 | 158 | +3 | +15.3% |
| Ridgefield | Own K-12 district | $26,708 | $22,716 | +17.6% | 132 | 116 | +16 | +14.0% |
| Rocky Hill | Own K-12 district | $21,578 | $19,155 | +12.7% | 62 | 57 | +5 | +9.6% |
| Roxbury | K-12 regional district (NCEP is the district's row) (District No. 12) | $39,976 | $35,513 | +12.6% | 168 | 163 | +5 | +11.1% |
| Salem | No high school; high school students tuitioned out | $21,048 | $19,178 | +9.8% | 53 | 58 | −5 | +9.5% |
| Salisbury | Regional district for some grades | $31,605 | $30,451 | +3.8% | 158 | 161 | −3 | +8.1% |
| Scotland | Regional district for some grades | $28,490 | $26,636 | +7.0% | 148 | 147 | +1 | +5.2% |
| Seymour | Own K-12 district | $19,530 | $17,112 | +14.1% | 28 | 17 | +11 | +10.0% |
| Sharon | Regional district for some grades | $53,146 | $48,021 | +10.7% | 169 | 169 | 0 | +8.3% |
| Shelton | Own K-12 district | $20,569 | $17,189 | +19.7% | 43 | 19 | +24 | +16.5% |
| Sherman | No high school; high school students tuitioned out | $29,827 | $24,830 | +20.1% | 154 | 142 | +12 | +13.9% |
| Simsbury | Own K-12 district | $22,811 | $19,508 | +16.9% | 89 | 65 | +24 | +10.1% |
| Somers | Own K-12 district | $22,590 | $20,113 | +12.3% | 85 | 79 | +6 | +12.1% |
| South Windsor | Own K-12 district | $19,215 | $16,830 | +14.2% | 23 | 13 | +10 | +10.8% |
| Southbury | K-12 regional district (NCEP is the district's row) (District No. 15) | $22,291 | $21,978 | +1.4% | 75 | 105 | −30 | +3.8% |
| Southington | Own K-12 district | $19,899 | $17,452 | +14.0% | 33 | 21 | +12 | +11.6% |
| Sprague | No high school; high school students tuitioned out | $20,533 | $18,426 | +11.4% | 42 | 38 | +4 | +11.3% |
| Stafford | Own K-12 district | $24,078 | $20,769 | +15.9% | 106 | 93 | +13 | +16.3% |
| Stamford | Own K-12 district | $22,408 | $21,022 | +6.6% | 80 | 96 | −16 | +4.3% |
| Sterling | No high school; high school students tuitioned out | $20,893 | $18,570 | +12.5% | 50 | 43 | +7 | +11.4% |
| Stonington | Own K-12 district | $24,289 | $21,586 | +12.5% | 112 | 101 | +11 | +8.6% |
| Stratford | Own K-12 district | $20,018 | $18,795 | +6.5% | 34 | 46 | −12 | +6.8% |
| Suffield | Own K-12 district | $21,739 | $19,068 | +14.0% | 66 | 55 | +11 | +12.6% |
| Thomaston | Own K-12 district | $19,505 | $18,497 | +5.5% | 27 | 41 | −14 | +5.6% |
| Thompson | Own K-12 district | $24,170 | $21,382 | +13.0% | 110 | 99 | +11 | +10.0% |
| Tolland | Own K-12 district | $20,898 | $17,884 | +16.9% | 51 | 25 | +26 | +13.7% |
| Torrington | Own K-12 district | $21,638 | $19,730 | +9.7% | 63 | 70 | −7 | +8.6% |
| Trumbull | Own K-12 district | $21,140 | $18,310 | +15.4% | 54 | 32 | +22 | +12.4% |
| Union | No high school; high school students tuitioned out | $25,891 | $22,552 | +14.8% | 125 | 114 | +11 | +12.8% |
| Vernon | Own K-12 district | $19,745 | $18,261 | +8.1% | 32 | 31 | +1 | +5.2% |
| Voluntown | No high school; high school students tuitioned out | $24,633 | $22,203 | +10.9% | 115 | 108 | +7 | +10.0% |
| Wallingford | Own K-12 district | $23,977 | $21,635 | +10.8% | 103 | 102 | +1 | +7.8% |
| Warren | K-12 regional district (NCEP is the district's row) (District No. 6) | $28,646 | $27,622 | +3.7% | 150 | 153 | −3 | +2.7% |
| Washington | K-12 regional district (NCEP is the district's row) (District No. 12) | $39,568 | $35,513 | +11.4% | 167 | 163 | +4 | +9.7% |
| Waterbury | Own K-12 district | $10,102 | $16,499 | −38.8% | 1 | 7 | −6 | −36.2% |
| Waterford | Own K-12 district | $24,077 | $21,325 | +12.9% | 105 | 97 | +8 | +11.7% |
| Watertown | Own K-12 district | $22,711 | $19,892 | +14.2% | 87 | 73 | +14 | +11.3% |
| West Hartford | Own K-12 district | $22,558 | $19,747 | +14.2% | 84 | 71 | +13 | +11.3% |
| West Haven | Own K-12 district | $15,438 | $15,919 | −3.0% | 7 | 6 | +1 | +4.2% |
| Westbrook | Own K-12 district | $35,030 | $30,012 | +16.7% | 162 | 160 | +2 | +13.0% |
| Weston | Own K-12 district | $29,705 | $25,581 | +16.1% | 153 | 143 | +10 | +14.0% |
| Westport | Own K-12 district | $27,914 | $24,763 | +12.7% | 145 | 140 | +5 | +12.6% |
| Wethersfield | Own K-12 district | $18,811 | $17,977 | +4.6% | 19 | 29 | −10 | +5.9% |
| Willington | Regional district for some grades | $25,157 | $22,410 | +12.3% | 118 | 109 | +9 | +8.5% |
| Wilton | Own K-12 district | $27,456 | $23,262 | +18.0% | 143 | 128 | +15 | +14.4% |
| Winchester | No high school; high school students tuitioned out | $20,516 | $20,231 | +1.4% | 41 | 82 | −41 | −6.3% |
| Windham | Own K-12 district | $17,554 | $19,664 | −10.7% | 14 | 67 | −53 | −10.9% |
| Windsor | Own K-12 district | $22,314 | $20,407 | +9.3% | 77 | 84 | −7 | +8.5% |
| Windsor Locks | Own K-12 district | $24,168 | $21,565 | +12.1% | 109 | 100 | +9 | +2.9% |
| Wolcott | Own K-12 district | $19,330 | $16,705 | +15.7% | 25 | 11 | +14 | +12.8% |
| Woodbridge | Regional district for some grades | $22,919 | $20,106 | +14.0% | 92 | 78 | +14 | +14.5% |
| Woodbury | K-12 regional district (NCEP is the district's row) (District No. 14) | $25,203 | $24,508 | +2.8% | 120 | 137 | −17 | +1.9% |
| Woodstock | No high school; high school students tuitioned out | $18,235 | $16,624 | +9.7% | 18 | 10 | +8 | +6.6% |
Method and downloads
- OPM figure =
education_expenditures÷school_enrollment_average, same town and year. - Gap = OPM figure − NCEP, in dollars and as a percentage of NCEP.
- Which side differs: the gap splits exactly into a spending part and a student part (as logarithms); the larger part is named.
- Groups come from the state’s town-to-district table. A town that ran its own district until after 2022-23 is counted as having its own district.
- OPM’s detailed file (
e2qt-k238, 2019-20 to 2022-23) is used only to explain differences, never as the figure itself.
Inputs:
- src/data/ct_ucoa_town_indicators.json (pulled 2026-08-10, dataset updated 2026-03-03)
- src/data/ct_ncep_towns.json (generated 2026-09-24T22:58:37Z)
- src/data/ct_town_school_districts.json (generated 2026-09-04T12:50:16Z)
- Data/ct_ucoa/mfi_ucoa_by_function_2020-2023.csv (e2qt-k238)
Downloads: every town and year (CSV) ·
everything on this page (JSON). The script
that computes them is Data/compare_per_pupil_opm_ncep.py in the site’s
repository, and a longer write-up is Data/per-pupil-opm-vs-ncep.md.