Analyses
What courses actually ran
How many classes ran in each subject, SY2017 to SY2025: more of them at Lunenburg High than 8 years ago, for the same number of children — and fewer of those children taking a language.
lunenburgbudgetproject.org — written by the Lunenburg Budget Project, an independent tool for residents. Not affiliated with the Town of Lunenburg, the School Committee or the school district. The data this page is computed from: /data/course-offerings.json
What this report counts
COURSE SECTIONS: how many classes ran in a subject area at a school in a school year, as DESE records them. Not courses — the file carries no course names. Not dollars, not teachers, not children. A section is what RAN, which is what a schedule offered and what students chose, together.
If you read nothing else
Lunenburg High ran 247 sections in SY2025 against 225 in SY2017, on flat enrolment.
More classes ran, not fewer — and the average class fell from 14.7 students to 13.5.
The argument in this town has been about whether the cuts narrowed what children can take, and at the high school the count of classes that ran went the other way. 435 students in SY2017 and 438 in SY2025 — within a handful of each other — across the 9 years the high school held only grades 9-12 in one building configuration. A section is what RAN, so this is not a catalogue and not a plan. What it cannot say is whether the same COURSES ran: DESE files sections by subject area and never by course.
The staffing behind it → · What the district said it was cutting →
What it rests on DESE’s class-size collection — `tot_clss_cnt` and `avg_clss_cnt` for Lunenburg High — with the grade span of the school in every one of those years read off DESE’s own enrolment-by-grade counts, so the two ends of the comparison are the same school.
What it does not show That more sections is more choice. A fifth of them are groups averaging under five students and nothing published says what those teach. Nor does it show a cause: the town cut, enrolment fell and the buildings were reorganised inside the same period.
57.8% of Lunenburg High students took a foreign language in SY2025, against 70.1% in SY2017.
Sections fell from 28 to 21 over the same years — the one subject narrowing on every measure here.
Three instruments point the same way for one subject and only one, which is what makes it worth separating from everything else here. 305 students took a language in SY2017 and 253 in SY2025, in 21 sections rather than 28. District teacher FTE for the subject moved with them. A language schedule is set by people in this town, in a document the School Committee sees, so this is a decision somebody can look at rather than a condition.
What it rests on Sections, distinct students and average class size for Foreign Language at Lunenburg High, beside district teacher FTE for the same subject name from DESE’s teacher file.
What it does not show Whether a child who wanted a language could not get one. The district’s own principal told the School Committee that courses are whittled away after student choices are entered, so a fall in sections and a fall in students choosing can be the same measurement seen twice.
29.3% of Lunenburg Middle School took a world language in SY2025, against 61.0% in SY2023.
Sections went from 11 to 5 — the lowest share in the 9 years the school has existed.
This is the subject residents actually came to a meeting about: a parent told the School Committee that her seventh grader had practised French for three years and had just heard she might not be able to take it. 236 children took a language at the middle school in SY2023 and 115 in SY2025. READ THE SERIES BEFORE CONCLUDING, because it has been here before: the school fell to the same 5 sections in SY2020 and was back above it the next year, so one low year is not a subject ending. What is different now is that it has stayed for 2 years, and that grade 8 world language was still being discussed alongside the override two years after a parent raised it.
What it rests on Sections and distinct students for Foreign Language at Lunenburg Middle School over the share of the school’s own distinct students — both out of the same DESE file and the same row family, so this is not a ratio across two instruments.
What it does not show Whether a language was offered and not chosen, or not offered. It also does not show what share of children COULD take one: the file carries no grades inside a school, and a language need not be offered in every grade.
In the 11 years Lunenburg High held only grades 9-12 it ran 1 computer science section.
8 students, in SY2023. The subject runs at the middle school in every one of its 9 years.
The years the high school DID run computer science — 5 to 8 sections a year — are the years grade 8 was housed in the building, and the students in those sections numbered close to the grade-8 cohort each year. This is the clearest thing on the page a body in this town could decide to change, and establishing it costs nothing: the subject already runs at the middle school every year, so the question is a schedule rather than a programme. What the count cannot say is whether high school students take computing under another heading — DESE’s subject areas are broad, and this district files a fifth of its high school sections under Miscellaneous.
What it rests on `tot_clss_cnt` for Computer and Information Sciences at Lunenburg High and at Lunenburg Middle School in every year DESE publishes, with the high school’s grade span in each of those years taken from DESE’s enrolment-by-grade counts.
What it does not show That nobody in Lunenburg teaches computing to a ninth-grader. It shows what DESE recorded under one subject heading. The district’s curriculum return to DESE names no product against any of its digital-literacy rows either, and that is a fact about voluntary reporting rather than about provision.
20.6% of Lunenburg High’s sections are in a class averaging 4.9 students.
DESE calls the category Miscellaneous and nothing published says what those 51 groups teach.
It is also the single largest mover in the high school’s section count, up from 35 sections in SY2017. A student described one of these to the School Committee in public comment — a new elective, four students on the register, eight on the first day. That is what a section this size looks like from the inside, and it is the only account of one anybody has given in public. Whether the rest are electives, academic support, directed study or something else is not published anywhere.
What it rests on Sections and average class size for the Miscellaneous subject area at Lunenburg High against the school’s own total, at both ends of the window.
What it does not show What any of them is. The category carries no course names, and reading small groups as enrichment or as remediation fits the same number equally well. Registered in the gaps below.
Sections and teacher FTE moved the same way in 8 of the 10 subjects with both published.
The staffing proxy was not misleading — but only a section count can say whether a class stopped running.
Two independent state files, one counting people and one counting classes, over the years both cover — SY2017 to SY2025, district-wide. THE 2 THAT DIFFER ARE WHY BOTH FILES ARE PUBLISHED HERE, and the larger of them is Mathematics — the largest line in the comparison. Its teacher FTE fell by 1.5 while its sections ROSE by 3 and its average class went from 19.7 students to 18.4. Both readings are true and they answer different questions — fewer teachers, more classes, smaller ones — and a page carrying only the FTE would have reported a subject contracting. That is the whole case for counting sections: the staffing series was pointing the right way in eight subjects and could not, on its own, tell four sections of a subject from two.
What it rests on `dese_teacher_subject` teacher FTE at district level against `dese_class_size` section counts for the same subject names, at both ends of the overlapping window. DESE uses one subject vocabulary for both files, and the join refuses to write unless every compared subject is present in both.
What it does not show The most recent year. The teacher file runs one year further than the class-size file, and its largest moves in that year are in Science and Mathematics — none of which has a section count to sit beside it. They are carried on this page, labelled, and never differenced against one.
Those are the answers this report could reach from the documents behind it. If the one you came for is not among them, ask us — no name or email needed.
How a course stops running, in the district’s own words
This is above the charts rather than below them because it changes what they mean. A section that did not run may be a section nobody chose rather than a section anybody cut, and the person who builds the schedule has said so in public. Nothing measured on this page separates the two. What the record also holds, in the same paragraph, is the school choosing what to ADD.
“Our strategy moving forward is allowing the students choices to dictate our courses and electives. We will whittle away at courses once we have recommendations and students choices entered.”
School Committee · minutes · 2024-03-06 · our copy · the town’s
The single most important sentence on this page, and it is the district’s own. It says the mechanism: a section that does not run may be a section nobody chose rather than a section anybody cut. Everything measured here is the OUTCOME of that process, and nothing here separates the two halves of it.
“I have seen that there are supposed to be cuts to the current High School band teacher, where the electives he teaches such as Music Tech will be non-existent.”
School Committee · minutes · 2024-02-07 · our copy · the town’s
And the high school’s Arts sections went UP that year. Both are true, and the reason they can both be true is the limit this page keeps running into: DESE files sections by SUBJECT AREA and never by course, so one named elective ending is invisible inside a subject total that rose. That is a gap in the register, not a contradiction.
“I was put into a new elective that was just implemented this semester titled Music in Modern Media and it goes into Music Technology and the History of Music Film Literacy and all those things we had four people when that elective was implemented on the first day eight people showed up, there is more interests and it was not advertised in a great way but there is more interest.”
School Committee · minutes · 2024-01-24 · our copy · the town’s
A course being ADDED, in the same budget cycle as the cut list — and at a size this file would record as a section of four to eight. It is the clearest account anybody has given in public of what the small sections in the high school actually are.
“LHS Master Schedule Development Mr. Santry gives a detailed summary of the scheduling process at the High School via Slide Presentation”
School Committee · minutes · 2024-12-04 · our copy · the town’s
The document that would close almost every limit on this page exists and was presented in public. It is not in this archive and is not published on the district’s site, which is why it is named on the records request rather than argued about.
“we need to make sure we are continuing to challenge our students and options specifically for students that are on an AP track and getting the kids the classes they want/need to take”
School Committee · minutes · 2023-12-20 · our copy · the town’s
The question this page was built to answer, asked at the table a year before the budget it concerned. Nothing in front of that meeting counted what ran.
“We would like to offer AP Statis tics if possible as many academic programs at college levels include statistics as a requirement.”
School Committee · minutes · 2024-03-06 · our copy · the town’s
The other direction, in the same paragraph as the whittling, and rule 8 says it goes on the page at the same weight: a school choosing what to ADD in the middle of a budget it does not yet know the size of. Mathematics is among the subjects that gained sections here. The transcription reads “Statis tics”; it is quoted as the archive holds it rather than tidied, because a quote is a claim about a document.
The high school, year by year
cross-checkedthe section counts against teacher FTE from a separate DESE file, and the grade span of the school against DESE’s own enrolment-by-grade counts
15 school years, SY2011 to SY2025. The shaded band is a different school. Lunenburg High held grades 8–12 from SY2013 to SY2016, so a section count inside it is not comparable with one outside it — which is why the dashed line does not join the solid one. Everything this page concludes rests on SY2017 to SY2025: the years Lunenburg High held one grade span, in one building configuration, with the same five schools reporting.
Lunenburg High, every measured year
| Year | Grades | Sections | Average class | Students | Seats | Seats per student |
|---|---|---|---|---|---|---|
| SY2011 | 9–12 | 176 | 18.8 | 529 | 3,309 | 6.25 |
| SY2012 | 9–12 | 181 | 17.7 | 507 | 3,204 | 6.32 |
| SY2013 | 8–12 | 281 | 17.0 | 576 | 4,777 | 8.29 |
| SY2014 | 8–12 | 298 | 15.8 | 577 | 4,708 | 8.16 |
| SY2015 | 8–12 | 287 | 15.3 | 545 | 4,391 | 8.06 |
| SY2016 | 8–12 | 287 | 15.3 | 538 | 4,391 | 8.16 |
| SY2017 | 9–12 | 225 | 14.7 | 435 | 3,308 | 7.60 |
| SY2018 | 9–12 | 220 | 15.5 | 446 | 3,410 | 7.65 |
| SY2019 | 9–12 | 240 | 15.0 | 463 | 3,600 | 7.78 |
| SY2020 | 9–12 | 242 | 14.6 | 459 | 3,533 | 7.70 |
| SY2021 | 9–12 | 230 | 13.4 | 458 | 3,082 | 6.73 |
| SY2022 | 9–12 | 235 | 15.3 | 460 | 3,596 | 7.82 |
| SY2023 | 9–12 | 244 | 13.9 | 444 | 3,392 | 7.64 |
| SY2024 | 9–12 | 252 | 13.2 | 448 | 3,326 | 7.42 |
| SY2025 | 9–12 | 247 | 13.5 | 438 | 3,334 | 7.61 |
Seats per student is the closest thing here to “how many classes a child takes”, and it barely moves inside the window: 7.60 in SY2017 and 7.61 in SY2025. It is seats and not children: a seat is one student in one class, and the same child fills several. Sections times the average class size, which reconciles with the sum of the subjects’ own to within 0.3% in every year.
Which subjects gained sections, and which lost them
Change in sections at Lunenburg High, SY2017 to SY2025 — 9 years, one grade span throughout. Ranked by the size of the move rather than the size of the subject: a large subject that did not move is not the finding. 6 subjects are not drawn because they did not change.
Every subject at Lunenburg High
| Subject | Sections SY2017 | Sections SY2025 | Change | Class size SY2017 | Class size SY2025 | Students SY2017 | Students SY2025 |
|---|---|---|---|---|---|---|---|
| Miscellaneous | 35 | 51 | +16 | 5.8 | 4.9 | 120 | 129 |
| Foreign Language | 28 | 21 | −7 | 10.9 | 12.1 | 305 | 253 |
| Mathematics | 25 | 32 | +7 | 17.8 | 14.5 | 422 | 434 |
| English/Language Arts | 25 | 30 | +5 | 17.6 | 16.1 | 418 | 431 |
| Arts | 21 | 25 | +4 | 17.5 | 17.5 | 274 | 280 |
| Civics/Government | 2 | 4 | +2 | 19.5 | 14.5 | 39 | 53 |
| History | 17 | 15 | −2 | 19.2 | 17.3 | 326 | 259 |
| Social Studies/Social Sciences | 4 | 2 | −2 | 13.5 | 14.0 | 54 | 28 |
| Engineering and Technology | 5 | 4 | −1 | 13.2 | 12.3 | 62 | 47 |
| Health Care Sciences | 1 | 2 | +1 | 15.0 | 4.0 | 15 | 8 |
| Physical, Health, and Safety Education | 27 | 26 | −1 | 18.6 | 18.7 | 326 | 311 |
| Reading | 2 | 1 | −1 | 3.5 | 5.0 | 7 | 5 |
| Science | 27 | 28 | +1 | 17.5 | 15.5 | 406 | 379 |
| Agriculture, Food and Natural Resources | 2 | 2 | 0 | 18.5 | 12.0 | 23 | 20 |
| Business and Marketing | 0 | 0 | 0 | 0.0 | 0.0 | 0 | 0 |
| Communications and Audio/Visual Technology | 2 | 2 | 0 | 8.5 | 21.5 | 17 | 43 |
| Computer and Information Sciences | 0 | 0 | 0 | 0.0 | 0.0 | 0 | 0 |
| Economics | 2 | 2 | 0 | 9.5 | 23.0 | 19 | 46 |
| Public, Protective, and Government Service | 0 | 0 | 0 | 0.0 | 0.0 | 0 | 0 |
Sections are what RAN. Class size is DESE’s own average. Students is the count of DISTINCT children who took the subject — not seats, and not the sum of the classes.
Did anything stop altogether
6 subjects ran district-wide at some point and have run nothing since. They are small — the largest ran 16 sections in its last year — and the vocational and technical areas are where they cluster, which is where a narrowing would show first if there were one.
Subjects that ran, and have not since
| Subject | Last year it ran | Sections then | Students then | Years since | Year we can rely on? |
|---|---|---|---|---|---|
| Geography | SY2011 | 4 | 124 | 14 | no — see below |
| Architecture and Construction | SY2012 | 2 | 31 | 13 | yes |
| Manufacturing | SY2012 | 1 | 15 | 13 | yes |
| Public, Protective, and Government Service | SY2019 | 1 | 2 | 6 | yes |
| Business and Marketing | SY2024 | 2 | 19 | 1 | yes |
| Human Services | SY2024 | 16 | 347 | 1 | yes |
A subject whose last year is SY2011 is a different claim from one whose last year is later: SY2011 is the first year of this collection and the year one Lunenburg school reports an average class size of 87. “It stopped” and “it was never recorded properly” fit that year equally well, and this table marks which rows sit in it rather than choosing.
What this does not show
That any of these was cut. A subject running one or two sections is a subject one teacher’s timetable can carry or drop, and a retirement, a schedule and a decision all look identical here. Nor is a district total the whole story: Lunenburg’s vocational students go to Monty Tech, which is a different school and a different page, and every Chapter 74 row in this file is zero.
What this does not show
That a subject with fewer sections offered less. A section is what ran, and what ran is two things at once: what the schedule offered and what students chose. The district’s own account of that mechanism is above the chart on purpose, so it is read before the chart rather than after it.
And nothing here is a course. DESE files sections by subject AREA. A named elective ending inside a subject whose total rose is invisible to this file, which is exactly what a student described to the School Committee in the quotes above.
Foreign language — the one subject that narrowed on every instrument
It is also the only subject on this page that residents came to a meeting about, which is why it is separated from the others. Nothing in the section counts says a language matters more than mathematics; what says so is the record below.
Lunenburg High
9 school years, one grade span throughout. Sections fell from 28 to 21 and the share of the school taking a language from 70.1% to 57.8%. The average class went from 10.9 students to 12.1 — fewer classes, and fuller ones.
Lunenburg Middle School
9 school years — the whole life of the school, which opened in SY2017. Read the dip before reading the fall. The school was at 5 sections once before, in SY2020 and SY2024, and came back above it — so one low year is not a subject ending. It has now been there for 2 years, at the lowest share in the file: 29.3% in SY2025.
Foreign language, both schools
| Year | High school sections | Students | Share of the school | Middle school sections | Students | Share of the school |
|---|---|---|---|---|---|---|
| SY2017 | 28 | 305 | 70.1% | 12 | 240 | 60.5% |
| SY2018 | 24 | 310 | 69.5% | 18 | 411 | 94.9% |
| SY2019 | 25 | 314 | 67.8% | 17 | 392 | 97.8% |
| SY2020 | 26 | 321 | 69.9% | 5 | 131 | 31.5% |
| SY2021 | 24 | 240 | 52.4% | 11 | 247 | 62.5% |
| SY2022 | 22 | 292 | 63.5% | 11 | 251 | 61.5% |
| SY2023 | 26 | 277 | 62.4% | 11 | 236 | 61.0% |
| SY2024 | 25 | 292 | 65.2% | 5 | 120 | 32.8% |
| SY2025 | 21 | 253 | 57.8% | 5 | 115 | 29.3% |
Share is the count of DISTINCT children who took a language over the school’s own count of distinct children — both out of the same file and the same row family, so it is not a ratio across two instruments. It is not a share of children who COULD take one: the file carries no grades inside a school, and a language need not be offered in every grade of one.
What was said about it
“Our largest class is 31 which is because of a reduction in foreign language.”
School Committee · minutes · 2025-09-03 · our copy · the town’s
The other half of the measurement, said out loud by the person who builds the schedule: fewer sections and fuller ones are one decision seen twice. It describes the SEPTEMBER AFTER the last school year this file covers, so it is corroboration from beyond the measurement rather than part of it — and it is the only place in the readable archive where anybody in the district connects the two quantities this page keeps apart.
“In addition to the special education with my daughter being in 7th grade she is concerned about the cuts to foreign language and the middle school sports.”
School Committee · minutes · 2024-01-24 · our copy · the town’s
The middle school half, from the year it moved. This page found the subject in the data; the archive is where the child is. What the parent describes and what the file records are the same event seen from two sides, and neither establishes the other.
“the school advisory committee for the middle school met and talked about the grade 8 world language and the override, middle school sports being in the restoration budget”
School Committee · minutes · 2026-04-01 · our copy · the town’s
Still live, two years on, and in the same sentence as the override. Read it carefully: the minute puts MIDDLE SCHOOL SPORTS in the restoration budget and says only that grade 8 world language was discussed. This page does not read it as saying more than that.
“the school's requests for an interventionist, a kindergarten paraprofessional, a world language teacher, a teacher and paraprofessional for the bridge program, an English teacher, a part-time music teacher, an assistant principal, a literacy coach, and an assistant business manager entirely reasonable and defensible”
School Committee · minutes · 2026-03-10 · our copy · the town’s
A world language teacher is on the district’s own ask, first in the list after the interventionist and the kindergarten paraprofessional. That is a document stating intent, which is evidence of intent and not of outcome — but it is the point at which a measurement in this file becomes something a body in this town is actually voting on.
What this does not show
Whether a child who wanted a language could not get one. Sections falling and students choosing it falling are the same measurement seen twice, and this file cannot separate them. What it does establish is that all three quantities — sections, students and district teacher FTE — moved the same way in this subject and in no other.
And the Principal’s largest class of 31 is not in this file. It describes September of the school year after the last one measured here. It is quoted because it is the only place in the readable archive where somebody in the district connects the two quantities this page keeps apart — not because it extends the series.
Computer science at the high school
The subject ran 5 to 8 sections a year in SY2013, SY2014, SY2015, SY2016 — the 4 years grade 8 was housed in the building. In the 11 years the school held only grades 9–12 it ran 1: 8 students, in SY2023. Lunenburg Middle School has run it in every one of its 9 years.
Computer and Information Sciences, sections that ran
| Year | Lunenburg High sections | Students in them | Grades at the high school | Lunenburg Middle School sections |
|---|---|---|---|---|
| SY2011 | 0 | 0 | 9–12 | — |
| SY2012 | 0 | 0 | 9–12 | — |
| SY2013 | 5 | 119 | 8–12 | — |
| SY2014 | 8 | 134 | 8–12 | — |
| SY2015 | 6 | 121 | 8–12 | — |
| SY2016 | 8 | 119 | 8–12 | — |
| SY2017 | 0 | 0 | 9–12 | 8 |
| SY2018 | 0 | 0 | 9–12 | 7 |
| SY2019 | 0 | 0 | 9–12 | 6 |
| SY2020 | 0 | 0 | 9–12 | 6 |
| SY2021 | 0 | 0 | 9–12 | 6 |
| SY2022 | 0 | 0 | 9–12 | 8 |
| SY2023 | 1 | 8 | 9–12 | 6 |
| SY2024 | 0 | 0 | 9–12 | 6 |
| SY2025 | 0 | 0 | 9–12 | 5 |
Blank at the middle school means the school did not exist that year: it opened in SY2017, when the district reorganised its buildings. Read the grade column across the high school column. The years with five to eight sections are the years the building held grade 8, and the students in them come within a dozen of the grade-8 cohort each year — which is a correspondence and not a proof that they were the same course.
What this does not show
That nobody in Lunenburg teaches computing to a ninth-grader. This is what DESE recorded under one subject heading. A high school that files a fifth of its sections as Miscellaneous could be teaching it under that, and nothing published would say so.
The fifth of the high school with no named subject
51 of Lunenburg High’s 247 sections in SY2025 — 20.6% — are filed under Miscellaneous, averaging 4.9 students, taken by 129 distinct children. It is also the single largest mover on the page: 35 sections in SY2017.
Miscellaneous at Lunenburg High
| Year | Sections | Average class | Students | Share of all sections |
|---|---|---|---|---|
| SY2017 | 35 | 5.8 | 120 | 15.6% |
| SY2018 | 30 | 4.8 | 83 | 13.6% |
| SY2019 | 39 | 4.9 | 102 | 16.3% |
| SY2020 | 36 | 4.8 | 97 | 14.9% |
| SY2021 | 33 | 4.9 | 93 | 14.3% |
| SY2022 | 44 | 8.0 | 266 | 18.7% |
| SY2023 | 54 | 3.8 | 113 | 22.1% |
| SY2024 | 51 | 4.3 | 123 | 20.2% |
| SY2025 | 51 | 4.9 | 129 | 20.6% |
What this does not show
What any of them is. The category carries no course names. Reading small groups as enrichment and reading them as remediation fit the same number equally well, and this page chooses neither. The one public account of a section this size is the student quoted above, describing a new elective with four on the register and eight on the first day.
Sections against teacher FTE — two instruments, one question
School staffing measures the same schools with a different instrument: full-time equivalents the state publishes by subject. That measure has carried the argument about course offerings in this town for years, and the useful question is whether it was pointing the right way. Over the years both files cover — SY2017 to SY2025, district-wide — the two move the same way in 8 of 10 subjects.
Teacher FTE and sections, district-wide
| Subject | FTE SY2017 | FTE SY2025 | Change | Sections SY2017 | Sections SY2025 | Change | Same direction |
|---|---|---|---|---|---|---|---|
| Mathematics | 18.5 | 17.0 | −1.5 | 81 | 84 | +3 | no |
| Economics | 0.2 | 0.1 | −0.1 | 2 | 2 | 0 | no |
| Science | 15.3 | 15.4 | +0.1 | 80 | 95 | +15 | yes |
| Foreign Language | 5.8 | 4.9 | −0.9 | 40 | 26 | −14 | yes |
| Social Studies/Social Sciences | 11.2 | 9.3 | −1.9 | 57 | 49 | −8 | yes |
| Civics/Government | 0.7 | 1.9 | +1.2 | 6 | 9 | +3 | yes |
| Arts | 7.1 | 8.1 | +1.0 | 121 | 123 | +2 | yes |
| English/Language Arts | 17.6 | 16.9 | −0.7 | 87 | 85 | −2 | yes |
| History | 3.3 | 2.7 | −0.6 | 17 | 15 | −2 | yes |
| Reading | 5.7 | 5.0 | −0.7 | 28 | 27 | −1 | yes |
Mathematics is the disagreement worth reading, and it is the largest line in the comparison: its teacher FTE fell 1.5 while its sections rose by 3 and its average class went from 19.7 students to 18.4. Fewer teachers, more classes, smaller ones — all three at once, and a page carrying only the FTE would have reported a subject contracting. The other is Economics, which moves by a fraction of a post. DESE uses one subject vocabulary for both files, so this is a join on the publisher’s own names rather than on ours; the generator refuses to write unless every compared subject is present in both.
The year one instrument can see and the other cannot
The teacher file runs to SY2026 and the class-size collection stops at SY2025. So the FTE moves in that last year have no section count beside them, and nothing here differences the two: they are different quantities at different stages, and a line drawn through both would be the mistake this whole site is built to avoid.
Teacher FTE in SY2026, with no section count to set beside it
| Subject | FTE SY2025 | FTE SY2026 | Change |
|---|---|---|---|
| Science | 15.4 | 12.7 | −2.7 |
| Mathematics | 17.0 | 18.7 | +1.7 |
| Social Studies/Social Sciences | 9.3 | 10.6 | +1.3 |
| Foreign Language | 4.9 | 3.9 | −1.0 |
| English/Language Arts | 16.9 | 16.4 | −0.5 |
| History | 2.7 | 2.5 | −0.2 |
| Reading | 5.0 | 4.8 | −0.2 |
| Arts | 8.1 | 8.2 | +0.1 |
Only the subjects that moved are listed. This is the year in which the largest changes school staffing reports actually happen, which is why that page and this one can both be right about a subject and appear to disagree.
Which schools these are, and why the name is not the school
Lunenburg reorganised its buildings twice inside this period. Reading a school name as a fixed thing is the single easiest way to produce a false trend here, so the grade span of every school in every year is taken from DESE’s own enrolment-by-grade counts rather than from anything anybody wrote down.
Every Lunenburg school, every year, as the state counted it
| Year | Schools, with the grades each held and its enrolment |
|---|---|
| SY2011 | Lunenburg Primary School (PK–2, 373) · Thomas C Passios Elem (3–5, 360) · Turkey Hill Middle (6–8, 381) · Lunenburg High (9–12, 536) |
| SY2012 | Lunenburg Primary School (PK–2, 386) · Thomas C Passios Elementary (3–5, 355) · Turkey Hill Middle (6–8, 386) · Lunenburg High (9–12, 510) |
| SY2013 | Lunenburg Primary School (PK–3, 509) · Turkey Hill Middle (4–7, 496) · Lunenburg High (8–12, 582) |
| SY2014 | Lunenburg Primary School (PK–3, 507) · Turkey Hill Middle (4–7, 480) · Lunenburg High (8–12, 577) |
| SY2015 | Lunenburg Primary School (PK–3, 522) · Turkey Hill Middle (4–7, 481) · Lunenburg High (8–12, 554) |
| SY2016 | Lunenburg Primary School (PK–3, 503) · Turkey Hill Middle (4–7, 515) · Lunenburg High (8–12, 549) |
| SY2017 | Lunenburg Primary School (PK–2, 386) · Turkey Hill Elementary School (3–5, 400) · Lunenburg Middle School (6–8, 388) · Lunenburg High (9–12, 439) |
| SY2018 | Lunenburg Primary School (PK–2, 394) · Turkey Hill Elementary School (3–5, 373) · Lunenburg Middle School (6–8, 423) · Lunenburg High (9–12, 442) · Advanced Community Experience Program (not stated, 9) |
| SY2019 | Lunenburg Primary School (PK–2, 418) · Turkey Hill Elementary School (3–5, 372) · Lunenburg Middle School (6–8, 393) · Lunenburg High (9–12, 458) · Advanced Community Experience Program (not stated, 8) |
| SY2020 | Lunenburg Primary School (PK–2, 417) · Turkey Hill Elementary School (3–5, 360) · Lunenburg Middle School (6–8, 406) · Lunenburg High (9–12, 452) · Advanced Community Experience Program (not stated, 6) |
| SY2021 | Lunenburg Primary School (PK–2, 385) · Turkey Hill Elementary School (3–5, 344) · Lunenburg Middle School (6–8, 386) · Lunenburg High (9–12, 474) · Advanced Community Experience Program (not stated, 4) |
| SY2022 | Lunenburg Primary School (PK–2, 379) · Turkey Hill Elementary School (3–5, 361) · Lunenburg Middle School (6–8, 402) · Lunenburg High (9–12, 450) · Advanced Community Experience Program (not stated, 5) |
| SY2023 | Lunenburg Primary School (PK–2, 384) · Turkey Hill Elementary School (3–5, 353) · Lunenburg Middle School (6–8, 380) · Lunenburg High (9–12, 440) · Advanced Community Experience Program (not stated, 5) |
| SY2024 | Lunenburg Primary School (PK–2, 391) · Turkey Hill Elementary School (3–5, 370) · Lunenburg Middle School (6–8, 363) · Lunenburg High (9–12, 449) · Advanced Community Experience Program (not stated, 7) |
| SY2025 | Lunenburg Primary School (PK–2, 374) · Turkey Hill Elementary School (3–5, 345) · Lunenburg Middle School (6–8, 382) · Lunenburg High (9–12, 452) · Advanced Community Experience Program (not stated, 10) |
Why the two elementary schools are not on this page
Their section counts swing by a factor of two between adjacent years with no matching change in enrolment, and 2 school-years report an average class size no primary school can have: 87.1 at Lunenburg Primary School in SY2011; 36.5 at Lunenburg Primary School in SY2022. A self-contained classroom’s subject coding is not stable enough to trend, so this page does not trend it. The high school, where a section IS a course and where course choice actually exists, is intact in every measured year.
One cell, rather than a sentence about instability
SY2022, Lunenburg Primary School, Arts: 2 sections averaging 341 students, against a school of 386. That is not a class of 341 children. It is what a self-contained elementary classroom looks like when the same children are coded into one subject row, and it is why nothing on this page is drawn from an elementary series.
The DISTRICT total, 15 school years — every school added together, which is the series this page does not read. The swings are the elementary schools: SY2011 and SY2022 are the two years above, and the years either side of them move by more than any enrolment change can account for. The shaded band is the four years the high school held a different grade span, which is a second reason nothing here may be read as one line.
The district and each school, sections that ran
| Year | District | Lunenburg High | Lunenburg Middle School | District students |
|---|---|---|---|---|
| SY2011 | 439 | 176 | — | 1,633 |
| SY2012 | 768 | 181 | — | 1,634 |
| SY2013 | 711 | 281 | — | 1,590 |
| SY2014 | 709 | 298 | — | 1,571 |
| SY2015 | 697 | 287 | — | 1,564 |
| SY2016 | 727 | 287 | — | 1,577 |
| SY2017 | 769 | 225 | 203 | 1,635 |
| SY2018 | 807 | 220 | 245 | 1,643 |
| SY2019 | 813 | 240 | 203 | 1,666 |
| SY2020 | 793 | 242 | 207 | 1,677 |
| SY2021 | 890 | 230 | 222 | 1,595 |
| SY2022 | 692 | 235 | 226 | 1,616 |
| SY2023 | 897 | 244 | 213 | 1,590 |
| SY2024 | 831 | 252 | 207 | 1,591 |
| SY2025 | 781 | 247 | 210 | 1,587 |
The district row is a ROLLUP of its schools and is never summed with them. It equals the sum of the schools in every year but SY2021, where it exceeds them by 51 sections — classes the file records for the district and attributes to no school. Both rollups on this page, the district over its schools and the total subject over its 79 cells, are recomputed on every build and the generator refuses to write if either stops holding.
What a parent can look up, which is a different question
Lunenburg files a curriculum return with DESE: 119 rows, eight subjects by grade, with the published curriculum product named against each. 15 of those rows name one — ELA and MATH in the middle grades, and Amplify ELA (2019), EdGems Math (2018), HMH Into Math (2020), Into Reading (2020) are the products.
The curriculum return, by subject
| Subject | Rows | Rows naming a product |
|---|---|---|
| ARTS | 10 | 0 |
| CHPE | 10 | 0 |
| DLCS | 18 | 0 |
| ELA | 19 | 9 |
| HSS | 19 | 0 |
| MATH | 18 | 6 |
| STE | 15 | 0 |
| WL | 10 | 0 |
What this does not show
This is a fact about REPORTING and not about provision. DESE’s curriculum collection is voluntary, so a blank is a row nobody filled in — never a subject nobody teaches. Lunenburg plainly teaches science; 104 rows naming no product does not say otherwise and this page does not suggest it. What the count bounds is what a parent choosing a school, or a resident checking what a budget buys, can look up without asking anybody.
What the town said about this, and how much of the archive could be read
Searched 8,899 of the 12,015 meeting documents this archive holds (74%), covering to . The other 3,116 carry no text a search can match — 3,096 of them are image scans awaiting OCR. An empty result above is a statement about what can be read, never about what was said.
Note what the counts show anyway. The most-said of these in the readable archive is class size, in 21 documents. And 3 of them match nothing at all — course offerings, computer science, course selection — which includes the subject this page finds has run once at the high school in 11 years. That is a statement about what can be read, never about what was said.
One thing that could be done differently next year
Publish the Program of Studies each year, with the previous year’s beside it. The High School Principal handed the School Committee an edition of it on 6 March 2024 and presented the LHS master schedule on 4 December 2024, so both documents exist, both have been in front of the board, and neither is on the district’s website. Two PDFs a year would turn every section count on this page into a list of courses — which is what a parent asking whether their child can still take a language actually wants, and what no state file will ever hold.
What this page cannot say
- Whether a subject running fewer sections means a child could not take it. A section is what RAN, and what ran is the product of two things at once — what the schedule offered and what students chose. The district’s own principal told the School Committee that courses are whittled away after student choices are entered. Nothing here separates the two, and the honest reading of a fall is that one of them moved.
- What any of these sections is CALLED. DESE files by subject area and never by course, so a named elective ending inside a subject whose total rose is invisible to this file — which is exactly what a student described to the School Committee in February 2024.
- Anything about the two elementary schools. 2 school-years report an average class size no primary school can have — 87.1 and 36.5, both at Lunenburg Primary School — against a maximum of 24.1 in every other school-year in the file, and adjacent years swing by a factor of two with no matching change in enrolment. The subject coding of a self-contained classroom is not stable enough to trend, so this page does not trend it.
- Why the high school’s record breaks at SY2013. Grade 8 moved into the building that year: the school’s student count rose by 69 and its recorded seats by 1,573 — more than twenty course seats for every additional child. The arithmetic does not work, nothing in this archive explains it, and no finding here crosses that year.
- Whether any of this was caused by the budget. The town cut, enrolment fell and the buildings were reorganised twice inside the same 15 years. Those are three causes and this file records one outcome.
- What Lunenburg teaches. The district’s curriculum return to DESE names a published product against 15 of its 119 rows, and DESE’s curriculum reporting is VOLUNTARY — so a blank is a row nobody filled in, never a subject nobody teaches. Lunenburg plainly teaches science. The count on this page is about what a parent can look up.
- Anything about quality, results or what a section is worth. This page counts classes.
- Anything about the town side. Massachusetts collects a class count from school districts and from nothing else, so there is no equivalent series for the fire department, the library or public works, and no comparison between the two halves of the town budget can be drawn from this page in either direction.
- Anything about a person. Every figure here is a count of classes at a school. Where a quote on this page names somebody it is a role in a public meeting record, quoted for the mechanism it describes.
What would close these
The district’s own Program of Studies for each year — the High School Principal handed the School Committee an edition of it on 6 March 2024 — and the LHS master schedule, presented to the School Committee on 4 December 2024. Both exist, both were discussed in public, and neither is published. Between them they would turn every section count on this page into a list of courses, which is the thing a parent actually wants. Every limit on this page is also a row in what we cannot answer, which is the single registry the records request reads from.
The same limits, as rows in the register
Each of these is a row in money-gaps.csv, which is what the records request to the Town reads and what what we cannot answer renders. A limit stated only in the prose of one page is invisible to everybody who did not read that page.
curriculum
Which courses a Lunenburg High student could actually choose from, in any year
DESE publishes sections by SUBJECT AREA and never by course, so an elective ending is invisible inside a subject total that rose — a student told the School Committee on 7 February 2024 that Music Tech would be "non-existent", and the high school's Arts sections went from 24 that year to 25 the next. Both statements are true and this archive cannot hold them together.
Closes: The district’s own Program of Studies for each year, which the High School Principal handed the School Committee on 6 March 2024, and the LHS master schedule presented to the School Committee on 4 December 2024. Neither is published.
curriculum
What is taught in the fifth of Lunenburg High sections DESE files as Miscellaneous
51 of the high school’s 247 sections in SY2025, averaging 4.9 students, in a subject area DESE gives no course names for — and the single largest mover in the section count since SY2017. The only public account of one is a student describing a new elective with four on the register and eight on the first day.
Closes: The LHS master schedule by year, or the district’s own Student Course Schedule submission to DESE, which holds the course records the published aggregate is built from.
curriculum
How many classes ran in each subject at the two elementary schools
The counts swing by a factor of two between adjacent years with no matching change in enrolment, and two school-years report an average class size no primary school can have — 87.1 at Lunenburg Primary in SY2011 and 36.5 in SY2022, against a maximum of 24.1 everywhere else. The subject coding of a self-contained classroom is not stable enough to trend, so the elementary half of the district cannot be read at all.
Closes: DESE’s Student Course Schedule submission detail for Lunenburg, which carries the course records behind the published aggregate.
The documents behind this
dese-class-size.xlsx
Massachusetts Department of Elementary and Secondary Education
Every Massachusetts district’s class counts and average class sizes by school and subject, SY2011–SY2025. The source of every section count and every class size on this page. Stage: reported for the school year, from the district’s own course records. Not a budget, and not a plan — a count of what ran.
table dese_class_size · 120.7 MB
sha256 899f14f9f457504c…
dese-enrollment-by-grade.xlsx
Massachusetts Department of Elementary and Secondary Education
Enrolment by grade, by school, for every district. The source of the grade span of each Lunenburg school in each year — which is what makes a comparison across the two building reorganisations either legitimate or meaningless. Stage: reported as at 1 October of the school year.
table dese_enrollment · 13.4 MB
sha256 a2fb23dea70ce67d…
dese-teacher-data.xlsx
Massachusetts Department of Elementary and Secondary Education
Teacher FTE by subject, by school. The second instrument on this page, and the one every earlier attempt at this question used on its own. Stage: reported for the school year. Per ASSIGNMENT, not per person.
table dese_teacher_subject · 26.0 MB
sha256 4fbe81d65aee0bff…
dese-curriculum-lunenburg.xlsx
Massachusetts Department of Elementary and Secondary Education
Lunenburg’s own curriculum return to DESE — 119 rows, eight subjects by grade, with the published curriculum product named against each. Reporting is voluntary and 104 rows name none, so this bounds what a parent can LOOK UP and says nothing about what is taught. Stage: as the district reported it. Undated within the workbook.
table not loaded — read from the workbook · 6 KB
sha256 762639c29a2cd2f6…
The payload this page draws is published whole at /data/course-offerings.json, and the rows behind it — dese_class_size, dese_teacher_subject and dese_enrollment — can be queried directly from the database. Every figure here is recomputed from the extracted CSV by a second route in scripts/verify_course_offerings.py.
Every other report
Every analysis this project has written, in one index, is at reports.