Updated September 2, 2026— search the minutes, three small fetches
Every address on this site, as links
Everything below is a file you can fetch. No login, no rate limit, no JavaScript required. If you are a program, lunenburgbudgetproject.org/llms.txt explains what each one holds and how the figures are derived — but read the warning first.
Before computing anything.
The archive holds both what the town BUDGETED and what it SPENT. They differ by up to 59% on some lines, and a rate measured from one to the other is partly growth and partly the gap between them. Never mix them in one calculation. A budget line is also NET of grants, fees and state aid — it is not what a thing costs.
What you can ask, and the file that answers it
lunenburgbudgetproject.org/minutes/INDEX.txtwhat any town board discussed, and when — zoning, conservation, health, schools, planning, cemeteries, the library, anything — then /minutes/<board>.txt — full text, one file per board
lunenburgbudgetproject.org/data/rate-register.csvwhat does the town charge, and when did it change — 62 rates: athletic and bus fees, contracts, each with the fiscal year it applies to and the document that set it
lunenburgbudgetproject.org/docs/analyses/free-cash.mdis the town hoarding free cash, or rebuilding it — and what it would buy — both claims are true of different windows; the page at /free-cash models drawing the balance down to any level
lunenburgbudgetproject.org/data/free-cash-proof.csvfree cash — how much the town can spend without raising taxes, and nine towns to compare it with — 2021-2025; absolute dollars, no denominator, so compare the composition and not the totals
lunenburgbudgetproject.org/docs/analyses/show-your-work.mdHOW a figure was calculated — the formula, the inputs, and what is assumed — every calculation opened up, generated from the model itself; read it before reproducing any number here
1,383 agendas and sets of minutes across 40 town boards, 2025-01-06 to 2026-11-17. Each file is every document that board published, concatenated, so it can be searched in one fetch. You cannot grep a website; you can read one file. The per-document copies, for citing, are under /docs/minutes/text/<board>/.
Do not start with a bundle — the two largest are around a megabyte, more than many callers can read at once. Look the word up and fetch only the documents it names: three small requests instead of one large one. Everything needed to answer a question about this town is on this site; nothing here requires a repository, an account or a tool.
The same list lunenburgbudgetproject.org/llms.txt carries, with the same descriptions — both are generated from scripts/build_agent_endpoints.py, so neither can describe a file the other does not.
lunenburgbudgetproject.org/data/sped-lines.csvEvery budget line this project counts as special education, and which of the two rules caught it. They sum to the amount the projection starts from. Published because the state has no account code for special education, so the total is our classification rather than a figure anybody published. (0.0 MB)
lunenburgbudgetproject.org/data/sped-teacher-history.csvSpecial education teachers as budgeted, FY20 to FY27, by school. Eight budgets growing 2.67% a year against a 3.5% contract — below it, because headcount here has drifted down. (0.0 MB)
lunenburgbudgetproject.org/data/sped-para-history.csvSpecial education paraprofessionals as budgeted, FY18 to FY27, by school. Ten budgets growing 12.8% a year with an R-squared of 0.89 — which is why this line is escalated at what it has done rather than at the 2.0% its contract gives. (0.0 MB)
lunenburgbudgetproject.org/data/sped-transport-history.csvSpecial education transportation as budgeted, FY19 to FY27. Nine budgets, 5.7% a year, R-squared 0.33 — a weak trend, used because the vendor contract publishes no escalator. (0.0 MB)
lunenburgbudgetproject.org/data/ood-tuition-history.csvOut-of-district special education tuition as budgeted, FY17 to FY27, extracted from the district’s own budget documents with the budget stage held constant. Eleven budgets ranging 2.6x with no trend — which is why the model holds this line flat rather than escalating it. (0.0 MB)
lunenburgbudgetproject.org/data/model.jsonEvery figure the site computes: the FY27 base by bucket, the growth assumptions, the projection, the program catalogue, the conclusions, and the citations. (0.3 MB)
lunenburgbudgetproject.org/data/budget-lines.csvThe district budget, 351 line items, one column per fiscal year and scenario. The tidy form of the workbook everything else is derived from. (0.1 MB)
lunenburgbudgetproject.org/data/free-cash-proof.csvThe Division of Local Services free cash proof for Lunenburg and eight comparable towns, 2021-2025, line by line. Free cash is what a town may appropriate without raising taxes. NOTE: these are absolute dollars with no denominator anywhere in the source, so they do not compare between towns of different size. The composition does compare, because a share has no size. (0.1 MB)
lunenburgbudgetproject.org/data/rate-register.csvEvery rate this project knows about — athletic and bus fees, collective bargaining raises, facilities — each carrying the fiscal year it applies to, the document that set it and the date. 62 rates. It exists because FY26 athletic fees were modelled on FY25’s schedule for months: a right number from the wrong year, taken from a fee page that states its rates and never states which year they cover. It deliberately includes the rates the model does NOT use and the ones we cannot state at all, because a fee the town charges and does not publish is a finding rather than a blank. (0.0 MB)
lunenburgbudgetproject.org/data/athletic-fee-schedule.csvAthletic user fees by fiscal year and tier, FY24 to FY27, per student per sport per season. 27 of 31 figures verified against a spreadsheet cell or a direct quotation from the School Committee vote that set them. (0.0 MB)
lunenburgbudgetproject.org/data/lunenburg.dbthe SQLite database everything on this site is derived from. Its sha256 is stated in /api/index, so you can check you got the bytes we published.